diff --git a/.agent/rules/architecture.md b/.agent/rules/architecture.md new file mode 100644 index 0000000000000000000000000000000000000000..116377359995767474b768f23adc5bf565ded810 --- /dev/null +++ b/.agent/rules/architecture.md @@ -0,0 +1,175 @@ +--- +trigger: always_on +--- + +Here is the comprehensive `architecture.md` file for your repository. It documents the high-level system design, data flow, and infrastructure decisions, serving as a critical artifact for technical interviews and system design reviews. + +--- + +# πŸ—οΈ System Architecture: Real-Time Fraud Detection + +This document outlines the end-to-end architecture of the Fraud Detection System, designed for **low-latency inference (<50ms)**, **high throughput**, and **explainability**. + +The system follows a **Lambda Architecture** pattern, splitting workflows into an **Offline Training Layer** (batch processing) and an **Online Serving Layer** (real-time inference). + +--- + +## 1. High-Level Diagram + +```mermaid +graph TD + User[Payment Gateway] -->|POST /predict| API[FastAPI Inference Service] + + subgraph "Online Serving Layer" + API -->|1. Get Velocity| Redis[(Redis Feature Store)] + API -->|2. Compute Features| Preproc[Scikit-Learn Pipeline] + Preproc -->|3. Inference| Model[XGBoost Classifier] + Model -->|4. Log Prediction| Logger[Async Logger] + end + + subgraph "Offline Training Layer" + DW[(Data Warehouse)] -->|Batch Load| Trainer[Training Pipeline] + Trainer -->|Track Experiments| MLflow[MLflow Server] + Trainer -->|Save Artifact| Registry[Model Registry] + Registry -->|Load .pkl| API + end + + subgraph "Explainability & Monitoring" + Logger -->|Drift Analysis| Dashboard[Streamlit / Grafana] + API -->|Request Waterfall| SHAP[SHAP Explainer] + end + +``` + +--- + +## 2. Component Breakdown + +### 🟒 Online Serving Layer (Real-Time) + +The critical path for live transactions. Designed for sub-50ms latency. + +* **FastAPI Service:** Asynchronous Python web server. Handles request validation (Pydantic) and orchestrates the inference flow. +* **Redis Feature Store:** +* **Role:** Solves the "Stateful Feature" problem. +* **Implementation:** Uses Redis Sorted Sets (`ZSET`) to maintain a rolling window of transaction counts for the last 24 hours. +* **Latency:** <2ms lookups via pipelining. + + +* **Inference Engine:** +* **Model:** XGBoost Classifier (serialized via Joblib). +* **Pipeline:** `ColumnTransformer` (WOEEncoder + RobustScaler) ensures raw input is transformed exactly as it was during training. +* **Shadow Mode:** A configuration toggle allowing the model to run silently alongside legacy rules for A/B testing. + + + +### πŸ”΅ Offline Training Layer (Batch) + +Where models are built, validated, and versioned. + +* **Data Ingestion:** Loads historical transaction logs (CSV/Parquet). +* **Feature Engineering:** +* Calculates Haversine distances. +* Generates Cyclical time encodings (`hour_sin`, `hour_cos`). +* Computes historical aggregates for the Feature Store. +* refer notebook markdown for more information at path notebook/credit-card-fraud-detection.md + + +* **Experiment Tracking (MLflow):** +* Logs hyperparameters (`max_depth`, `learning_rate`). +* Logs metrics: Precision, Recall, PR-AUC. +* Stores the model artifact and the optimized decision threshold (e.g., `0.895`). + + + +### 🟣 Explainability Layer (Compliance) + +Ensures decisions are transparent and auditable. + +* **SHAP (SHapley Additive exPlanations):** +* **Global:** Summary plots to understand model drivers. +* **Local:** Waterfall plots generated on-demand for specific high-risk blocks. +* **Optimization:** Uses the TreeExplainer with the "JSON Serialization Patch" to handle XGBoost 2.0+ metadata compatibility. + + + +--- + +## 3. Data Flow Lifecycle + +### Step 1: Request Ingestion + +The Payment Gateway sends a raw transaction payload: + +```json +{ + "user_id": "u8312", + "amt": 150.00, + "lat": 40.7128, + "long": -74.0060, + "category": "grocery_pos", + "job": "systems_analyst" +} + +``` + +### Step 2: Real-Time Feature Enrichment + +The API queries Redis to fetch dynamic context that isn't in the payload: + +* *Query:* `ZCARD user:u8312:tx_history` (Transactions in last 24h) +* *Result:* `5` (Velocity) + +### Step 3: Preprocessing & Inference + +The combined vector (Raw + Redis Features) is passed to the Pipeline: + +1. **Imputation:** Handle missing values. +2. **Encoding:** `category` -> Weight of Evidence (Float). +3. **Scaling:** `amt` -> RobustScaler (centered/scaled). +4. **Prediction:** XGBoost outputs probability `0.982`. + +### Step 4: Decision & Action + +* **Threshold Check:** `0.982 > 0.895` β†’ **FRAUD**. +* **Shadow Mode Check:** If enabled, return `APPROVE` but log `[SHADOW_BLOCK]`. +* **Response:** +```json +{ + "status": "BLOCK", + "risk_score": 0.982, + "latency_ms": 35 +} + +``` + + + +--- + +## 4. Deployment Strategy + +### Shadow Deployment (Dark Launch) + +To mitigate risk, new model versions are deployed in "Shadow Mode" before blocking real money. + +1. **Deploy:** Version v2 is deployed to production. +2. **Listen:** It receives 100% of traffic but has **no write permissions** (cannot decline cards). +3. **Compare:** We compare v2's "Virtual Blocks" against the v1 "Actual Blocks" and customer complaints. +4. **Promote:** If Precision > 95% and complaints == 0, toggle Shadow Mode **OFF**. + +--- + +## 5. Technology Stack + +| Component | Technology | Rationale | +| --- | --- | --- | +| **Language** | Python 3.10+ | Standard for ML ecosystem. | +| **Package Manager | astral-uv | An extremely fast Python package and project manager | +| **API Framework** | FastAPI | Async native, high performance, auto-documentation. | +| **Model** | XGBoost | Best-in-class for tabular fraud data. | +| **Feature Store** | Redis | Sub-millisecond latency for sliding windows. | +| **Container** | Docker | Reproducible environments. | +| **Orchestration** | Docker Compose | Local development and testing. | +| **Tracking** | MLflow | Experiment management and artifact versioning. | +| **Frontend** | Streamlit | Rapid prototyping of analyst dashboards. | \ No newline at end of file diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..630f4a1ebff2bb28e300a37f9b07ad9a9760926f Binary files /dev/null and b/.coverage differ diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..261160efe6306621ccd5017081a54465de057007 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,34 @@ +# Git and Version Control +.git +.gitignore +.github + +# Python +__pycache__ +*.py[cod] +*$py.class +.venv +.env +.pytest_cache +.ruff_cache +.coverage +htmlcov +.ipynb_checkpoints + +# Project Data & Artifacts +# models/ +logs/ +notebooks/ +data/ +*.csv +*.parquet +*.pkl +# *.json + +# UV +# uv.lock + +# Docker +Dockerfile +docker-compose.yml +.dockerignore diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000000000000000000000000000000000..9a3c796fb5591b1b351baeedfefb416e5fc6234d --- /dev/null +++ b/.env.example @@ -0,0 +1,23 @@ +# Environment Variables + +# Redis Configuration +REDIS_HOST=localhost +REDIS_PORT=6379 +REDIS_DB=0 +REDIS_PASSWORD= + +# MLflow Configuration +MLFLOW_TRACKING_URI=http://localhost:5000 + +# Application Settings +ENV=development +LOG_LEVEL=INFO + +# Model Settings +MODEL_PATH=models/fraud_model.pkl +THRESHOLD=0.895 + +shadow_mode=false +enable_explainability=true +# Performance +max_latency_ms=50.0 \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..9a9da427c68c250b93ff62f03278fc88b46e3244 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,49 @@ +name: PayShield CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + lint-and-test: + runs-on: ubuntu-latest + + services: + redis: + image: redis:7-alpine + ports: + - 6379:6379 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + version: "latest" + enable-cache: true + + - name: Set up Python + run: uv python install + + - name: Install the project + run: uv sync --all-extras --dev + + - name: Run Ruff (Linter) + run: uv run ruff check . + + - name: Run Ruff (Formatter check) + run: uv run ruff format --check . + + - name: Run tests with coverage + run: uv run pytest --cov=src tests/ + env: + REDIS_HOST: localhost + REDIS_PORT: 6379 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..8d0c8b829cad264a719c5b49895dc64eee771cc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv +.env + +.ruff_cache +.pytest_cache +.vscode +mlruns/ +notebook/dataset/*.csv diff --git a/.python-version b/.python-version new file mode 100644 index 0000000000000000000000000000000000000000..e4fba2183587225f216eeada4c78dfab6b2e65f5 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e973b3b9c0b6a6eba98e4c31f5876985a294ef39 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,68 @@ +# Stage 1: Builder +FROM python:3.12-slim-trixie AS builder + +# Install uv by copying the binary from the official image +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ + +# Set working directory +WORKDIR /app + +# Enable bytecode compilation +ENV UV_COMPILE_BYTECODE=1 + +# Copy only dependency files first to leverage Docker layer caching +COPY pyproject.toml uv.lock ./ + +# Disable development dependencies +ENV UV_NO_DEV=1 + +# Sync the project into a new environment +RUN uv sync --frozen --no-install-project + +# Stage 2: Final +FROM python:3.12-slim-trixie + +# Set working directory +WORKDIR /app + +# Install system dependencies (curl for healthchecks) +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* + +# Create logs directory +RUN mkdir -p logs + +# Create a non-root user for security +# Note: HF Spaces runs as user 1000 by default, so we align with that +RUN useradd -m -u 1000 payshield + +# Set PYTHONPATH to include the app directory +ENV PYTHONPATH=/app + +# Copy the virtual environment from the builder stage +COPY --from=builder /app/.venv /app/.venv + +# Ensure the installed binary is on the `PATH` +ENV PATH="/app/.venv/bin:$PATH" + +# Copy the rest of the application code +COPY src /app/src +COPY configs /app/configs +COPY models /app/models +COPY entrypoint.sh /app/entrypoint.sh + +# Change ownership to the non-root user +RUN chown -R payshield:payshield /app + +# Switch to the non-root user +USER 1000 + +# Expose ports +# 7860 is the default port for Hugging Face Spaces +EXPOSE 7860 8000 + +# Set environment variables for HF Spaces +ENV API_URL="http://localhost:8000/v1/predict" +ENV PORT=7860 + +# Use entrypoint script to run both services +CMD ["/bin/bash", "/app/entrypoint.sh"] diff --git a/README.md b/README.md index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5b52d6d085d0e98b4fd8fd4ef345d65e2e232f9a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,162 @@ +# πŸ›‘οΈ PayShield-ML:Real-Time Fraud Engine + +![Banner](assets/banner_0.jpeg) +![Python](https://img.shields.io/badge/python-3.12-blue.svg) +![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-009688.svg) +![Redis](https://img.shields.io/badge/redis-7.0+-DC382D.svg) +![XGBoost](https://img.shields.io/badge/XGBoost-2.0+-FF6F00.svg) +![Docker](https://img.shields.io/badge/docker-%230db7ed.svg) + +**A production-grade MLOps system providing low-latency fraud detection with stateful feature hydration and human-in-the-loop explainability.** + +--- + +## πŸ—οΈ System Architecture + +The system follows a **Lambda Architecture** pattern, decoupling the high-latency model training from the low-latency inference path. + +```mermaid +graph TD + User[Payment Gateway] -->|POST /predict| API[FastAPI Inference Service] + + subgraph "Online Serving Layer (<50ms)" + API -->|1. Hydrate Velocity| Redis[(Redis Feature Store)] + API -->|2. Preprocess| Pipeline[Scikit-Learn Pipeline] + Pipeline -->|3. Predict| Model[XGBoost Classifier] + Model -->|4. Explain| SHAP[SHAP Engine] + end + + subgraph "Offline Training Layer" + Data[(Transactional Data)] -->|Batch Load| Trainer[Training Pipeline] + Trainer -->|CV & Tuning| MLflow[MLflow Tracking] + Trainer -->|Export Artifact| Registry[Model Registry] + end + + API -->|Async Log| ShadowLogs[Shadow Mode Logs] + API -->|Visualize| Dashboard[Analyst Dashboard] +``` +### πŸ–₯️ Analyst Workbench +![Dashboard Screenshot](assets/dashboard_screenshot.png) +*Real-time interface for fraud analysts to review blocked transactions and SHAP explanations.* +--- + +## πŸš€ Key Features + +### 1. Stateful Feature Store (Redis) +Traditional stateless APIs struggle with "Velocity Features" (e.g., *how many times did this user swipe in 24 hours?*). Our engine utilizes **Redis Sorted Sets (ZSET)** to maintain rolling windows, allowing feature hydration in **<2ms** with $O(\log N)$ complexity. + +### 2. Shadow Mode (Dark Launch) +To mitigate the risk of model drift or false positives, the system supports a **Shadow Mode** configuration. The model runs in production, receives real traffic, and logs decisions, but never blocks a transaction. This allows for risk-free A/B testing against legacy rule engines. + +### 3. Business-Aligned Optimization +Standard accuracy is misleading in fraud detection due to class imbalance. We implement a **Recall-Constraint Strategy** (Target: 80% Recall) ensuring the model captures the vast majority of fraud while maintaining a strict upper bound on False Positive Rates, as required by financial compliance. + +### 4. Cold-Start Handling +Engineered logic to handle new users with zero history by defaulting to global medians and "warm-up" priors, preventing the system from unfairly blocking legitimate first-time customers. + +--- + +## πŸ“Š Performance & Metrics + +The following metrics were achieved on a hold-out temporal test set (out-of-time validation): + +| Metric | Result | Target / Bench | +| :--- | :--- | :--- | +| **PR-AUC** | 0.9245 | Excellent | +| **Precision** | 93.18% | Low False Positives | +| **Recall** | 80.06% | Target: 80% | +| **Inference Latency (p95)** | ~30ms | < 50ms | + +--- + +## πŸ› οΈ Quick Start + +### Prerequisites +- Docker & Docker Compose +- (Optional) Python 3.12+ (managed via `uv`) + +### Installation & Deployment + +1. **Clone the Repository** + ```bash + git clone https://github.com/Sibikrish3000/realtime-fraud-engine.git + cd realtime-fraud-engine + ``` + +2. **Launch the Stack** + ```bash + docker-compose up --build + ``` + *This starts the FastAPI Backend, Redis Feature Store, and Streamlit Dashboard.* + +3. **Access the Services** + - **Analyst Dashboard:** [http://localhost:8501](http://localhost:8501) + - **API Documentation:** [http://localhost:8000/docs](http://localhost:8000/docs) + - **Redis Instance:** `localhost:6379` + +--- + +## πŸ“‚ Project Structure + +```text +src/ +β”œβ”€β”€ api/ # FastAPI service, schemas (Pydantic), and config +β”œβ”€β”€ features/ # Redis feature store logic and sliding window constants +β”œβ”€β”€ models/ # Training pipelines, metrics calculation, and XGBoost wrappers +β”œβ”€β”€ frontend/ # Streamlit-based analyst workbench +β”œβ”€β”€ data/ # Data ingestion and cleaning utilities +└── explainability.py # SHAP-based waterfall plots and global importance + + +``` +See the [Development & MLOps Guide](docs/DEVELOPMENT.md) for detailed instructions on training and local development. +--- + +## πŸ“‘ API Reference + +### Predict Transaction +`POST /v1/predict` + +**Request:** +```bash +curl -X 'POST' \ + 'http://localhost:8000/v1/predict' \ + -H 'Content-Type: application/json' \ + -d '{ + "user_id": "u12345", + "trans_date_trans_time": "2024-01-20 14:30:00", + "amt": 150.75, + "lat": 40.7128, + "long": -74.0060, + "merch_lat": 40.7306, + "merch_long": -73.9352, + "category": "grocery_pos" + }' +``` + +**Response:** +```json +{ + "decision": "APPROVE", + "probability": 0.12, + "risk_score": 12.0, + "latency_ms": 28.5, + "shadow_mode": false, + "shap_values": { + "amt": 0.05, + "dist": 0.02 + } +} +``` + +--- + +## πŸ—ΊοΈ Future Roadmap + +- [ ] **Kafka Integration:** Transition to an asynchronous event-driven architecture for high-throughput stream processing. +- [ ] **KServe Deployment:** Migrate from standalone FastAPI to KServe for automated scaling and model versioning. +- [ ] **Graph Features:** Incorporate Neo4j-based features to detect fraud rings and synthetic identities. + +--- +**Author:** [Sibi Krishnamoorthy](https://github.com/Sibikrish3000) +*Machine Learning Engineer | Fintech & Risk Analytics* diff --git a/assets/Screenshot_18-1-2026_22489_localhost.jpeg b/assets/Screenshot_18-1-2026_22489_localhost.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b645290a61b3531bd6d58d0c87dd8cb5e83b8ef3 --- /dev/null +++ b/assets/Screenshot_18-1-2026_22489_localhost.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe0692585014893507c4adfaeb3b6fb4a4fb13bb77e5f3909f131251c11d4c2d +size 226145 diff --git a/assets/banner.jpeg b/assets/banner.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..47f08ed41774e45e245d6aeca0f1ece6cf7f4e00 --- /dev/null +++ b/assets/banner.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1728be71a279f0bd5d0902ddc40d0888e69ab4f4e5b365731d8efcbd0c16c49 +size 134295 diff --git a/assets/banner_0.jpeg b/assets/banner_0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5b1b65f2b55296381ff65d23f4673fd2e7f16072 --- /dev/null +++ b/assets/banner_0.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a3aa5bc40a100a8cebdce866dace9a7a62a8f7fb9af76a11de389474ade7cee +size 155419 diff --git a/assets/dashboard_screenshot.png b/assets/dashboard_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a7b84e45a5026acc7f72b84f88665c16af2a75 --- /dev/null +++ b/assets/dashboard_screenshot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25d04e9de048d3aa39e8411af2faf8b924bd0eb5fb60d32ee8ea10b0b260863b +size 240840 diff --git a/configs/model_config.yaml b/configs/model_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..26a987142827ba69d7b1168a71b1bb8d9b2d9a86 --- /dev/null +++ b/configs/model_config.yaml @@ -0,0 +1,29 @@ +# Model Training Configuration + +model: + # XGBoost Hyperparameters (Aligned with Notebook) + n_estimators: 500 # Notebook used 500 trees (Script had 100) + max_depth: 8 # Notebook used depth 8 (Script had 6) + learning_rate: 0.1 # Matches notebook + subsample: 0.8 # Row sampling for regularization + colsample_bytree: 0.8 # Column sampling for regularization + scale_pos_weight: 100 # Will be overridden by calculated imbalance ratio + eval_metric: "aucpr" + random_state: 42 + +# Training Settings +training: + test_size: 0.2 + validation_size: 0.1 + random_state: 42 + +# Decision Threshold +threshold: + optimal_threshold: 0.9016819596290588 # From notebook PR curve analysis + min_precision: 0.80 # Business requirement + +# Feature Engineering +features: + use_cyclical_encoding: true + use_distance_features: true + use_temporal_features: true diff --git a/configs/redis_config.yaml b/configs/redis_config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..793c4cb229aa5aadcf49115573bc59cdff5b7fff --- /dev/null +++ b/configs/redis_config.yaml @@ -0,0 +1,19 @@ +# Redis Feature Store Configuration + +# Connection Settings +host: localhost +port: 6379 +db: 0 +password: null # Set via REDIS_PASSWORD env var in production + +# Connection Pool +max_connections: 50 +socket_connect_timeout: 2 # seconds +socket_timeout: 1 # seconds + +# Feature Store Settings +ema_alpha: 0.08 # 2/(24+1) for 24-hour window +key_ttl: 604800 # 7 days in seconds + +# Window Configuration +sliding_window_hours: 24 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..87fbd3658b5e44cd38968441b4e287e79642f0c5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,63 @@ +version: '3.8' + +services: + redis: + image: redis:7-alpine + container_name: payshield-redis + ports: + - "6379:6379" + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - payshield-network + + api: + build: + context: . + dockerfile: Dockerfile + container_name: payshield-api + depends_on: + redis: + condition: service_healthy + ports: + - "8000:8000" + environment: + - REDIS_HOST=redis + - REDIS_PORT=6379 + - MODEL_PATH=/app/models/fraud_model.pkl + - THRESHOLD_PATH=/app/models/threshold.json + - SHADOW_MODE=false + volumes: + - ./models:/app/models:ro + - ./logs:/app/logs + networks: + - payshield-network + + # Placeholder for Phase 6 Dashboard + dashboard: + build: + context: . + dockerfile: Dockerfile + container_name: payshield-dashboard + depends_on: + - api + command: ["streamlit", "run", "src/frontend/app.py", "--server.port", "8501", "--server.address", "0.0.0.0"] + ports: + - "8501:8501" + environment: + - API_URL=http://api:8000/v1/predict + networks: + - payshield-network + restart: unless-stopped + +networks: + payshield-network: + driver: bridge + +volumes: + redis_data: diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..68a438dbc5b2ad1866058cf298f74aaefacfbba0 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,42 @@ +version: '3.8' + +services: + # Redis Feature Store + redis: + image: redis:7-alpine + container_name: payshield-redis + ports: + - "6379:6379" + volumes: + - redis_data:/data + command: redis-server --appendonly yes + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + networks: + - payshield-network + + # MLflow Tracking Server (for future phases) + mlflow: + image: ghcr.io/mlflow/mlflow:v2.10.0 + container_name: payshield-mlflow + ports: + - "5000:5000" + environment: + - MLFLOW_BACKEND_STORE_URI=sqlite:///mlflow/mlflow.db + - MLFLOW_ARTIFACTS_DESTINATION=/mlflow/artifacts + volumes: + - mlflow_data:/mlflow + command: mlflow server --host 0.0.0.0 --port 5000 + networks: + - payshield-network + +volumes: + redis_data: + mlflow_data: + +networks: + payshield-network: + driver: bridge diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md new file mode 100644 index 0000000000000000000000000000000000000000..e7182402fcdb5848c74d1f4148edb6891a8c2570 --- /dev/null +++ b/docs/DEVELOPMENT.md @@ -0,0 +1,135 @@ +# πŸ› οΈ Development & MLOps Guide + +This guide provides detailed instructions on setting up the environment, running experiments, and developing the PayShield-ML system. + +--- + +## πŸ—οΈ 1. Environment Setup + +The project uses `uv` for lightning-fast Python package and project management. + +### Prerequisites +- [uv](https://github.com/astral-sh/uv) installed +- Docker & Docker Compose +- Redis (can be run via Docker) + +### Installation +```bash +# Sync dependencies and create virtual environment +uv sync + +# Activate the environment +source .venv/bin/activate +``` + +--- + +## πŸ“Š 2. MLflow Tracking + +We use MLflow to track hyperparameters, metrics, and model artifacts. + +### Start MLflow Server +Run this in a separate terminal to view the UI: +```bash +uv run mlflow ui --host 0.0.0.0 --port 5000 +``` +Then access the dashboard at [http://localhost:5000](http://localhost:5000). + +--- + +## πŸš‚ 3. Model Training Pipeline + +The training script handles data ingestion, feature engineering, cross-validation, and MLflow logging. + +### Basic Training +```bash +uv run python src/models/train.py --data_path data/fraud_sample.csv +``` + +### Advanced Training with Custom Params +```bash +uv run python src/models/train.py \ + --data_path data/fraud_sample.csv \ + --experiment_name fraud_v2 \ + --min_recall 0.85 \ + --output_dir models/ +``` + +| Argument | Description | Default | +| :--- | :--- | :--- | +| `--data_path` | Path to CSV/Parquet training data | (Required) | +| `--params_path` | Path to model config YAML | `configs/model_config.yaml` | +| `--experiment_name` | MLflow experiment grouping | `fraud_detection` | +| `--min_recall` | Target recall for threshold optimization | `0.80` | + +--- + +## πŸ”Œ 4. Running Services Locally + +For rapid iteration without rebuilding Docker images. + +### Start Redis (Required) +```bash +docker run -d --name payshield-redis -p 6379:6379 redis:7-alpine +``` + +### Start FastAPI Backend +```bash +# Running with hot-reload +uv run uvicorn src.api.main:app --host 0.0.0.0 --port 8000 --reload +``` +- **Swagger Docs:** [http://localhost:8000/docs](http://localhost:8000/docs) + +### Start Streamlit Dashboard +```bash +export API_URL="http://localhost:8000/v1/predict" +uv run streamlit run src/frontend/app.py --server.port 8501 +``` +- **Dashboard:** [http://localhost:8501](http://localhost:8501) + +--- + +## 🐳 5. Full-Stack Development (Docker Compose) + +The easiest way to replicate production-like environment. + +### Build and Launch +```bash +docker-compose up --build +``` + +### Useful Commands +```bash +# Run in background +docker-compose up -d + +# Check all service logs +docker-compose logs -f + +# Stop and remove containers +docker-compose down +``` + +### Service Map +| Service | Port | Endpoint | +| :--- | :--- | :--- | +| **API** | 8000 | `http://localhost:8000` | +| **Dashboard** | 8501 | `http://localhost:8501` | +| **Redis** | 6379 | `localhost:6379` | + +--- + +## πŸ§ͺ 6. Testing + +We use `pytest` for unit and integration tests. + +```bash +# Run all tests +uv run pytest + +# Run with coverage report +uv run pytest --cov=src +``` + +--- +**Note:** Ensure you have the `models/fraud_model.pkl` and `models/threshold.json` artifacts present before starting the API. These are generated by the training pipeline. diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..f61410d42dee1f1bbda1b46fe4bfcdce61bd1b51 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Start FastAPI in the background +uvicorn src.api.main:app --host 0.0.0.0 --port 8000 & + +# Start Streamlit in the foreground +streamlit run src/frontend/app.py --server.port 7860 --server.address 0.0.0.0 diff --git a/logs/shadow_predictions.jsonl b/logs/shadow_predictions.jsonl new file mode 100644 index 0000000000000000000000000000000000000000..a981be8d74f1a3df9a67a01baabb484b26151b20 --- /dev/null +++ b/logs/shadow_predictions.jsonl @@ -0,0 +1,55 @@ +{"timestamp": "2026-01-18T12:37:19.214473Z", "user_id": "u12345", "amt": 150.0, "category": "grocery_pos", "real_decision": "APPROVE", "probability": 9.402751288689615e-07, "latency_ms": 72.96919822692871, "shadow_mode": true} +{"timestamp": "2026-01-18T12:44:56.721604Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 49.37005043029785, "shadow_mode": true} +{"timestamp": "2026-01-18T12:47:36.067083Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 54.149627685546875, "shadow_mode": true} +{"timestamp": "2026-01-18T12:47:39.609355Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 25.424957275390625, "shadow_mode": true} +{"timestamp": "2026-01-18T12:47:59.207044Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 50.46653747558594, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:01.070087Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 51.763057708740234, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:01.865266Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 29.25252914428711, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:02.489046Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 23.40531349182129, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:03.161965Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 44.34394836425781, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:03.765913Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 39.629220962524414, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:04.394367Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 27.244091033935547, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:04.986422Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 45.80378532409668, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:05.901805Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 51.35393142700195, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:06.666034Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 51.82218551635742, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:07.345695Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 48.212528228759766, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:07.919900Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 26.331424713134766, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:08.553960Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 41.85080528259277, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:09.265804Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 68.79472732543945, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:09.853970Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 39.57653045654297, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:10.481686Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 21.60501480102539, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:11.133950Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 50.62055587768555, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:11.734621Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 39.61753845214844, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:12.292397Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 21.454334259033203, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:12.847376Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 42.4959659576416, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:13.340940Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 47.911882400512695, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:13.923384Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 59.66687202453613, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:14.445859Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 50.5223274230957, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:14.990366Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 24.456501007080078, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:15.709852Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 45.6852912902832, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:15.913553Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 25.067567825317383, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:16.193654Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 44.05331611633301, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:16.345675Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 39.55793380737305, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:16.590079Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 49.01242256164551, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:16.789928Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 46.65184020996094, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:16.971762Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 29.859066009521484, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:17.185712Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 49.96466636657715, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:17.345695Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 39.675235748291016, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:17.524961Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 40.1458740234375, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:17.683832Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 24.51038360595703, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:17.851388Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 23.29730987548828, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:18.065689Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 47.719478607177734, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:18.381860Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 45.37034034729004, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:18.830235Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 49.47638511657715, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:19.041672Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 41.09072685241699, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:19.269802Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 37.813663482666016, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:19.570256Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 30.001163482666016, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:19.910120Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 47.04141616821289, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:20.254294Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 52.63257026672363, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:20.520307Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 24.410486221313477, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:20.933840Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 2.6684321596803784e-07, "latency_ms": 42.56725311279297, "shadow_mode": true} +{"timestamp": "2026-01-18T12:48:58.996285Z", "user_id": "u12345", "amt": 2500.0, "category": "shopping_net", "real_decision": "BLOCK", "probability": 0.999806821346283, "latency_ms": 38.36369514465332, "shadow_mode": true} +{"timestamp": "2026-01-18T14:12:06.614568Z", "user_id": "u12345", "amt": 150.0, "category": "grocery_pos", "real_decision": "APPROVE", "probability": 8.649675874039531e-05, "latency_ms": 86.48848533630371, "shadow_mode": true} +{"timestamp": "2026-01-18T14:15:46.042042Z", "user_id": "u12345", "amt": 150.0, "category": "misc_net", "real_decision": "APPROVE", "probability": 7.321957014028158e-07, "latency_ms": 86.42172813415527, "shadow_mode": true} +{"timestamp": "2026-01-18T14:16:12.912011Z", "user_id": "u12345", "amt": 1500.0, "category": "misc_net", "real_decision": "BLOCK", "probability": 0.9997040629386902, "latency_ms": 49.93748664855957, "shadow_mode": true} +{"timestamp": "2026-01-18T14:17:14.040831Z", "user_id": "u12345", "amt": 1500.0, "category": "misc_net", "real_decision": "BLOCK", "probability": 0.9997040629386902, "latency_ms": 43.45536231994629, "shadow_mode": true} diff --git a/main.py b/main.py new file mode 100644 index 0000000000000000000000000000000000000000..7b46eae54707581b8795a278b618cfda9b781068 --- /dev/null +++ b/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from payshield-ml!") + + +if __name__ == "__main__": + main() diff --git a/models/fraud_model.pkl b/models/fraud_model.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8b2bb7467207119f8598a9e8571f0425edc86e65 --- /dev/null +++ b/models/fraud_model.pkl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9be403668e04f1458d5eb5e0dd805495e7f6fa1f322dc8b006dcb2fccc78061d +size 3933261 diff --git a/models/threshold.json b/models/threshold.json new file mode 100644 index 0000000000000000000000000000000000000000..995a1e811b15aa7aadbe6e664582fa41aa184c3c --- /dev/null +++ b/models/threshold.json @@ -0,0 +1,10 @@ +{ + "optimal_threshold": 0.8199467062950134, + "metrics": { + "precision": 0.9318377911993098, + "recall": 0.8005930318754633, + "f1": 0.861244019138756, + "pr_auc": 0.924508450881234, + "threshold_used": 0.8199467062950134 + } +} \ No newline at end of file diff --git a/notebook/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/notebook/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..363fcab7ed6e9634e198cf5555ceb88932c9a245 --- /dev/null +++ b/notebook/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebook/.ipynb_checkpoints/credit-card-fraud-detection-checkpoint.ipynb b/notebook/.ipynb_checkpoints/credit-card-fraud-detection-checkpoint.ipynb new file mode 100755 index 0000000000000000000000000000000000000000..fed95d9447bd0b66f213fd1f836aaaed213a0979 --- /dev/null +++ b/notebook/.ipynb_checkpoints/credit-card-fraud-detection-checkpoint.ipynb @@ -0,0 +1 @@ +{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.12.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"widgets":{"application/vnd.jupyter.widget-state+json":{"state":{},"version_major":2,"version_minor":0}},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":1399887,"sourceType":"datasetVersion","datasetId":817870}],"dockerImageVersionId":31259,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"5444e401-7cf9-4045-9c6d-4abc569cfd7a","cell_type":"code","source":"# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:32:57.421566Z","iopub.execute_input":"2026-01-17T19:32:57.421959Z","iopub.status.idle":"2026-01-17T19:32:57.432843Z","shell.execute_reply.started":"2026-01-17T19:32:57.421922Z","shell.execute_reply":"2026-01-17T19:32:57.432135Z"}},"outputs":[{"name":"stdout","text":"/kaggle/input/fraud-detection/fraudTest.csv\n/kaggle/input/fraud-detection/fraudTrain.csv\n","output_type":"stream"}],"execution_count":1},{"id":"63b24546-88e8-4443-9f29-7c4505daa6b1","cell_type":"code","source":"!pip install --upgrade shap","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:32:57.433844Z","iopub.execute_input":"2026-01-17T19:32:57.434132Z","iopub.status.idle":"2026-01-17T19:33:00.862059Z","shell.execute_reply.started":"2026-01-17T19:32:57.434102Z","shell.execute_reply":"2026-01-17T19:33:00.861086Z"}},"outputs":[{"name":"stdout","text":"Requirement already satisfied: shap in /usr/local/lib/python3.12/dist-packages (0.50.0)\nRequirement already satisfied: numpy>=2 in /usr/local/lib/python3.12/dist-packages (from shap) (2.0.2)\nRequirement already satisfied: scipy in /usr/local/lib/python3.12/dist-packages (from shap) (1.15.3)\nRequirement already satisfied: scikit-learn in /usr/local/lib/python3.12/dist-packages (from shap) (1.6.1)\nRequirement already satisfied: pandas in /usr/local/lib/python3.12/dist-packages (from shap) (2.2.2)\nRequirement already satisfied: tqdm>=4.27.0 in /usr/local/lib/python3.12/dist-packages (from shap) (4.67.1)\nRequirement already satisfied: packaging>20.9 in /usr/local/lib/python3.12/dist-packages (from shap) (26.0rc2)\nRequirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.12/dist-packages (from shap) (0.0.8)\nRequirement already satisfied: numba>=0.54 in /usr/local/lib/python3.12/dist-packages (from shap) (0.60.0)\nRequirement already satisfied: cloudpickle in /usr/local/lib/python3.12/dist-packages (from shap) (3.1.1)\nRequirement already satisfied: typing-extensions in /usr/local/lib/python3.12/dist-packages (from shap) (4.15.0)\nRequirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.54->shap) (0.43.0)\nRequirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2.9.0.post0)\nRequirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2025.2)\nRequirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2025.2)\nRequirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn->shap) (1.5.3)\nRequirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn->shap) (3.6.0)\nRequirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas->shap) (1.17.0)\n","output_type":"stream"}],"execution_count":2},{"id":"f26f0479-2a1a-4bf3-8b13-7ebfc0900869","cell_type":"code","source":"import pandas as pd\npd.set_option(\"display.max_columns\",None)\nimport numpy as np\nimport matplotlib.pyplot as plt \nimport seaborn as sns\nsns.set(rc={\"figure.figsize\":(18,8)},style='darkgrid')\nsns.set_palette('rocket')\nfrom time import time\nimport warnings\nwarnings.filterwarnings('ignore')\nfrom sklearn.model_selection import TimeSeriesSplit","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:00.863443Z","iopub.execute_input":"2026-01-17T19:33:00.863901Z","iopub.status.idle":"2026-01-17T19:33:01.856326Z","shell.execute_reply.started":"2026-01-17T19:33:00.863852Z","shell.execute_reply":"2026-01-17T19:33:01.855732Z"}},"outputs":[],"execution_count":3},{"id":"e5f026d8-9a7c-46e6-acce-c19767e2dbcc","cell_type":"code","source":"from sklearn.metrics import *","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:01.857343Z","iopub.execute_input":"2026-01-17T19:33:01.857835Z","iopub.status.idle":"2026-01-17T19:33:01.861735Z","shell.execute_reply.started":"2026-01-17T19:33:01.857801Z","shell.execute_reply":"2026-01-17T19:33:01.861044Z"}},"outputs":[],"execution_count":4},{"id":"909f283b-c0e9-470c-8f99-fe2ddeb3cedd","cell_type":"code","source":"train=pd.read_csv(\"/kaggle/input/fraud-detection/fraudTrain.csv\")\ntrain.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:01.864103Z","iopub.execute_input":"2026-01-17T19:33:01.864320Z","iopub.status.idle":"2026-01-17T19:33:07.981218Z","shell.execute_reply.started":"2026-01-17T19:33:01.864300Z","shell.execute_reply":"2026-01-17T19:33:07.980387Z"}},"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":" Unnamed: 0 trans_date_trans_time cc_num \\\n0 0 2019-01-01 00:00:18 2703186189652095 \n1 1 2019-01-01 00:00:44 630423337322 \n2 2 2019-01-01 00:00:51 38859492057661 \n3 3 2019-01-01 00:01:16 3534093764340240 \n4 4 2019-01-01 00:03:06 375534208663984 \n\n merchant category amt first \\\n0 fraud_Rippin, Kub and Mann misc_net 4.97 Jennifer \n1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 Stephanie \n2 fraud_Lind-Buckridge entertainment 220.11 Edward \n3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 Jeremy \n4 fraud_Keeling-Crist misc_pos 41.96 Tyler \n\n last gender street city state zip \\\n0 Banks F 561 Perry Cove Moravian Falls NC 28654 \n1 Gill F 43039 Riley Greens Suite 393 Orient WA 99160 \n2 Sanchez M 594 White Dale Suite 530 Malad City ID 83252 \n3 White M 9443 Cynthia Court Apt. 038 Boulder MT 59632 \n4 Garcia M 408 Bradley Rest Doe Hill VA 24433 \n\n lat long city_pop job dob \\\n0 36.0788 -81.1781 3495 Psychologist, counselling 1988-03-09 \n1 48.8878 -118.2105 149 Special educational needs teacher 1978-06-21 \n2 42.1808 -112.2620 4154 Nature conservation officer 1962-01-19 \n3 46.2306 -112.1138 1939 Patent attorney 1967-01-12 \n4 38.4207 -79.4629 99 Dance movement psychotherapist 1986-03-28 \n\n trans_num unix_time merch_lat merch_long \\\n0 0b242abb623afc578575680df30655b9 1325376018 36.011293 -82.048315 \n1 1f76529f8574734946361c461b024d99 1325376044 49.159047 -118.186462 \n2 a1a22d70485983eac12b5b88dad1cf95 1325376051 43.150704 -112.154481 \n3 6b849c168bdad6f867558c3793159a81 1325376076 47.034331 -112.561071 \n4 a41d7549acf90789359a9aa5346dcb46 1325376186 38.674999 -78.632459 \n\n is_fraud \n0 0 \n1 0 \n2 0 \n3 0 \n4 0 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry CoveMoravian FallsNC2865436.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393OrientWA9916048.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530Malad CityID8325242.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038BoulderMT5963246.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley RestDoe HillVA2443338.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590
\n
"},"metadata":{}}],"execution_count":5},{"id":"04cea965-d858-4cbb-9f74-3cc0d924c695","cell_type":"code","source":"test=pd.read_csv(\"/kaggle/input/fraud-detection/fraudTest.csv\")\ntest.head()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:07.982244Z","iopub.execute_input":"2026-01-17T19:33:07.982527Z","iopub.status.idle":"2026-01-17T19:33:10.451487Z","shell.execute_reply.started":"2026-01-17T19:33:07.982500Z","shell.execute_reply":"2026-01-17T19:33:10.450900Z"}},"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":" Unnamed: 0 trans_date_trans_time cc_num \\\n0 0 2020-06-21 12:14:25 2291163933867244 \n1 1 2020-06-21 12:14:33 3573030041201292 \n2 2 2020-06-21 12:14:53 3598215285024754 \n3 3 2020-06-21 12:15:15 3591919803438423 \n4 4 2020-06-21 12:15:17 3526826139003047 \n\n merchant category amt first \\\n0 fraud_Kirlin and Sons personal_care 2.86 Jeff \n1 fraud_Sporer-Keebler personal_care 29.84 Joanne \n2 fraud_Swaniawski, Nitzsche and Welch health_fitness 41.28 Ashley \n3 fraud_Haley Group misc_pos 60.05 Brian \n4 fraud_Johnston-Casper travel 3.19 Nathan \n\n last gender street city state zip \\\n0 Elliott M 351 Darlene Green Columbia SC 29209 \n1 Williams F 3638 Marsh Union Altonah UT 84002 \n2 Lopez F 9333 Valentine Point Bellmore NY 11710 \n3 Williams M 32941 Krystal Mill Apt. 552 Titusville FL 32780 \n4 Massey M 5783 Evan Roads Apt. 465 Falmouth MI 49632 \n\n lat long city_pop job dob \\\n0 33.9659 -80.9355 333497 Mechanical engineer 1968-03-19 \n1 40.3207 -110.4360 302 Sales professional, IT 1990-01-17 \n2 40.6729 -73.5365 34496 Librarian, public 1970-10-21 \n3 28.5697 -80.8191 54767 Set designer 1987-07-25 \n4 44.2529 -85.0170 1126 Furniture designer 1955-07-06 \n\n trans_num unix_time merch_lat merch_long \\\n0 2da90c7d74bd46a0caf3777415b3ebd3 1371816865 33.986391 -81.200714 \n1 324cc204407e99f51b0d6ca0055005e7 1371816873 39.450498 -109.960431 \n2 c81755dbbbea9d5c77f094348a7579be 1371816893 40.495810 -74.196111 \n3 2159175b9efe66dc301f149d3d5abf8c 1371816915 28.812398 -80.883061 \n4 57ff021bd3f328f8738bb535c302a31b 1371816917 44.959148 -85.884734 \n\n is_fraud \n0 0 \n1 0 \n2 0 \n3 0 \n4 0 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002020-06-21 12:14:252291163933867244fraud_Kirlin and Sonspersonal_care2.86JeffElliottM351 Darlene GreenColumbiaSC2920933.9659-80.9355333497Mechanical engineer1968-03-192da90c7d74bd46a0caf3777415b3ebd3137181686533.986391-81.2007140
112020-06-21 12:14:333573030041201292fraud_Sporer-Keeblerpersonal_care29.84JoanneWilliamsF3638 Marsh UnionAltonahUT8400240.3207-110.4360302Sales professional, IT1990-01-17324cc204407e99f51b0d6ca0055005e7137181687339.450498-109.9604310
222020-06-21 12:14:533598215285024754fraud_Swaniawski, Nitzsche and Welchhealth_fitness41.28AshleyLopezF9333 Valentine PointBellmoreNY1171040.6729-73.536534496Librarian, public1970-10-21c81755dbbbea9d5c77f094348a7579be137181689340.495810-74.1961110
332020-06-21 12:15:153591919803438423fraud_Haley Groupmisc_pos60.05BrianWilliamsM32941 Krystal Mill Apt. 552TitusvilleFL3278028.5697-80.819154767Set designer1987-07-252159175b9efe66dc301f149d3d5abf8c137181691528.812398-80.8830610
442020-06-21 12:15:173526826139003047fraud_Johnston-Caspertravel3.19NathanMasseyM5783 Evan Roads Apt. 465FalmouthMI4963244.2529-85.01701126Furniture designer1955-07-0657ff021bd3f328f8738bb535c302a31b137181691744.959148-85.8847340
\n
"},"metadata":{}}],"execution_count":6},{"id":"7ff01d64-72e6-46fc-b062-a4768f7e9f13","cell_type":"code","source":"test[\"split\"]=\"test\"\ntrain[\"split\"]=\"train\"\ndf=pd.concat([train,test],axis=0).reset_index(drop=True)\ndf.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:10.452340Z","iopub.execute_input":"2026-01-17T19:33:10.452561Z","iopub.status.idle":"2026-01-17T19:33:11.907517Z","shell.execute_reply.started":"2026-01-17T19:33:10.452540Z","shell.execute_reply":"2026-01-17T19:33:11.906747Z"}},"outputs":[{"execution_count":7,"output_type":"execute_result","data":{"text/plain":" Unnamed: 0 trans_date_trans_time cc_num \\\n0 0 2019-01-01 00:00:18 2703186189652095 \n1 1 2019-01-01 00:00:44 630423337322 \n2 2 2019-01-01 00:00:51 38859492057661 \n3 3 2019-01-01 00:01:16 3534093764340240 \n4 4 2019-01-01 00:03:06 375534208663984 \n\n merchant category amt first \\\n0 fraud_Rippin, Kub and Mann misc_net 4.97 Jennifer \n1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 Stephanie \n2 fraud_Lind-Buckridge entertainment 220.11 Edward \n3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 Jeremy \n4 fraud_Keeling-Crist misc_pos 41.96 Tyler \n\n last gender street city state zip \\\n0 Banks F 561 Perry Cove Moravian Falls NC 28654 \n1 Gill F 43039 Riley Greens Suite 393 Orient WA 99160 \n2 Sanchez M 594 White Dale Suite 530 Malad City ID 83252 \n3 White M 9443 Cynthia Court Apt. 038 Boulder MT 59632 \n4 Garcia M 408 Bradley Rest Doe Hill VA 24433 \n\n lat long city_pop job dob \\\n0 36.0788 -81.1781 3495 Psychologist, counselling 1988-03-09 \n1 48.8878 -118.2105 149 Special educational needs teacher 1978-06-21 \n2 42.1808 -112.2620 4154 Nature conservation officer 1962-01-19 \n3 46.2306 -112.1138 1939 Patent attorney 1967-01-12 \n4 38.4207 -79.4629 99 Dance movement psychotherapist 1986-03-28 \n\n trans_num unix_time merch_lat merch_long \\\n0 0b242abb623afc578575680df30655b9 1325376018 36.011293 -82.048315 \n1 1f76529f8574734946361c461b024d99 1325376044 49.159047 -118.186462 \n2 a1a22d70485983eac12b5b88dad1cf95 1325376051 43.150704 -112.154481 \n3 6b849c168bdad6f867558c3793159a81 1325376076 47.034331 -112.561071 \n4 a41d7549acf90789359a9aa5346dcb46 1325376186 38.674999 -78.632459 \n\n is_fraud split \n0 0 train \n1 0 train \n2 0 train \n3 0 train \n4 0 train ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraudsplit
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry CoveMoravian FallsNC2865436.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150train
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393OrientWA9916048.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620train
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530Malad CityID8325242.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810train
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038BoulderMT5963246.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710train
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley RestDoe HillVA2443338.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590train
\n
"},"metadata":{}}],"execution_count":7},{"id":"46441191-f54c-4973-9fa4-b3cf994b10b9","cell_type":"code","source":"df.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:11.908588Z","iopub.execute_input":"2026-01-17T19:33:11.908908Z","iopub.status.idle":"2026-01-17T19:33:11.917874Z","shell.execute_reply.started":"2026-01-17T19:33:11.908880Z","shell.execute_reply":"2026-01-17T19:33:11.917157Z"}},"outputs":[{"name":"stdout","text":"\nRangeIndex: 1852394 entries, 0 to 1852393\nData columns (total 24 columns):\n # Column Dtype \n--- ------ ----- \n 0 Unnamed: 0 int64 \n 1 trans_date_trans_time object \n 2 cc_num int64 \n 3 merchant object \n 4 category object \n 5 amt float64\n 6 first object \n 7 last object \n 8 gender object \n 9 street object \n 10 city object \n 11 state object \n 12 zip int64 \n 13 lat float64\n 14 long float64\n 15 city_pop int64 \n 16 job object \n 17 dob object \n 18 trans_num object \n 19 unix_time int64 \n 20 merch_lat float64\n 21 merch_long float64\n 22 is_fraud int64 \n 23 split object \ndtypes: float64(5), int64(6), object(13)\nmemory usage: 339.2+ MB\n","output_type":"stream"}],"execution_count":8},{"id":"27a6f718-5f88-44a8-9649-c5c208cf4207","cell_type":"code","source":"df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:11.918739Z","iopub.execute_input":"2026-01-17T19:33:11.919014Z","iopub.status.idle":"2026-01-17T19:33:12.489945Z","shell.execute_reply.started":"2026-01-17T19:33:11.918982Z","shell.execute_reply":"2026-01-17T19:33:12.489293Z"}},"outputs":[{"execution_count":9,"output_type":"execute_result","data":{"text/plain":" Unnamed: 0 cc_num amt zip lat \\\ncount 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 \nmean 5.371934e+05 4.173860e+17 7.006357e+01 4.881326e+04 3.853931e+01 \nstd 3.669110e+05 1.309115e+18 1.592540e+02 2.688185e+04 5.071470e+00 \nmin 0.000000e+00 6.041621e+10 1.000000e+00 1.257000e+03 2.002710e+01 \n25% 2.315490e+05 1.800429e+14 9.640000e+00 2.623700e+04 3.466890e+01 \n50% 4.630980e+05 3.521417e+15 4.745000e+01 4.817400e+04 3.935430e+01 \n75% 8.335758e+05 4.642255e+15 8.310000e+01 7.204200e+04 4.194040e+01 \nmax 1.296674e+06 4.992346e+18 2.894890e+04 9.992100e+04 6.669330e+01 \n\n long city_pop unix_time merch_lat merch_long \\\ncount 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 \nmean -9.022783e+01 8.864367e+04 1.358674e+09 3.853898e+01 -9.022794e+01 \nstd 1.374789e+01 3.014876e+05 1.819508e+07 5.105604e+00 1.375969e+01 \nmin -1.656723e+02 2.300000e+01 1.325376e+09 1.902742e+01 -1.666716e+02 \n25% -9.679800e+01 7.410000e+02 1.343017e+09 3.474012e+01 -9.689944e+01 \n50% -8.747690e+01 2.443000e+03 1.357089e+09 3.936890e+01 -8.744069e+01 \n75% -8.015800e+01 2.032800e+04 1.374581e+09 4.195626e+01 -8.024511e+01 \nmax -6.795030e+01 2.906700e+06 1.388534e+09 6.751027e+01 -6.695090e+01 \n\n is_fraud \ncount 1.852394e+06 \nmean 5.210015e-03 \nstd 7.199217e-02 \nmin 0.000000e+00 \n25% 0.000000e+00 \n50% 0.000000e+00 \n75% 0.000000e+00 \nmax 1.000000e+00 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cc_numamtziplatlongcity_popunix_timemerch_latmerch_longis_fraud
count1.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+06
mean5.371934e+054.173860e+177.006357e+014.881326e+043.853931e+01-9.022783e+018.864367e+041.358674e+093.853898e+01-9.022794e+015.210015e-03
std3.669110e+051.309115e+181.592540e+022.688185e+045.071470e+001.374789e+013.014876e+051.819508e+075.105604e+001.375969e+017.199217e-02
min0.000000e+006.041621e+101.000000e+001.257000e+032.002710e+01-1.656723e+022.300000e+011.325376e+091.902742e+01-1.666716e+020.000000e+00
25%2.315490e+051.800429e+149.640000e+002.623700e+043.466890e+01-9.679800e+017.410000e+021.343017e+093.474012e+01-9.689944e+010.000000e+00
50%4.630980e+053.521417e+154.745000e+014.817400e+043.935430e+01-8.747690e+012.443000e+031.357089e+093.936890e+01-8.744069e+010.000000e+00
75%8.335758e+054.642255e+158.310000e+017.204200e+044.194040e+01-8.015800e+012.032800e+041.374581e+094.195626e+01-8.024511e+010.000000e+00
max1.296674e+064.992346e+182.894890e+049.992100e+046.669330e+01-6.795030e+012.906700e+061.388534e+096.751027e+01-6.695090e+011.000000e+00
\n
"},"metadata":{}}],"execution_count":9},{"id":"6223dd28-0d28-4b1e-a115-5a9136f2ee1f","cell_type":"code","source":"df.isnull().sum()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:12.490742Z","iopub.execute_input":"2026-01-17T19:33:12.490944Z","iopub.status.idle":"2026-01-17T19:33:13.542361Z","shell.execute_reply.started":"2026-01-17T19:33:12.490926Z","shell.execute_reply":"2026-01-17T19:33:13.541541Z"}},"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"Unnamed: 0 0\ntrans_date_trans_time 0\ncc_num 0\nmerchant 0\ncategory 0\namt 0\nfirst 0\nlast 0\ngender 0\nstreet 0\ncity 0\nstate 0\nzip 0\nlat 0\nlong 0\ncity_pop 0\njob 0\ndob 0\ntrans_num 0\nunix_time 0\nmerch_lat 0\nmerch_long 0\nis_fraud 0\nsplit 0\ndtype: int64"},"metadata":{}}],"execution_count":10},{"id":"47ef36a1-6366-4e8e-93fa-9da4dec88145","cell_type":"code","source":"df.duplicated().sum()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:13.543369Z","iopub.execute_input":"2026-01-17T19:33:13.543636Z","iopub.status.idle":"2026-01-17T19:33:17.900302Z","shell.execute_reply.started":"2026-01-17T19:33:13.543613Z","shell.execute_reply":"2026-01-17T19:33:17.899538Z"}},"outputs":[{"execution_count":11,"output_type":"execute_result","data":{"text/plain":"np.int64(0)"},"metadata":{}}],"execution_count":11},{"id":"ab9c641d-681b-4a53-a8ab-17f683edd9ff","cell_type":"code","source":"df.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:17.901291Z","iopub.execute_input":"2026-01-17T19:33:17.901552Z","iopub.status.idle":"2026-01-17T19:33:17.906636Z","shell.execute_reply.started":"2026-01-17T19:33:17.901529Z","shell.execute_reply":"2026-01-17T19:33:17.906119Z"}},"outputs":[{"execution_count":12,"output_type":"execute_result","data":{"text/plain":"Index(['Unnamed: 0', 'trans_date_trans_time', 'cc_num', 'merchant', 'category',\n 'amt', 'first', 'last', 'gender', 'street', 'city', 'state', 'zip',\n 'lat', 'long', 'city_pop', 'job', 'dob', 'trans_num', 'unix_time',\n 'merch_lat', 'merch_long', 'is_fraud', 'split'],\n dtype='object')"},"metadata":{}}],"execution_count":12},{"id":"502016b8-e8d9-46ea-88e3-607ebb710b29","cell_type":"code","source":"df.drop(columns=['Unnamed: 0','first', 'last','trans_num','street','state'],inplace=True)\ndf","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:17.907443Z","iopub.execute_input":"2026-01-17T19:33:17.907877Z","iopub.status.idle":"2026-01-17T19:33:18.087977Z","shell.execute_reply.started":"2026-01-17T19:33:17.907856Z","shell.execute_reply":"2026-01-17T19:33:18.087284Z"}},"outputs":[{"execution_count":13,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time cc_num \\\n0 2019-01-01 00:00:18 2703186189652095 \n1 2019-01-01 00:00:44 630423337322 \n2 2019-01-01 00:00:51 38859492057661 \n3 2019-01-01 00:01:16 3534093764340240 \n4 2019-01-01 00:03:06 375534208663984 \n... ... ... \n1852389 2020-12-31 23:59:07 30560609640617 \n1852390 2020-12-31 23:59:09 3556613125071656 \n1852391 2020-12-31 23:59:15 6011724471098086 \n1852392 2020-12-31 23:59:24 4079773899158 \n1852393 2020-12-31 23:59:34 4170689372027579 \n\n merchant category amt gender \\\n0 fraud_Rippin, Kub and Mann misc_net 4.97 F \n1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 F \n2 fraud_Lind-Buckridge entertainment 220.11 M \n3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 M \n4 fraud_Keeling-Crist misc_pos 41.96 M \n... ... ... ... ... \n1852389 fraud_Reilly and Sons health_fitness 43.77 M \n1852390 fraud_Hoppe-Parisian kids_pets 111.84 M \n1852391 fraud_Rau-Robel kids_pets 86.88 F \n1852392 fraud_Breitenberg LLC travel 7.99 M \n1852393 fraud_Dare-Marvin entertainment 38.13 M \n\n city zip lat long city_pop \\\n0 Moravian Falls 28654 36.0788 -81.1781 3495 \n1 Orient 99160 48.8878 -118.2105 149 \n2 Malad City 83252 42.1808 -112.2620 4154 \n3 Boulder 59632 46.2306 -112.1138 1939 \n4 Doe Hill 24433 38.4207 -79.4629 99 \n... ... ... ... ... ... \n1852389 Luray 63453 40.4931 -91.8912 519 \n1852390 Lake Jackson 77566 29.0393 -95.4401 28739 \n1852391 Burbank 99323 46.1966 -118.9017 3684 \n1852392 Mesa 83643 44.6255 -116.4493 129 \n1852393 Edmond 73034 35.6665 -97.4798 116001 \n\n job dob unix_time merch_lat \\\n0 Psychologist, counselling 1988-03-09 1325376018 36.011293 \n1 Special educational needs teacher 1978-06-21 1325376044 49.159047 \n2 Nature conservation officer 1962-01-19 1325376051 43.150704 \n3 Patent attorney 1967-01-12 1325376076 47.034331 \n4 Dance movement psychotherapist 1986-03-28 1325376186 38.674999 \n... ... ... ... ... \n1852389 Town planner 1966-02-13 1388534347 39.946837 \n1852390 Futures trader 1999-12-27 1388534349 29.661049 \n1852391 Musician 1981-11-29 1388534355 46.658340 \n1852392 Cartographer 1965-12-15 1388534364 44.470525 \n1852393 Media buyer 1993-05-10 1388534374 36.210097 \n\n merch_long is_fraud split \n0 -82.048315 0 train \n1 -118.186462 0 train \n2 -112.154481 0 train \n3 -112.561071 0 train \n4 -78.632459 0 train \n... ... ... ... \n1852389 -91.333331 0 test \n1852390 -96.186633 0 test \n1852391 -119.715054 0 test \n1852392 -117.080888 0 test \n1852393 -97.036372 0 test \n\n[1852394 rows x 18 columns]","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplit
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train
.........................................................
18523892020-12-31 23:59:0730560609640617fraud_Reilly and Sonshealth_fitness43.77MLuray6345340.4931-91.8912519Town planner1966-02-13138853434739.946837-91.3333310test
18523902020-12-31 23:59:093556613125071656fraud_Hoppe-Parisiankids_pets111.84MLake Jackson7756629.0393-95.440128739Futures trader1999-12-27138853434929.661049-96.1866330test
18523912020-12-31 23:59:156011724471098086fraud_Rau-Robelkids_pets86.88FBurbank9932346.1966-118.90173684Musician1981-11-29138853435546.658340-119.7150540test
18523922020-12-31 23:59:244079773899158fraud_Breitenberg LLCtravel7.99MMesa8364344.6255-116.4493129Cartographer1965-12-15138853436444.470525-117.0808880test
18523932020-12-31 23:59:344170689372027579fraud_Dare-Marvinentertainment38.13MEdmond7303435.6665-97.4798116001Media buyer1993-05-10138853437436.210097-97.0363720test
\n

1852394 rows Γ— 18 columns

\n
"},"metadata":{}}],"execution_count":13},{"id":"1b8601fc-5f21-4b09-bc4e-0dddb11fef7e","cell_type":"code","source":"df['trans_date_trans_time']=pd.to_datetime(df['trans_date_trans_time'],format='mixed')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:18.088763Z","iopub.execute_input":"2026-01-17T19:33:18.089004Z","iopub.status.idle":"2026-01-17T19:33:18.755773Z","shell.execute_reply.started":"2026-01-17T19:33:18.088983Z","shell.execute_reply":"2026-01-17T19:33:18.755002Z"}},"outputs":[],"execution_count":14},{"id":"209b5fdf-66a1-4f2c-8255-c420ea34c5b2","cell_type":"code","source":"# 1. Extract day of week (0=Monday, 6=Sunday)\ndf['day_of_week'] = df['trans_date_trans_time'].dt.dayofweek\n\n# 2. Apply cyclical transformation (Period = 7)\ndf['day_sin'] = np.sin(2 * np.pi * df['day_of_week'] / 7)\ndf['day_cos'] = np.cos(2 * np.pi * df['day_of_week'] / 7)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:18.756856Z","iopub.execute_input":"2026-01-17T19:33:18.757159Z","iopub.status.idle":"2026-01-17T19:33:18.876060Z","shell.execute_reply.started":"2026-01-17T19:33:18.757137Z","shell.execute_reply":"2026-01-17T19:33:18.875474Z"}},"outputs":[],"execution_count":15},{"id":"354e5a10-3055-4ec3-b168-8bb02ee645c3","cell_type":"code","source":"df['hour']=df['trans_date_trans_time'].dt.hour","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:18.876928Z","iopub.execute_input":"2026-01-17T19:33:18.877187Z","iopub.status.idle":"2026-01-17T19:33:18.921727Z","shell.execute_reply.started":"2026-01-17T19:33:18.877166Z","shell.execute_reply":"2026-01-17T19:33:18.921174Z"}},"outputs":[],"execution_count":16},{"id":"bfeccd31-fcfe-45be-b686-785b89785ea0","cell_type":"code","source":"fraud=df[df['is_fraud']==1]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:18.922472Z","iopub.execute_input":"2026-01-17T19:33:18.922665Z","iopub.status.idle":"2026-01-17T19:33:18.935100Z","shell.execute_reply.started":"2026-01-17T19:33:18.922647Z","shell.execute_reply":"2026-01-17T19:33:18.934496Z"}},"outputs":[],"execution_count":17},{"id":"06742ab0-53f2-43ec-959c-3d5a2b3245eb","cell_type":"code","source":"df['dob']=pd.to_datetime(df['dob'],format='mixed')\ndf['age']=(df['trans_date_trans_time'].dt.year-df['dob'].dt.year).astype(int)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:18.935935Z","iopub.execute_input":"2026-01-17T19:33:18.936119Z","iopub.status.idle":"2026-01-17T19:33:19.674689Z","shell.execute_reply.started":"2026-01-17T19:33:18.936102Z","shell.execute_reply":"2026-01-17T19:33:19.673919Z"}},"outputs":[],"execution_count":18},{"id":"c19d97fc-8e35-4d66-aaea-a4f955809f1c","cell_type":"code","source":"df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:19.675640Z","iopub.execute_input":"2026-01-17T19:33:19.675891Z","iopub.status.idle":"2026-01-17T19:33:19.691463Z","shell.execute_reply.started":"2026-01-17T19:33:19.675871Z","shell.execute_reply":"2026-01-17T19:33:19.690755Z"}},"outputs":[{"execution_count":19,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time cc_num merchant \\\n0 2019-01-01 00:00:18 2703186189652095 fraud_Rippin, Kub and Mann \n1 2019-01-01 00:00:44 630423337322 fraud_Heller, Gutmann and Zieme \n2 2019-01-01 00:00:51 38859492057661 fraud_Lind-Buckridge \n3 2019-01-01 00:01:16 3534093764340240 fraud_Kutch, Hermiston and Farrell \n4 2019-01-01 00:03:06 375534208663984 fraud_Keeling-Crist \n\n category amt gender city zip lat long \\\n0 misc_net 4.97 F Moravian Falls 28654 36.0788 -81.1781 \n1 grocery_pos 107.23 F Orient 99160 48.8878 -118.2105 \n2 entertainment 220.11 M Malad City 83252 42.1808 -112.2620 \n3 gas_transport 45.00 M Boulder 59632 46.2306 -112.1138 \n4 misc_pos 41.96 M Doe Hill 24433 38.4207 -79.4629 \n\n city_pop job dob unix_time \\\n0 3495 Psychologist, counselling 1988-03-09 1325376018 \n1 149 Special educational needs teacher 1978-06-21 1325376044 \n2 4154 Nature conservation officer 1962-01-19 1325376051 \n3 1939 Patent attorney 1967-01-12 1325376076 \n4 99 Dance movement psychotherapist 1986-03-28 1325376186 \n\n merch_lat merch_long is_fraud split day_of_week day_sin day_cos \\\n0 36.011293 -82.048315 0 train 1 0.781831 0.62349 \n1 49.159047 -118.186462 0 train 1 0.781831 0.62349 \n2 43.150704 -112.154481 0 train 1 0.781831 0.62349 \n3 47.034331 -112.561071 0 train 1 0.781831 0.62349 \n4 38.674999 -78.632459 0 train 1 0.781831 0.62349 \n\n hour age \n0 0 31 \n1 0 41 \n2 0 57 \n3 0 52 \n4 0 33 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplitday_of_weekday_sinday_coshourage
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train10.7818310.62349031
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train10.7818310.62349041
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train10.7818310.62349057
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train10.7818310.62349052
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train10.7818310.62349033
\n
"},"metadata":{}}],"execution_count":19},{"id":"f6d0582f-0031-455f-844d-2177525af667","cell_type":"code","source":"def haversine_distance(lat1, lon1, lat2, lon2):\n lat1, lon1, lat2, lon2 = map(np.radians, [lat1, lon1, lat2, lon2])\n dlat = lat2 - lat1\n dlon = lon2 - lon1\n a = np.sin(dlat / 2.0) ** 2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon / 2.0) ** 2\n c = 2 * np.arcsin(np.sqrt(a))\n km = 6371 * c # Radius of Earth in kilometers\n return round(km,2)\n\n# Apply the Haversine formula\ndf['distance_km'] = df.apply(lambda row: haversine_distance(row['merch_lat'],row['merch_long'], row['lat'], row['long']), axis=1)\n\ndf.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:33:19.695741Z","iopub.execute_input":"2026-01-17T19:33:19.695989Z","iopub.status.idle":"2026-01-17T19:34:11.182631Z","shell.execute_reply.started":"2026-01-17T19:33:19.695961Z","shell.execute_reply":"2026-01-17T19:34:11.182015Z"}},"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time cc_num merchant \\\n0 2019-01-01 00:00:18 2703186189652095 fraud_Rippin, Kub and Mann \n1 2019-01-01 00:00:44 630423337322 fraud_Heller, Gutmann and Zieme \n2 2019-01-01 00:00:51 38859492057661 fraud_Lind-Buckridge \n3 2019-01-01 00:01:16 3534093764340240 fraud_Kutch, Hermiston and Farrell \n4 2019-01-01 00:03:06 375534208663984 fraud_Keeling-Crist \n\n category amt gender city zip lat long \\\n0 misc_net 4.97 F Moravian Falls 28654 36.0788 -81.1781 \n1 grocery_pos 107.23 F Orient 99160 48.8878 -118.2105 \n2 entertainment 220.11 M Malad City 83252 42.1808 -112.2620 \n3 gas_transport 45.00 M Boulder 59632 46.2306 -112.1138 \n4 misc_pos 41.96 M Doe Hill 24433 38.4207 -79.4629 \n\n city_pop job dob unix_time \\\n0 3495 Psychologist, counselling 1988-03-09 1325376018 \n1 149 Special educational needs teacher 1978-06-21 1325376044 \n2 4154 Nature conservation officer 1962-01-19 1325376051 \n3 1939 Patent attorney 1967-01-12 1325376076 \n4 99 Dance movement psychotherapist 1986-03-28 1325376186 \n\n merch_lat merch_long is_fraud split day_of_week day_sin day_cos \\\n0 36.011293 -82.048315 0 train 1 0.781831 0.62349 \n1 49.159047 -118.186462 0 train 1 0.781831 0.62349 \n2 43.150704 -112.154481 0 train 1 0.781831 0.62349 \n3 47.034331 -112.561071 0 train 1 0.781831 0.62349 \n4 38.674999 -78.632459 0 train 1 0.781831 0.62349 \n\n hour age distance_km \n0 0 31 78.60 \n1 0 41 30.21 \n2 0 57 108.21 \n3 0 52 95.67 \n4 0 33 77.56 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplitday_of_weekday_sinday_coshouragedistance_km
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train10.7818310.6234903178.60
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train10.7818310.6234904130.21
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train10.7818310.62349057108.21
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train10.7818310.6234905295.67
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train10.7818310.6234903377.56
\n
"},"metadata":{}}],"execution_count":20},{"id":"35de3a07-5469-49dc-ad58-c312b8ab16e8","cell_type":"code","source":"df.drop(columns=['dob','lat','long','merch_long','merch_lat'],inplace=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:11.183724Z","iopub.execute_input":"2026-01-17T19:34:11.183999Z","iopub.status.idle":"2026-01-17T19:34:11.368956Z","shell.execute_reply.started":"2026-01-17T19:34:11.183975Z","shell.execute_reply":"2026-01-17T19:34:11.368344Z"}},"outputs":[],"execution_count":21},{"id":"bc90597c-b288-4f78-add1-b969e6ad1a6b","cell_type":"code","source":"#SUMMARY STATS\ndf.describe().T","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:11.370085Z","iopub.execute_input":"2026-01-17T19:34:11.370385Z","iopub.status.idle":"2026-01-17T19:34:12.046020Z","shell.execute_reply.started":"2026-01-17T19:34:11.370354Z","shell.execute_reply":"2026-01-17T19:34:12.045414Z"}},"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":" count mean \\\ntrans_date_trans_time 1852394 2020-01-20 21:31:46.801827328 \ncc_num 1852394.0 417386038393710400.0 \namt 1852394.0 70.063567 \nzip 1852394.0 48813.258191 \ncity_pop 1852394.0 88643.674509 \nunix_time 1852394.0 1358674218.834364 \nis_fraud 1852394.0 0.00521 \nday_of_week 1852394.0 2.967456 \nday_sin 1852394.0 -0.074649 \nday_cos 1852394.0 0.147219 \nhour 1852394.0 12.806119 \nage 1852394.0 46.21138 \ndistance_km 1852394.0 76.111726 \n\n min 25% \\\ntrans_date_trans_time 2019-01-01 00:00:18 2019-07-23 04:13:43.750000128 \ncc_num 60416207185.0 180042946491150.0 \namt 1.0 9.64 \nzip 1257.0 26237.0 \ncity_pop 23.0 741.0 \nunix_time 1325376018.0 1343016823.75 \nis_fraud 0.0 0.0 \nday_of_week 0.0 1.0 \nday_sin -0.974928 -0.781831 \nday_cos -0.900969 -0.222521 \nhour 0.0 7.0 \nage 14.0 33.0 \ndistance_km 0.02 55.32 \n\n 50% 75% \\\ntrans_date_trans_time 2020-01-02 01:15:31 2020-07-23 12:11:25.249999872 \ncc_num 3521417320836166.0 4642255475285942.0 \namt 47.45 83.1 \nzip 48174.0 72042.0 \ncity_pop 2443.0 20328.0 \nunix_time 1357089331.0 1374581485.25 \nis_fraud 0.0 0.0 \nday_of_week 3.0 5.0 \nday_sin 0.0 0.433884 \nday_cos 0.62349 0.62349 \nhour 14.0 19.0 \nage 44.0 57.0 \ndistance_km 78.22 98.51 \n\n max std \ntrans_date_trans_time 2020-12-31 23:59:34 NaN \ncc_num 4992346398065154048.0 1309115265318020352.0 \namt 28948.9 159.253975 \nzip 99921.0 26881.845966 \ncity_pop 2906700.0 301487.618344 \nunix_time 1388534374.0 18195081.38756 \nis_fraud 1.0 0.071992 \nday_of_week 6.0 2.197983 \nday_sin 0.974928 0.685087 \nday_cos 1.0 0.709514 \nhour 23.0 6.815753 \nage 96.0 17.395446 \ndistance_km 152.12 29.116967 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
countmeanmin25%50%75%maxstd
trans_date_trans_time18523942020-01-20 21:31:46.8018273282019-01-01 00:00:182019-07-23 04:13:43.7500001282020-01-02 01:15:312020-07-23 12:11:25.2499998722020-12-31 23:59:34NaN
cc_num1852394.0417386038393710400.060416207185.0180042946491150.03521417320836166.04642255475285942.04992346398065154048.01309115265318020352.0
amt1852394.070.0635671.09.6447.4583.128948.9159.253975
zip1852394.048813.2581911257.026237.048174.072042.099921.026881.845966
city_pop1852394.088643.67450923.0741.02443.020328.02906700.0301487.618344
unix_time1852394.01358674218.8343641325376018.01343016823.751357089331.01374581485.251388534374.018195081.38756
is_fraud1852394.00.005210.00.00.00.01.00.071992
day_of_week1852394.02.9674560.01.03.05.06.02.197983
day_sin1852394.0-0.074649-0.974928-0.7818310.00.4338840.9749280.685087
day_cos1852394.00.147219-0.900969-0.2225210.623490.623491.00.709514
hour1852394.012.8061190.07.014.019.023.06.815753
age1852394.046.2113814.033.044.057.096.017.395446
distance_km1852394.076.1117260.0255.3278.2298.51152.1229.116967
\n
"},"metadata":{}}],"execution_count":22},{"id":"d6af3209-8b7f-4424-9f8e-53462d19d6c7","cell_type":"code","source":"#SUMMARY STATS\ndf.describe(include='object').T","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:12.046848Z","iopub.execute_input":"2026-01-17T19:34:12.047132Z","iopub.status.idle":"2026-01-17T19:34:13.579776Z","shell.execute_reply.started":"2026-01-17T19:34:12.047097Z","shell.execute_reply":"2026-01-17T19:34:13.579081Z"}},"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":" count unique top freq\nmerchant 1852394 693 fraud_Kilback LLC 6262\ncategory 1852394 14 gas_transport 188029\ngender 1852394 2 F 1014749\ncity 1852394 906 Birmingham 8040\njob 1852394 497 Film/video editor 13898\nsplit 1852394 2 train 1296675","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
countuniquetopfreq
merchant1852394693fraud_Kilback LLC6262
category185239414gas_transport188029
gender18523942F1014749
city1852394906Birmingham8040
job1852394497Film/video editor13898
split18523942train1296675
\n
"},"metadata":{}}],"execution_count":23},{"id":"0569f0e1-8333-49e3-b1bb-855a7fb181a5","cell_type":"code","source":"sns.heatmap(df.select_dtypes(include='number').corr(),annot=None,cmap='coolwarm',fmt='.2f',linewidth=0.5,cbar_kws={'shrink':0.8})\nplt.title('correlation matrix')\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:13.580588Z","iopub.execute_input":"2026-01-17T19:34:13.580897Z","iopub.status.idle":"2026-01-17T19:34:14.854287Z","shell.execute_reply.started":"2026-01-17T19:34:13.580876Z","shell.execute_reply":"2026-01-17T19:34:14.853571Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAABXAAAAKvCAYAAADDQOfaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAouhJREFUeJzs3Xt8z/X///H7e7PR8J7mWM4m781xc54xPkYMlbTVSiKSw8hH+dRQPhZlkcIoKuXQSTmUHBOVmlMiIvYpEyGHLNuEbbb374++3j/vZmy83gd7366Xy/ty2fv5ej6fr8f7ab0vLo8eHi+T1Wq1CgAAAAAAAADgdrxcHQAAAAAAAAAA4MpI4AIAAAAAAACAmyKBCwAAAAAAAABuigQuAAAAAAAAALgpErgAAAAAAAAA4KZI4AIAAAAAAACAmyKBCwAAAAAAAABuigQuAAAAAAAAALgpErgAAAAAAAAA4KZI4AIAACCfPn36qE+fPobumZSUJIvFYuiexcHWrVtlsVi0detWV4cCAAAAN0QCFwAAAIY5f/68kpKSPDYZ+dlnn2nevHmuDgMAAADFCAlcAAAAGOb8+fOaOXOmtm3blu/akCFDtHv3bhdE5TwrVqzQggULirSmRYsW2r17t1q0aOGgqAAAAHAzI4ELAABQTGRlZSkvL++K186dO+fkaPIrUaKESpYs6eow3MalPy8vLy+VLFlSXl781RwAAAD58bdEAAAAJzpx4oTGjBmjtm3bqmHDhurYsaP++9//Kjs72zbnt99+0xNPPKGWLVuqSZMmuv/++/XVV1/Z7XOpb+rKlSv16quvql27dmrSpInOnj2r+Ph4hYaG6vDhwxo4cKBCQ0M1atQoSVJeXp7mzZun7t27q1GjRmrTpo3GjRun9PT0q8adnZ2t6dOnq1evXmrWrJlCQkL00EMPacuWLbY5R44cUVhYmCRp5syZslgsslgsSkpKknTlHrgXL17UrFmz1KlTJ9t5vPLKK3bnIUkdO3bUoEGDtH37dkVHR6tRo0aKjIzUJ598cs0zP3LkiCwWi+bOnav33ntPkZGRatKkifr376/ff/9dVqtVs2bNUkREhBo3bqwhQ4bozJkzdnt88cUXevzxx21/bp06ddKsWbOUm5trm9OnTx999dVXOnr0qO2zd+zY8Zp/Xv/sgXvgwAE1btxYTz/9tF0M27dvV3BwsKZMmXLNzwwAAIDio4SrAwAAAPAUJ06cUHR0tDIzM3X//ferTp06OnHihNauXasLFy7I19dXf/zxh2JjY3X+/Hn16dNHt956q5YtW6YhQ4ZoxowZ6ty5s92er732mnx8fDRgwABlZ2fLx8dH0t+J0QEDBqhZs2Z65plnVKpUKUnSuHHjtGzZMvXq1Ut9+vTRkSNH9N577+mnn37SBx98YFv/T2fPntXHH3+sHj16KCYmRn/99ZcWL16sxx57TB9//LGCg4MVEBCg8ePHa/z48ercubMt1qs9uOzZZ5/VsmXL1KVLFz366KPavXu35syZowMHDmjWrFl2cw8dOqQRI0YoOjpa9957r5YsWaL4+Hg1aNBAd9xxxzXP/7PPPlNOTo769OmjM2fO6K233tK///1vtW7dWlu3btXAgQN16NAhvfvuu3rppZc0adIk29ply5bJz89Pjz76qPz8/LRlyxbNmDFDZ8+e1TPPPCNJGjx4sDIzM3X8+HGNHj1aklS6dOlC/XldLjAwUCNGjNDkyZPVpUsXRUZG6ty5cxo9erTq1KmjESNGXPOzAgAAoPgggQsAAOAkr7zyiv744w999NFHatSokW18xIgRslqtkqQ33nhDf/zxh9577z01b95ckhQTE6O7775bkyZNUmRkpN0/tc/KytKSJUtsCdpLsrOz1bVrVz311FO2se3bt+vjjz/Wyy+/rLvuuss23qpVKz322GNas2aN3fjl/P39tWHDBvn6+trG7r//fkVFRWnhwoV68cUX5efnpy5dumj8+PGyWCy65557rnoe+/fv17JlyxQTE6OJEydKknr37q2AgAC9/fbb2rJli1q3bm2bf/DgQbtziYqKUvv27bV06VJbEvVqTpw4oc8//1xly5aV9Hc18pw5c3ThwgUtWbJEJUr8/VfjP//8U5999pkSEhJsn3fq1Kl2Z/zggw9q3Lhx+uCDDzRy5Ej5+voqPDxcCxYsUEZGRoGfvaA/r3969NFHtX79eo0bN05NmzZVUlKSjh07pg8//NDuzwAAAADFHy0UAAAAnCAvL09ffPGF/vWvf9klby8xmUySpK+//lqNGze2JSmlv6s4H3jgAR09elS//PKL3bqePXsWmAx88MEH7d6vWbNGZcuWVXh4uNLS0myvBg0ayM/Pz/ZP+K/E29vbljjMy8vTmTNndPHiRTVs2FA//fRT4Q7hH77++mtJfycrL9e/f3+765fUrVvX7lwCAgJUu3Zt/fbbb4W6X9euXW3JW0lq3LixJOnuu++2JW8vjefk5OjEiRO2scvP+OzZs0pLS1Pz5s11/vx5paamFur+0tX/vC7n5eWlxMREnTt3TgMHDtT777+vxx9//Iq/OwAAACjeqMAFAABwgrS0NJ09e/aa/9T/2LFjatKkSb7xOnXq2K7Xq1fPNl6tWrUr7lOiRAlVqVLFbuzQoUPKzMy09an9p9OnT181tmXLluntt9/WwYMHlZOTc80YruXo0aPy8vJSjRo17MYrVqwos9mso0eP2o3fdttt+fbw9/e/Zv/egtZfSuYWNJ6enq7q1atLkn7++WdNmzZNW7Zs0dmzZ+3mZ2ZmFur+UtHOqkaNGho2bJgmT56sevXqaejQoYVeCwAAgOKDBC4AAMBNrKBqTl9fX7tWC9LflbPly5fXyy+/fMU1AQEBBd7n008/VXx8vDp16qQBAwaofPny8vb21pw5cwpdAVuQS9XH1+Lt7X1D9ylo/T/P6ZJLbS0yMjL08MMPq0yZMnriiSdUo0YNlSxZUnv37tXLL7+svLy8QsdQmOrbyyUnJ0uSTp48qTNnzqhixYpFWg8AAICbHwlcAAAAJwgICFCZMmX0888/X3Xe7bffroMHD+Ybv/TP9G+//fbrjqFGjRravHmzmjZtWuRE4tq1a1W9enXNnDnTLuE6Y8YMu3mFTcZKUtWqVZWXl6dDhw4pMDDQNv7HH38oIyNDVatWLVKMjrJt2zadOXNGM2fOVIsWLWzjR44cyTe3KJ//Wj744AMlJydr5MiRmjNnjsaNG6fXX3/dsP0BAABwc6AHLgAAgBN4eXmpU6dO+vLLL/Xjjz/mu36p2rN9+/bavXu3du7cabt27tw5ffTRR6patarq1q173TFERUUpNzdXr732Wr5rFy9eVEZGRoFrL1WvXopTknbt2qUffvjBbt4tt9wiSVfd65L27dtLkubPn283/s4779hdd7VLFbqXf/bs7Gy9//77+ebecsstRWqpUJDffvtNkydPVpcuXTR48GA988wz2rBhgz755JMb3hsAAAA3FypwAQAAnOTJJ59UcnKy+vTpo/vvv1+BgYE6deqU1qxZo/fff19ms1mPP/64Vq5cqYEDB6pPnz7y9/fXJ598oiNHjigpKanAf+5fGC1bttQDDzygOXPmaN++fQoPD5ePj49+/fVXrVmzRmPHjlXXrl2vuLZDhw76/PPPFRcXpw4dOujIkSP68MMPVbduXZ07d842r1SpUqpbt65Wr16tWrVqqVy5crrjjjvs+vZeEhQUpHvvvVeLFi1SRkaGWrRooR9//FHLli1Tp06d1Lp16+v+rEYKDQ2Vv7+/4uPj1adPH5lMJn366ad2Cd1LGjRooFWrVmnSpElq1KiR/Pz81LFjxyLdz2q1asyYMSpVqpTGjx8vSYqNjdXnn3+uF154QWFhYapcubIRHw0AAAA3ARK4AAAATlK5cmV99NFHmj59uj777DOdPXtWlStXVkREhK2lQYUKFfThhx9qypQpevfdd5WVlSWLxaLZs2erQ4cONxzD888/r4YNG+rDDz/Uq6++Km9vb1WtWlV33323mjZtWuC6Xr166Y8//tCiRYv07bffqm7dupoyZYrWrFmjbdu22c2dOHGiJkyYoEmTJiknJ0fDhg27YgL30txq1app2bJl+uKLL1ShQgUNGjRIw4YNu+HPapRbb71Vs2fP1ksvvaRp06bJbDbr7rvvVlhYmAYMGGA396GHHtK+ffu0dOlSzZs3T1WrVi1yAnfhwoXatm2bkpKS7PoSv/DCC+rRo4eee+45vfHGG4Z8NgAAALg/k/VKpQMAAAAAAAAAAJejBy4AAAAAAAAAuCkSuAAAAAAAAADgpkjgAgAAAAAAAICbIoELAAAAAAAAAG6KBC4AAAAAAAAAuCkSuAAAAAAAAADgpkjgAgAAAAAAAICbIoELAAAAAAAAAG6qhKsDgPOs9LG4OgSP0j0nRZv3Zbg6DI8SFmzWjv+ddnUYHqVpvfLatC/T1WF4lDbBZflucbKwYDNn7mScufNx5s7HmTsfZ+58nLnzcebOFxZsdnUI8ABU4AIAAAAAAACAmyKBCwAAAAAAAABuigQuAAAAAAAAALgpErgAAAAAAAAA4KZI4AIAAAAAAACAmyKBCwAAAAAAAABuigQuAAAAAAAAALgpErgAAAAAAAAA4KZI4AIAAAAAAACAmyKBCwAAAAAAAABuigQuAAAAAAAAALgpErgAAAAAAAAA4KZI4AIAAAAAAACAmyKBCwAAAAAAAABuigQuAAAAAAAAALgpErgAAAAAAAAA4KZI4AIAAAAAAACAmyKBCwAAAAAAAABuqlgmcHfu3Kn+/furadOmCg0NVUxMjJKTkyVJ2dnZevXVVxUZGamGDRsqIiJC8fHxhd7bYrHozTffVFJSktq0aaNWrVpp9OjROnfunG1OUlKSQkND861t3ry5kpKSbO/79OmjQYMGacWKFbrzzjvVpEkTDR48WOnp6Tp69KgGDBig0NBQde/eXVu3br2BEwEAAAAAAABwMyrh6gCM9v3336tv374KCQnRxIkTZTabtWfPHh07dkySNHz4cG3ZskWDBg1SSEiI0tLS9PnnnxfpHu+9956aNWumxMRE/frrr5o8ebLKly+vUaNGFTnen376SX/++aeefvppnT17VhMnTtRzzz2no0ePqmfPnnr00Uc1Z84cDR8+XF9++aVKly5d5HsAAAAAAAAAuDkVuwTulClTVLNmTc2fP1/e3t6SpLZt20qSkpOT9dVXX2nq1Knq0aOHbc3lPxdGxYoVNXXqVElSRESEfvrpJ61du/a6Erhnz57V7NmzFRAQIElKSUnR22+/rfHjx+vBBx+UJFWqVEl33XWXNm/erE6dOhX5HgAAAAAAAABuTsWqhcL58+e1a9cu9ezZ05a8vdzmzZt1yy23qHv37jd0nzZt2ti9DwwM1PHjx69rr6CgIFvyVpJq1aqV7x6Xxq73HgAAAAAAAABuTsUqgZuRkaG8vDxVqlTpitfPnDmjihUrymQy3dB9zGaz3XsfHx9lZ2cbtpcklS1b1jbm6+srScrKyrquewAAAAAAAAC4ORWrBG7ZsmXl5eWlkydPXvF6uXLldOrUKVmtVofGUbJkSeXk5NiN5eTk2D3oDAAAAAAAAACupVglcP38/BQSEqJPP/1Uubm5+a63adNG58+f1+rVqx0aR+XKlZWTk6PDhw/bxrZs2XLFmAAAAAAAAACgIMXuIWZPPfWU+vXrp379+umhhx6Sv7+/9u7dq1tvvVXR0dFq3769xowZo8OHD6tJkyY6c+aM1q5dq2nTphkWQ0REhPz8/PTss89q4MCBOn78uBYsWKCSJUsadg8AAAAAAAAAxV+xqsCVpObNm2vBggUymUwaPXq0hg0bpi+++EJVq1aVJCUlJalPnz5atGiRBg4cqMTERPn5+Rkaw6233qoZM2YoLS1NcXFxWrx4sSZPnmzrZQsAAAAAAAAAhWGyOrohLNzGSh+Lq0PwKN1zUrR5X4arw/AoYcFm7fjfaVeH4VGa1iuvTfsyXR2GR2kTXJbvFicLCzZz5k7GmTsfZ+58nLnzcebOx5k7H2fufGHB5mtPAm5QsavABQAAAAAAAIDiotj1wL0RFy9eLPCayWSSt7e3E6MBAAAAAAAA4OlI4P6fI0eOKDIyssDrLVu21MKFC50YEQAAAAAAAABPRwL3/1SqVEmLFy8u8Hrp0qWdGA0AAAAAAAAAkMC18fX1VaNGjVwdBgAAAAAAAADY8BAzAAAAAAAAAHBTJHABAAAAAAAAwE2RwAUAAAAAAAAAN0UCFwAAAAAAAADcFAlcAAAAAAAAAHBTJHABAAAAAAAAwE2RwAUAAAAAAAAAN0UCFwAAAAAAAADcFAlcAAAAAAAAAHBTJHABAAAAAAAAwE2RwAUAAAAAAAAAN0UCFwAAAAAAAADcFAlcAAAAAAAAAHBTJHABAAAAAAAAwE2RwAUAAAAAAAAAN0UCFwAAAAAAAADclMlqtVpdHQQAAAAAAAAAIL8Srg4AzrN5X4arQ/AoYcFmrfSxuDoMj9I9J4XfcycLCzZry/50V4fhUVoH+fN77mRhwWYd37/T1WF4lCpBofyeO1lYsJkzdzLO3PnCgs3auPcvV4fhUSIalFbyT2ddHYZHCa9fhu8WJwsLNrs6BHgAWigAAAAAAAAAgJsigQsAAAAAAAAAbooELgAAAAAAAAC4KRK4AAAAAAAAADzCoUOHNG7cON1zzz2qX7++evToUah1VqtVb7zxhjp06KDGjRvrgQce0A8//ODYYP8PCVwAAAAAAAAAHuHnn3/W119/rZo1ayowMLDQ6958803NmDFD/fr105w5c1SxYkX1799fv/32mwOj/RsJXAAAAAAAAAAeoWPHjvr66681Y8YMNWjQoFBrsrKyNGfOHPXv31/9+vVTWFiYXnnlFZUrV05z5851cMQkcAEAAAAAAAB4CC+voqdDd+zYobNnzyoqKso25uvrq86dO2vjxo1GhndFJRx+BwAAAAAAAAAwSGRk5FWvr1+/3tD7paamSpLq1KljNx4YGKj58+frwoULKlWqlKH3vBwJXAAAAAAAAACGWOljcfxNIqo5/h6XycjIkK+vr0qWLGk3bjabZbValZ6eTgIXAAAAAAAAACTjK2zdHQlcAAAAAAAAAIYw+ZhcHYLhzGazsrOzlZWVZVeFm5GRIZPJJH9/f4fen4eYAQAAAAAAAEABLvW+PXjwoN14amqqbr/9doe2T5CowAUAAAAAAABgEK8Sxa8Ct2nTpipTpoxWr16toKAgSVJOTo4+//xzRUREOPz+JHABAAAAAAAAeITz58/r66+/liQdPXpUZ8+e1Zo1ayRJLVu2VEBAgPr27atjx45p3bp1kqSSJUtq0KBBSkpKUkBAgOrVq6cPPvhAZ86c0YABAxweMwlcAAAAAAAAAIYw+bh3x9bTp09rxIgRdmOX3i9YsECtWrVSXl6ecnNz7eYMHDhQVqtVb7/9ttLS0hQcHKy5c+eqevXqDo+ZBC4AAAAAAAAAj1CtWjWlpKRcdc7ChQvzjZlMJg0aNEiDBg1yVGgFIoELAAAAAAAAwBDFsQeuq7l3TbOH27dvn5KSknT+/HlXhwIAAAAAAADABUjgurF9+/Zp5syZJHABAAAAAABwUzD5mBz+8jQkcAEAAAAAAADATZHAvUE7d+7U4MGD1bZtW4WEhOiee+7RJ598Yru+detWWSwWffPNNxoxYoRCQ0PVoUMHffbZZ5L+frpdhw4d1LJlS40dO1bZ2dmSpKVLl2r06NGSpLCwMFksFnXs2NHpnw8AAAAAAAAoLK8SJoe/PA0PMbtBx44dU9OmTfXggw/K19dXO3bs0LPPPiur1ap7773XNm/8+PG69957df/99+ujjz7S008/rf379+vnn39WQkKCfvvtNyUmJqp69eoaPHiwOnTooCFDhuj111/XW2+9pbJly8rX19eFnxQAAAAAAACAs5HAvUHdu3e3/Wy1WtWiRQudOHFCixYtskvgdu3aVcOGDZMkNW7cWOvWrdPKlSu1bt06+fj4SJK2bdumNWvWaPDgwQoICFCNGjUkSQ0aNFBAQIATPxUAAAAAAABQdJ7Yo9bRSODeoPT0dCUlJWn9+vU6ceKEcnNzJUnlypWzmxceHm77uWzZsgoICFDz5s1tyVtJqlWrlrZu3eqUuAEAAAAAAAC4PxK4Nyg+Pl47d+5UXFyc6tatqzJlyuiDDz7Q6tWr7eaVLVvW7r2vr6/MZrPdmI+Pj60HLgAAAAAAAHCz8cQetY7GQ8xuQFZWlr766isNGTJEffr0UVhYmBo1aiSr1erq0AAAAAAAAAAUA1Tg3oDs7Gzl5eXZtUE4e/asNmzYYMj+l/alKhcAAAAAAAA3A5M3FbhGI4F7A8qWLatGjRrpzTffVEBAgEqUKKE33nhDZcqUUVpa2g3vHxgYKEl677331KlTJ5UqVUoWi+WG9wUAAAAAAAAcwYsEruFooXCDpk6dqho1aig+Pl4TJ05Uly5d1LNnT0P2rl+/voYPH67ly5crNjZWQ4YMMWRfAAAAAAAAADcHKnBvUM2aNTV//vx848OHD5cktWrVSikpKfmuX6nNwvDhw23rLhk2bJiGDRtmULQAAAAAAACA45i8qMA1GhW4AAAAAAAAAOCmqMAFAAAAAAAAYAiTN/WiRuNEAQAAAAAAAMBNUYELAAAAAAAAwBBe3vTANRoVuAAAAAAAAADgpqjABQAAAAAAAGAIkxcVuEajAhcAAAAAAAAA3BQVuAAAAAAAAAAMQQ9c41GBCwAAAAAAAABuigpcAAAAAAAAAIYwUYFrOCpwAQAAAAAAAMBNUYELAAAAAAAAwBAmL+pFjcaJAgAAAAAAAICbogIXAAAAAAAAgCFMXvTANRoVuAAAAAAAAADgpqjABQAAAAAAAGAIL28qcI1GBS4AAAAAAAAAuCkqcAEAAAAAAAAYgh64xqMCFwAAAAAAAADclMlqtVpdHQQAAAAAAACAm9/ubh0cfo/Gq75y+D3cCS0UPMiO/512dQgepWm98tq8L8PVYXiUsGCzVvpYXB2GR+mek6K9v/zu6jA8SoO6t/Hd4mRhwWbO3Mk4c+fjzJ2PM3e+sGCztuxPd3UYHqV1kL+2ceZO1TLIn99zJ2sd5O/qEOABSOACAAAAAAAAMAQ9cI1HAhcAAAAAAACAIby8SeAajYeYAQAAAAAAAICbogIXAAAAAAAAgCFooWA8KnABAAAAAAAAwE1RgQsAAAAAAADAECYv6kWNxokCAAAAAAAAgJuiAhcAAAAAAACAIeiBazwqcAEAAAAAAADATZHABQAAAAAAAGAIk5fJ4a8bceDAAT366KMKCQlReHi4Jk+erOzs7Guu+/PPPzVu3Dh16NBBISEh6tGjhz744IMbiqWwaKEAAAAAAAAAoNhLT09X3759VatWLSUlJenEiRNKTEzUhQsXNG7cuKuuHTFihFJTU/Xkk0/qtttu08aNGzV+/Hh5e3vr/vvvd2jcJHABAAAAAAAAGMKde+B++OGH+uuvvzRz5kyVK1dOkpSbm6uEhAQNGjRIlStXvuK6U6dOaevWrZo0aZJ69eolSQoLC9OPP/6olStXOjyBSwsFAAAAAAAAAMXexo0bFRYWZkveSlJUVJTy8vKUnJxc4LqLFy9KksqWLWs3XqZMGVmtVofEejkqcAEAAAAAAAAYwuTl+HrRyMjIq15fv379FcdTU1N133332Y2ZzWZVrFhRqampBe532223qW3btpo9e7Zq166tKlWqaOPGjUpOTtbLL79c9A9QRCRwAQAAAAAAABR7GRkZMpvN+cb9/f2Vnp5+1bVJSUkaOXKkunfvLkny9vbWs88+qy5dujgk1suRwAUAAAAAAABgCC9vx/fALajC1lGsVqtGjx6tX3/9VVOnTlXFihW1adMmvfjii/L397cldR2FBC4AAAAAAACAYs9sNiszMzPfeHp6uvz9/Qtc99VXX2nNmjVavny5LBaLJKlVq1Y6ffq0EhMTHZ7A5SFmLhQfH68ePXq4OgwAAAAAAADAECYvk8Nf16tOnTr5et1mZmbq1KlTqlOnToHrfvnlF3l7e6tevXp248HBwTp58qTOnz9/3TEVBhW4LjR06FCdO3fO1WEAAAAAAAAAxV5ERIRmz55t1wt3zZo18vLyUnh4eIHrqlatqtzcXKWkpCgoKMg2vnfvXpUvX1633HKLQ+MmgetCNWrUcHUIAAAAAAAAgGFMXu77D/5jY2O1cOFCxcXFadCgQTpx4oQmT56s2NhYVa5c2Tavb9++OnbsmNatWyfp78Tv7bffrieeeEJxcXGqVKmSvv32Wy1btkzDhw93eNwkcB3oyJEjioyMvOK1SZMmadu2bdqzZ49WrFghSVq6dKlGjx6tRYsW6ZVXXtGuXbtUvnx5DR06VNHR0c4MHQAAAAAAAChW/P39NX/+fE2YMEFxcXEqXbq0oqOjNXLkSLt5eXl5ys3Ntb0vU6aM5s2bp1dffVUvv/yyMjMzVa1aNcXHx+vhhx92eNwkcB2oUqVKWrRokd3YsmXL9NFHH6lmzZratm3bFdc9+eSTeuCBBzRw4ECtWrVKY8eOVaVKlRQREeGMsAEAAAAAAIDrciM9ap0hMDBQ8+bNu+qchQsX5hurWbOmpk2b5pigroEErgP5+voqJCTE9n7Hjh1asmSJnnjiCTVr1kwff/zxFdfdc889GjRokCSpXbt2+u233zRr1iwSuAAAAAAAAICHcd+mFMXM8ePHNXz4cHXs2FFDhgy56tzOnTvbvb/zzju1d+9eu9JtAAAAAAAAwN2YvEwOf3kaErhOcOHCBQ0dOlQBAQFKTEy85vzy5cvbva9QoYJycnL0559/OipEAAAAAAAAAG6IFgpOMHbsWB05ckSLFy+Wn5/fNeefPn3a7sl3f/zxh3x8fHTrrbc6MkwAAAAAAADghpi8qBc1GifqYG+88YZWr16tV155RTVq1CjUmnXr1tm9//zzz9WgQQN5e3s7IkQAAAAAAAAAbooKXAf6/vvv9eqrr6pbt24qU6aMfvjhB9u1qyVzP/30U5UqVUr169fXqlWr9N133+mNN95wQsQAAAAAAADA9fPEHrWORgLXgQ4dOqS8vDytWLFCK1assLs2adKkAtdNnTpVr7zyimbNmqXy5ctrwoQJat++vaPDBQAAAAAAAG4ILRSMRwLXgXr16qVevXpd9fqV1KxZUwsXLnRUWAAAAAAAAABuEiRwAQAAAAAAABjDRAsFo1HTDAAAAAAAAABuigpcN3KtlgsAAAAAAACAO+MhZsajAhcAAAAAAAAA3BQVuAAAAAAAAAAMYfKiXtRonCgAAAAAAAAAuCkqcAEAAAAAAAAYgh64xqMCFwAAAAAAAADcFBW4AAAAAAAAAAxBD1zjcaIAAAAAAAAA4KaowAUAAAAAAABgCHrgGo8KXAAAAAAAAABwU1TgAgAAAAAAADAEFbjGowIXAAAAAAAAANwUFbgAAAAAAAAAjOFFvajROFEAAAAAAAAAcFNU4AIAAAAAAAAwhMlED1yjUYELAAAAAAAAAG6KClwAAAAAAAAAhjDRA9dwnCgAAAAAAAAAuCmT1Wq1ujoIAAAAAAAAADe/0+Mfc/g9yo9/y+H3cCe0UPAgm/ZlujoEj9ImuKy27E93dRgepXWQv/b+8rurw/AoDereppU+FleH4VG656Ro874MV4fhUcKCzZy5k3HmzhcWbObvik7G3xWdr3WQv75LOePqMDxKC0s5rd6Z4+owPEpUqI+28d3iVC2D/F0dAjwACVwAAAAAAAAAxqAHruFI4AIAAAAAAAAwhMnL5OoQih1S4gAAAAAAAADgpqjABQAAAAAAAGAIk4l6UaNxogAAAAAAAADgpqjABQAAAAAAAGAMeuAajgpcAAAAAAAAAHBTVOACAAAAAAAAMITJi3pRo3GiAAAAAAAAAOCmqMAFAAAAAAAAYAgTPXANRwUuAAAAAAAAALgpKnABAAAAAAAAGMNEvajROFEAAAAAAAAAcFNU4AIAAAAAAAAwBD1wjUcFLgAAAAAAAACPcODAAT366KMKCQlReHi4Jk+erOzs7EKtPXHihJ555hm1bt1ajRs3VlRUlJYvX+7giKnABQAAAAAAAGAUL/etF01PT1ffvn1Vq1YtJSUl6cSJE0pMTNSFCxc0bty4q649efKkHnjgAdWuXVsTJkxQmTJl9PPPPxc6+XsjimUC98iRI4qMjNT06dPVtWtXSdK8efNUu3ZttW/f3sXRAQAAAAAAAHC2Dz/8UH/99ZdmzpypcuXKSZJyc3OVkJCgQYMGqXLlygWunTJliqpUqaK33npL3t7ekqSwsDBnhF08WyhUqlRJixYtUuvWrW1jCxYs0Ndff+3CqAAAAAAAAIDizWQyOfx1vTZu3KiwsDBb8laSoqKilJeXp+Tk5ALXnT17VqtXr9ZDDz1kS946U7FM4Pr6+iokJMTuDwMAAAAAAACA50pNTVWdOnXsxsxmsypWrKjU1NQC1+3du1c5OTkqUaKEHn74YTVo0EDh4eGaMmWKcnJyHB32zZ3A3blzp/r376+mTZsqNDRUMTExSk5O1pEjR2SxWLRmzRpJUseOHXX06FG99957slgsslgsWrp0qRITE9WhQwfl5eXZ7fv111/LYrHol19+uWYMW7dulcVi0ddff61hw4YpJCREbdu21ezZs/PN/e677xQbG6vGjRurVatWGj16tM6cOWO7finuZcuWacyYMWrWrJlatmypSZMm6eLFizd2WAAAAAAAAICjeXk5/BUZGXnVV0EyMjJkNpvzjfv7+ys9Pb3AdX/88Yck6dlnn1XDhg01d+5c9e3bV/Pnz9eMGTNu/Myu4aZN4H7//ffq06ePsrOzNXHiRCUlJSkyMlLHjh3LN3fmzJmqWLGiunTpokWLFmnRokXq0KGDYmJi9Pvvv+crkV6yZIlCQkJUt27dQsfz3HPPqXr16kpKStJdd92lV199VR988IHt+p49e/Too4+qdOnSmj59ukaNGqUvv/xSAwcOVG5urt1er7zyiqxWq6ZNm6YBAwbo3Xff1bRp04p2QAAAAAAAAABu2KXizzZt2ig+Pl6tW7fW448/rgEDBmjevHm6cOGCQ+9/0z7EbMqUKapZs6bmz59v6z3Rtm1bSX9Xsl6ufv368vX1VYUKFRQSEmIbDwgIULNmzbRkyRK1a9dOkvTnn39qw4YN13zy3D+1bt1azzzzjCSpXbt2On36tF5//XU98MAD8vLy0uzZs1WxYkXNnj1bPj4+kqTbbrtNAwYM0Ndff62OHTva9qpRo4YmTZpk2+vChQt65513NHDgQPn7+xcpLgAAAAAAAMBZTF7X36O2sNavX39d68xmszIzM/ONp6enXzXndqlq9/LnbUl/P8Rs9uzZOnTokCwWy3XFVBg3ZQXu+fPntWvXLvXs2fOGGwfff//9Wr9+va2VwWeffSYfHx9169atSPt07tzZ7n2XLl104sQJHT9+XJK0fft2RUZG2pK30t8JZ7PZrO+///6ae50/f17/+9//ihQTAAAAAAAAgL/VqVMnX6/bzMxMnTp1Kl9v3Mtd61/pZ2VlGRJfQW7KBG5GRoby8vJUqVKlG96ra9euKlWqlJYvXy5JWrp0qbp06aIyZcoUaZ+AgAC79xUqVJAknTp1yhZz+fLl860rX758vh4b19oLAAAAAAAAcEsmL8e/rlNERIQ2bdqkjIwM29iaNWvk5eWl8PDwAtdVrVpV9erV06ZNm+zGN23apFKlShWpDev1uCkTuGXLlpWXl5dOnjx5w3uVKlVKd911l5YuXaq9e/dq3759io6OLvI+aWlpdu8vNTeuWLGipL+bIZ8+fTrfutOnT+cr0b7WXgAAAAAAAACKJjY2VqVLl1ZcXJy+/fZbLVmyRJMnT1ZsbKwqV65sm9e3b998/0J+5MiR2rBhg1544QUlJydr9uzZevvtt9WvXz/5+fk5NO6bMoHr5+enkJAQffrpp/keAFYQHx+fAsuZ77//fu3bt0+TJk1SrVq11Lx58yLHtG7dOrv3a9euVaVKlVSlShVJUrNmzbR+/XpdvHjRNic5OVkZGRlq1qzZNfe65ZZbVK9evSLHBQAAAAAAADiNl8nxr+vk7+9ve55WXFycpk6dqujoaMXHx9vNy8vLy5dz7Nixo1555RVt3rxZgwYN0kcffaThw4fr3//+93XHU1g37UPMnnrqKfXr10/9+vXTQw89JH9/f+3du1e33nprvobC0t89LrZs2aLk5GSZzWZVq1ZNt956qyQpKChIjRo10nfffaennnrquuLZsmWLXnrpJYWHhys5OVmffvqpxo0bJy+vv3PkgwcPVmxsrAYNGqQ+ffrojz/+0NSpU9W4cWO1b9/ebq/Dhw9r9OjR6tatm3766Se98cYb6tu3Lw8wAwAAAAAAgFsz3UCLA2cIDAzUvHnzrjpn4cKFVxzv1q1bkZ+bZQT3PtGraN68uRYsWCCTyaTRo0dr2LBh+uKLL1S1atUrzn/yySdVpUoVDR8+XNHR0fryyy/trnfu3Fne3t7q2bPndcXz/PPP69dff9WwYcO0fPlyjRgxQr1797Zdb9iwod5++2399ddfGj58uKZMmaIOHTrozTffzPcgtpEjR8pqtWrEiBF666239NBDD2nkyJHXFRcAAAAAAACAm9dNW4ErSU2bNtWCBQuueC0lJcXu/R133KH33nuvwL02btyoiIiI634wWvny5fX6669fdU7Lli314YcfXnMvPz8/JSYmKjEx8bpiAQAAAAAAAFziBloc4Mpu6gSuEX788Ud9//332r59u9555x1XhwMAAAAAAAAANh6fwI2OjlbZsmU1dOhQtWnTxu6a1Wq96kPSLvW3BQAAAAAAACCZyJcZzuMTuP9stXC5ZcuWafTo0QVeHzZsmIYPH37VPYqiWrVqhu0FAAAAAAAA4Obn8Qncq/nXv/6lxYsXF3j9evvlAgAAAAAAAMWSiR64RiOBexW33nqrbr31VleHAQAAAAAAAMBDkcAFAAAAAAAAYAx64BqOEwUAAAAAAAAAN0UFLgAAAAAAAABj0APXcFTgAgAAAAAAAICbogIXAAAAAAAAgCFM9MA1HCcKAAAAAAAAAG6KClwAAAAAAAAAxjBRL2o0ThQAAAAAAAAA3BQVuAAAAAAAAACM4WVydQTFDhW4AAAAAAAAAOCmqMAFAAAAAAAAYAgTPXANx4kCAAAAAAAAgJuiAhcAAAAAAACAMeiBazgqcAEAAAAAAADATVGBCwAAAAAAAMAY9MA1nMlqtVpdHQQAAAAAAACAm9+Fj152+D1K3T/K4fdwJ1TgepDN+zJcHYJHCQs2c+ZOxpk7H2fufGHBZq30sbg6DI/SPSdFyT+ddXUYHiW8fhl9vivb1WF4lDub+GrPL8ddHYZHaVi3inb877Srw/AoTeuV5+8tThYWbNZ3KWdcHYZHaWEpx++5k4UFm10dgvsx0QPXaNQ0AwAAAAAAAICbogIXAAAAAAAAgDG8qBc1GglcAAAAAAAAAMbgIWaG40QBAAAAAAAAwE1RgQsAAAAAAADAGF48xMxoVOACAAAAAAAAgJuiAhcAAAAAAACAMeiBazhOFAAAAAAAAADcFBW4AAAAAAAAAIxhogeu0ajABQAAAAAAAAA3RQUuAAAAAAAAAGN4US9qNE4UAAAAAAAAANwUFbgAAAAAAAAAjEEPXMNRgQsAAAAAAAAAbooKXAAAAAAAAADGMFEvajROFAAAAAAAAADcVLFM4C5dulQWi0VpaWmG7bl161bNnj0733hSUpJCQ0MNuw8AAAAAAABw0/LycvzLwxTLT9yhQwctWrRIZrPZsD23bdumOXPm5BuPiYnR/PnzDbsPAAAAAAAAAFxSLHvgBgQEKCAgwCn3qlKliqpUqeKUewEAAAAAAABuzWRydQTFjltV4Pbp00eDBg2yG9u3b58sFou2bt0qSbJYLHrzzTeVlJSkNm3aqFWrVho9erTOnTtnW/PPFgrz5s1Tw4YN9dNPP9nmHD58WKGhoZo6deo140pKStLMmTN17tw5WSwWWSwW9enTx3bt8hYKW7dulcVi0TfffKMRI0YoNDRUHTp00GeffSZJWrBggTp06KCWLVtq7Nixys7OtrvX8ePHNWrUKLVq1UqNGzdW7969tWfPnqIcIwAAAAAAAIBiwq0SuIX13nvv6ddff1ViYqLi4uL02Wef6bXXXitwft++fRUaGqr//Oc/ysrKUm5urp5++mnVqFFDw4cPv+b9YmJiFB0drVKlSmnRokVatGiR/vvf/151zfjx43XHHXdo5syZatKkiZ5++mlNmTJF3377rRISEvTEE0/o008/1dtvv21bk56eroceekj79+/Xc889p6SkJN1yyy3q27evTp8+XfgDAgAAAAAAAFzB5OX41w04cOCAHn30UYWEhCg8PFyTJ0/OV2B5LfPmzZPFYslXiOooN2ULhYoVK9oqZyMiIvTTTz9p7dq1GjVq1BXnm0wmJSYm6u6779Yrr7yigIAA7d27V4sXL5avr+8173epTYKXl5dCQkIKFWPXrl01bNgwSVLjxo21bt06rVy5UuvWrZOPj4+kv/vqrlmzRoMHD5YkzZ8/XxkZGfr4449Vvnx5SVJYWJi6dOmiuXPn6umnny7UvQEAAAAAAADYS09PV9++fVWrVi0lJSXpxIkTSkxM1IULFzRu3LhC7XHq1CnNmjXLlrtzhpsygdumTRu794GBgVq5cuVV11StWlVjxozR2LFjVaJECY0YMUIWi8VhMYaHh9t+Llu2rAICAtS8eXNb8laSatWqZWsNIUnJyclq1aqV/P39dfHiRUmSl5eXWrRooR9//NFhsQIAAAAAAACGcOMeuB9++KH++usvzZw5U+XKlZMk5ebmKiEhQYMGDVLlypWvuceUKVPUsWNHHTt2zMHR/n83ZQsFs9ls997Hx6dQpc6RkZEqVaqUTCaT7r//fkeFJ+nvpO3lfH19rxn3n3/+qS+++EINGjSwe3366ac6fvy4Q+MFAAAAAAAAirONGzcqLCzMlryVpKioKOXl5Sk5Ofma67dv364vvvhCTz31lAOjzM+tKnB9fX2Vk5NjN5aenm7Y/gkJCTKbzbp48aJefPFFvfTSS4btbQR/f3+1a9dOI0aMyHetMK0eAAAAAAAAAJfyct960dTUVN133312Y2azWRUrVlRqaupV1+bm5mrChAkaPHiwKlWq5Mgw83GrBG6VKlW0adMmWa1Wmf6v3Low2e/CWLlypVatWqW33npLWVlZiouLU+fOndWpU6dCrS9sle+NaNOmjZYvX67AwED5+fk59F4AAAAAAADAzSgyMvKq19evX3/F8YyMjHz/Ql76u6jyWkWk77//vs6fP69+/foVOk6juFUCt0uXLlq8eLEmTJigTp06aceOHVq7du0N73vixAk9//zzio2NVbt27SRJ9957r5577jmFhoYWqulwYGCgLl68qPnz5ys0NFRlypRRnTp1bji2y/Xr10+fffaZHn74YT3yyCO6/fbblZaWpl27dqly5cou+QUBAAAAAAAACsvqxj1wr9fp06c1Y8YMvfTSSy75V/JulcCNiIjQf/7zH7377rtatmyZIiIilJCQcMOJy7Fjx8psNuuZZ56xjT377LPaunWrxo0bp1mzZl1zj3/961966KGH9MYbb+j06dNq0aKFFi5ceENx/dOtt96qRYsWadq0aXr55Zd15swZlS9fXk2aNFHnzp0NvRcAAAAAAABgOJPjWygUVGF7LWazWZmZmfnG09PT5e/vX+C66dOny2KxqHnz5srIyJAkXbx4URcvXlRGRob8/PxUooTj0qwmq9VqddjucCub92W4OgSPEhZs5sydjDN3Ps7c+cKCzVrpY3F1GB6le06Kkn866+owPEp4/TL6fJdjW1fB3p1NfLXnFx6a60wN61bRjv+ddnUYHqVpvfL8vcXJwoLN+i7ljKvD8CgtLOX4PXeysOD8/xzf053/8j2H3+OWf/W+rnW9e/dWuXLl7Io5MzMz1aJFC7344ovq1avXFdf16dNH27ZtK3DfN998UxEREdcVU2G4VQUuAAAAAAAAgJuYEypwr1dERIRmz55t1wt3zZo18vLyUnh4eIHrxowZY6u8veTFF19UqVKl9OSTT8picWyRDQlcSXl5ecrLyyvwure3t+2hagAAAAAAAABuPrGxsVq4cKHi4uI0aNAgnThxQpMnT1ZsbKwqV65sm9e3b18dO3ZM69atkyQFBwfn28tsNsvPz0+tWrVyeNwkcPV3Fn3ZsmUFXl+wYIFT/jAAAAAAAACAm5k7P8TM399f8+fP14QJExQXF6fSpUsrOjpaI0eOtJuXl5en3NxcF0WZHwlcScOGDVPv3gX3zqhdu7YTowEAAAAAAADgCIGBgZo3b95V5yxcuPCa+xRmjlFI4EqqVq2aqlWr5uowAAAAAAAAgJubG/fAvVlxogAAAAAAAADgpqjABQAAAAAAAGAMN+6Be7OiAhcAAAAAAAAA3BQVuAAAAAAAAACM4UW9qNE4UQAAAAAAAABwU1TgAgAAAAAAADCElR64hqMCFwAAAAAAAADcFBW4AAAAAAAAAIxhol7UaJwoAAAAAAAAALgpKnABAAAAAAAAGMJKBa7hOFEAAAAAAAAAcFNU4AIAAAAAAAAwhsnk6giKHSpwAQAAAAAAAMBNUYELAAAAAAAAwBD0wDUeJwoAAAAAAAAAbspktVqtrg4CAAAAAAAAwM0v87tVDr9H2RbdHH4Pd0ILBQ+yeV+Gq0PwKGHBZh3fv9PVYXiUKkGh/J47WViwmTN3srBgs5J/OuvqMDxKeP0yWuljcXUYHqV7Toq27E93dRgepXWQP9/nTsb3ufOF1y+jbXy3OFXLIH/O3Mla8n3udGHBZleHAA9AAhcAAAAAAACAMeiBazgSuAAAAAAAAAAMYTWZXB1CsUNKHAAAAAAAAADcFBW4AAAAAAAAAIxBCwXDcaIAAAAAAAAA4KaowAUAAAAAAABgCKvogWs0KnABAAAAAAAAwE1RgQsAAAAAAADAEFZ64BqOEwUAAAAAAAAAN0UFLgAAAAAAAABjUIFrOE4UAAAAAAAAANwUFbgAAAAAAAAADGE1mVwdQrFDBS4AAAAAAAAAuCkqcAEAAAAAAAAYwkoPXMNxogAAAAAAAADgpqjABQAAAAAAAGAMeuAajgpcAAAAAAAAAHBTxSaBGx8frx49ehi23+TJk9W2bVsFBQXphRdeMGzf6zFv3jxZLBaXxgAAAAAAAABci9Xk5fCXpyk2LRSGDh2qc+fOGbLXpk2bNHfuXI0ePVpNmjRRpUqVDNkXAAAAAAAAAIqi2CRwa9SoYdheqampkqRHHnlEXl4FZ/UvXLigUqVKGXZfAAAAAAAA4GZmFT1wjVZsao4vb6GQkZGhZ599Vu3atVOjRo3Uvn17jRw5slD79OnTRxMmTJAkBQcHy2KxaOvWrVq6dKksFot27typRx99VCEhIZo8ebIk6e2339Z9992nZs2aKSwsTIMGDdLBgwfz7Tto0CC7sX379tn2v+Ts2bN6+umnFRoaqtatW2vy5MnKzc297nMBAAAAAAAAcPMqNhW4l5s0aZK++eYbPfXUU6patapOnTqljRs3Fmrtf//7X3300UeaP3++Fi1aJEmqW7eujh49Kkl66qmn9MADD2jQoEG65ZZbJEnHjx/Xww8/rNtvv11nz57Vhx9+qNjYWK1du1blypUrUuxjxozRN998o1GjRqlatWp6//33tWLFiiLtAQAAAAAAALiCJ/aodbRimcD98ccf1aNHD9177722se7duxdqbd26dXX77bdLkkJCQvJdj42N1eOPP243NmbMGNvPubm5Cg8PV1hYmNauXasHHnig0HH/8ssv+vzzzzVx4kRFR0dLktq2bas777yz0HsAAAAAAAAAKD6KZQK3fv36WrZsmSpWrKh27dqpXr16hu3doUOHfGM//PCDpk+frp9++klnzpyxjf/6669F2vvHH3+U1WpV586dbWPe3t7q1KmT5s2bd30BAwAAAAAAAM5iogeu0YplTfNzzz2nu+++W++8847uuusudejQQe+//74he1eoUMHu/bFjx9S/f3/l5uYqISFBH3zwgRYvXqzy5csrKyurSHufOnVKPj4+8vf3txsvX778DccNAAAAAAAA4OZTLCtwy5Ytq7Fjx2rs2LFKSUnRggULlJCQoHr16ql58+aG3uubb77RuXPnNHPmTJnNZknSxYsXlZ6ebjfP19dXOTk5dmP/nFOxYkXl5OQoPT3dLol7+vRpQ2MGAAAAAAAAHMFaPOtFXarYn6jFYtHo0aMlSQcOHDB8/wsXLshkMqlEif+fC1+9erUuXrxoN69KlSo6ePCgrFarbSw5OdluTqNGjSRJ69ats43l5ubqiy++MDxuAAAAAAAAAO6vWFbgxsbGqnPnzrrjjjvk7e2tTz75RD4+PoZX30pS69atJUmjR49WbGysfv75Z73zzju2atxLunTposWLF2vChAnq1KmTduzYobVr19rNqVu3rjp37qwXX3xRWVlZqlatmt5///18lbsAAAAAAACAO7K6eQ/cAwcOaOLEidq5c6dKly6te+65R//+97/l6+tb4JqTJ09q3rx5Sk5O1uHDh1W2bFm1aNFCTz75pKpWrerwmItlBW7Tpk31ySefaMSIEXriiSd05MgRzZ49W4GBgYbfy2KxaNKkSdq7d68GDRqklStXavr06SpbtqzdvIiICP3nP//Rhg0bFBcXp59//lkJCQn59nvxxRfVsWNHvfzyy3r66adVu3Zt9e3b1/C4AQAAAAAAAKNZTV4Of12v9PR09e3bVzk5OUpKStLIkSP10UcfKTEx8arr9u7dq3Xr1ikqKkqvvfaa4uPj9b///U8xMTFKS0u77ngKy2S9/N/0o1jbvC/D1SF4lLBgs47v3+nqMDxKlaBQfs+dLCzYzJk7WViwWck/nXV1GB4lvH4ZrfSxuDoMj9I9J0Vb9qdfeyIM0zrIn+9zJ+P73PnC65fRNr5bnKplkD9n7mQt+T53urBg87UneRhn5EKqBIVe17o5c+Zo9uzZ+vLLL1WuXDlJ0qJFi5SQkKAvv/xSlStXvuK6jIwM+fn52bVQPX78uDp06KCnn35a/fv3v654CqtYVuACAAAAAAAAcD6rTA5/Xa+NGzcqLCzMlryVpKioKOXl5eV7VtXlzGazXfJW+vt5VwEBATp58uR1x1NYxbIH7tXk5ubqakXH//zDAAAAAAAAAOA+IiMjr3p9/fr1VxxPTU3VfffdZzdmNptVsWJFpaamFimGgwcP6vTp0w5p2fpPHpet7Ny5s44ePVrg9ZSUFCdGAwAAAAAAABQfN9Kj1tEyMjJkNudve+Hv76/09MK3fLFarZo4caIqVaqk7t27GxniFXlcAvf1119Xdna2q8MAAAAAAAAAcB0KqrB1lqSkJG3ZskVvvfWW/Pz8HH4/j0vgWiw8hAQAAAAAAABwBKvp+nvUOprZbFZmZma+8fT0dPn7+xdqj48++kizZs3SCy+8oLCwMKNDvCL3rWkGAAAAAAAAAIPUqVMnX6/bzMxMnTp1SnXq1Lnm+nXr1mn8+PF64oknFB0d7agw8yGBCwAAAAAAAMAQVpkc/rpeERER2rRpkzIyMmxja9askZeXl8LDw6+6duvWrXryyScVExOjuLi4647hepDABQAAAAAAAFDsxcbGqnTp0oqLi9O3336rJUuWaPLkyYqNjVXlypVt8/r27avOnTvb3h84cEBxcXGqVauW7rnnHv3www+21+HDhx0et8f1wAUAAAAAAADgGFaT+9aL+vv7a/78+ZowYYLi4uJUunRpRUdHa+TIkXbz8vLylJuba3u/a9cuZWZmKjMzUw8++KDd3HvvvVeJiYkOjZsELgAAAAAAAACPEBgYqHnz5l11zsKFC+3e9+rVS7169XJgVFdHAhcAAAAAAACAIW6kRy2uzH1rmgEAAAAAAADAw1GBCwAAAAAAAMAQ7twD92bFiQIAAAAAAACAm6ICFwAAAAAAAIAh6IFrPCpwAQAAAAAAAMBNUYELAAAAAAAAwBD0wDUeJwoAAAAAAAAAbooKXAAAAAAAAACGoAeu8ajABQAAAAAAAAA3ZbJarVZXBwEAAAAAAADg5ncgNdXh9wisU8fh93AntFDwIJv3Zbg6BI8SFmzmzJ2MM3c+ztz5woLN+nxXtqvD8Ch3NvHVlv3prg7Do7QO8tdKH4urw/Ao3XNS1Paur10dhkf59rP2Gjef73Nner6vL39vcbKwYLM27ct0dRgepU1wWX7PnSws2OzqEOABSOACAAAAAAAAMITVSg9co5HABQAAAAAAAGAIK4/cMhwnCgAAAAAAAABuigpcAAAAAAAAAIawihYKRqMCFwAAAAAAAADcFBW4AAAAAAAAAAxBBa7xqMAFAAAAAAAAADdFBS4AAAAAAAAAQ1CBazwqcAEAAAAAAADATVGBCwAAAAAAAMAQVOAajwpcAAAAAAAAAHBTVOACAAAAAAAAMITVSgWu0ajABQAAAAAAAAA3RQUuAAAAAAAAAEPQA9d4VOACAAAAAAAAgJuiAhcAAAAAAACAIajANZ4hFbgZGRmyWCxaunSpEdsZ7rPPPtOdd96pBg0a6J577nF1ONdksVg0d+5cV4cBAAAAAAAAwMWKfQXuX3/9pTFjxqhHjx6aNGmSypQp4+qQAAAAAAAAgGKJClzjFfsE7tGjR5Wdna27775bzZo1c3U4AAAAAAAAAFBo19VC4aOPPlLHjh3VpEkT9e3bV4cOHbK7/sknn+jBBx9Uy5Yt1aJFC/Xp00e7d++2XU9JSZHFYlFycrLdutzcXLVr106TJ08uVBx5eXl67bXX1LFjRzVs2FBdu3bVhx9+aLuelJSku+66S5LUr18/WSwWJSUlXXXP33//XRaLRZs3b7aNTZgwQRaLRV999ZVtbOrUqerevbvtvdVq1dy5c9WlSxc1bNhQkZGRmjdvXr79Dxw4oCFDhqhZs2YKCQnR448/rsOHD181pt9++02dOnXSY489pgsXLlx1LgAAAAAAAOAqVqvJ4S9PU+QK3C+//FLPPfecevXqpW7dumnv3r0aMWKE3ZwjR46oZ8+eqlGjhrKzs7Vy5Ur17t1by5cvV+3atWWxWNSkSRMtWbJE4eHhtnXffPONTp48qfvuu69QsUyePFkLFizQkCFDFBoaqq+++kr//e9/dfHiRT388MOKiYlR9erV9cwzz2jcuHFq0KCBqlSpctU9b7vtNlWtWlXfffedwsLCJEnbtm1TyZIl9d1336lDhw6SpO+++07Nmze3rXvhhRf08ccfa/DgwWrSpIl27Nihl19+WSVLltSDDz4o6e9EbGxsrO644w4lJibKZDJp9uzZ6tevn9asWSNfX9988aSmpqpfv35q0qSJpk6desU5AAAAAAAAAIqnIidwX3/9dTVv3lyTJk2SJLVr105ZWVl67bXXbHOGDRtm+zkvL0/h4eHavXu3li1bpieffFKSFBMTowkTJig9PV3+/v6SpCVLlig0NFSBgYHXjCMtLU3vvvuuBgwYoOHDh0uS2rZtqz///FOzZs3Sgw8+qCpVqshisUiS6tatq5CQkEJ9xhYtWui7776TJKWnp+vnn39W7969bWMXLlzQnj179PDDD0uSDh8+rHfffVcJCQl64IEHJElt2rTRhQsXNGvWLD3wwAPy8vLSzJkz5e/vr3feeUclS5aUJDVt2lSRkZH6+OOP1bt3b7s49u/fr/79+6tt27aaNGmSvL29CxU/AAAAAAAA4Ap59MA1XJFaKOTm5mrv3r3q3Lmz3XiXLl3s3h84cEBxcXFq06aNgoOD1aBBAx08eFC//vqrbU737t1VokQJrVixQtLfCdkvv/xS0dHRhYpl9+7dysnJUdeuXe3Go6KilJaWZnevomrevLl2796t7Oxsbd++XRUqVFBMTIz27t2rc+fOaefOncrJyVGLFi0kSZs2bZIk3Xnnnbp48aLt1aZNG506dUq///67JCk5OVkdO3aUt7e3bY7ZbFb9+vW1Z88euxh+/PFH9enTR507d9ZLL71E8hYAAAAAAADwQEWqwE1LS9PFixcVEBBgN16hQgXbz2fPnlX//v0VEBCg+Ph43X777SpZsqSeffZZZWVl2eb5+fmpR48eWrx4sa29go+Pj6KiogoVS3p6er57X/7+zJkzRflodlq2bKkLFy7oxx9/1Pbt29WiRQvVq1dPfn5+2rlzp3bs2KHq1aurcuXKkqQ///xTVqtVrVu3vuJ+v//+u6pWrao///xT8+fP1/z58/PN8fHxsXu/efNmnT9/XtHR0TKZ+D8XAAAAAAAAcH9WKnANV6QEbkBAgEqUKKG0tDS78T/++MP28w8//KDjx49rzpw5CgoKso1nZmbm6z8bExOjRYsWaf/+/Vq6dKmioqJUunTpQsVSrlw5SdLp06dtidTLY7l0/XrUrFlTlSpV0vbt2/Xdd9/p3nvvlZeXl5o1a6Zt27Zp586ddv1v/f39ZTKZ9P777+dLxEpS7dq1bfPat2+vhx56KN+cf37uAQMGaM+ePXrssce0YMECWysIAAAAAAAAAJ6jSC0UvL29Vb9+fa1bt85ufO3atbafL1y4IMm+onTHjh06evRovv0aNWqk4OBgTZw4USkpKYV+eNmltT4+PlqzZo3d+OrVq1W+fHnVqlWr0HtdSfPmzfXVV19p3759atmypaS/e+Nu2rRJu3btskvgXnrY2ZkzZ9SoUaN8rzJlytjm/fzzz6pfv36+OXXq1LG7v7e3t6ZOnarQ0FA9+uijSk1NvaHPAwAAAAAAADia1Wpy+MvTFCmBK0mDBw/W9u3bNXr0aH3zzTeaPXu2Pv30U9v1kJAQ+fn5KSEhQd9++62WLFmiJ5980q5K9nIxMTH67rvvVLt2bTVr1qzQcQQEBOjhhx/W3LlzNXPmTH377bd64YUXtGLFCg0dOvSGe8Y2b95cO3bsUNmyZVW3bl1Jfydwd+/erQsXLtj630p/V9j27t1bTz/9tF5//XVt2rRJX3/9tebPn6+hQ4fa5j3xxBM6dOiQBgwYoFWrVmnbtm1atWqVxo8fb+sFfDkfHx/NmDFDQUFB6tevn3777bcb+kwAAAAAAACAI1llcvjL0xQ5gRsZGamEhARt3rxZcXFxSk5O1rRp02zXK1SooOnTpystLU1Dhw7V/PnzlZCQoJo1a15xv0sPRCtK9e0lTz/9tIYOHaolS5Zo8ODB2rhxoxISEvTwww8Xea9/ulR126xZM1sP2vr168vPz08VK1bM93meffZZ/fvf/9aqVav0+OOP6+mnn9bq1att+0h/t2b4+OOPVa5cOSUkJGjAgAF6+eWXdf78+QJbJPj6+mrWrFmqUaOG+vbta3sgGgAAAAAAAIDiz2S1Wq2uDGDx4sX673//q6+++koVK1Z0ZSjF3uZ9Ga4OwaOEBZs5cyfjzJ2PM3e+sGCzPt+V7eowPMqdTXy1ZX+6q8PwKK2D/LXSh/7/ztQ9J0Vt7/ra1WF4lG8/a69x8/k+d6bn+/ry9xYnCws2a9O+TFeH4VHaBJfl99zJwoLNrg7B7WxP+dPh92huudXh93AnRXqImZGOHDmiQ4cO6bXXXlNUVBTJWwAAAAAAAAD4B5clcGfOnKkVK1YoNDRU8fHx+a5fvHixwLUmk+m6e9zm5eUpLy+vwOve3t62lgkAAAAAAAAACs8Te9Q6mssSuImJiUpMTCzweoMGDQq8VrVqVW3YsOG67jtmzBgtW7aswOsLFixQq1atrmtvAAAAAAAAADCSyxK417J48eICr/n6+l73vsOGDVPv3r0LvF67du3r3hsAAAAAAADwZFare1fgHjhwQBMnTtTOnTtVunRp3XPPPfr3v/99zXyj1WrVm2++qffff19paWkKDg7W6NGjFRIS4vCY3TaB26hRI4fsW61aNVWrVs0hewMAAAAAAABwT+np6erbt69q1aqlpKQknThxQomJibpw4YLGjRt31bVvvvmmZsyYoVGjRslisei9995T//799emnn6p69eoOjdttE7gAAAAAAAAAbi4FP3nK9T788EP99ddfmjlzpsqVKydJys3NVUJCggYNGqTKlStfcV1WVpbmzJmj/v37q1+/fpKkZs2aqWvXrpo7d67Gjx/v0Li9HLo7AAAAAAAAALiBjRs3KiwszJa8laSoqCjl5eUpOTm5wHU7duzQ2bNnFRUVZRvz9fVV586dtXHjRkeGLIkKXAAAAAAAAAAGcUYP3MjIyKteX79+/RXHU1NTdd9999mNmc1mVaxYUampqQXud+lanTp17MYDAwM1f/58XbhwQaVKlSpM6NeFClwAAAAAAAAAxV5GRobMZnO+cX9/f6Wnp191na+vr0qWLGk3bjabZbVar7rWCFTgAgAAAAAAADCEVY6vwC2owra4ogIXAAAAAAAAQLFnNpuVmZmZbzw9PV3+/v5XXZedna2srCy78YyMDJlMpquuNQIJXAAAAAAAAACGsFpNDn9drzp16uTrdZuZmalTp07l62/7z3WSdPDgQbvx1NRU3X777Q7tfyuRwAUAAAAAAADgASIiIrRp0yZlZGTYxtasWSMvLy+Fh4cXuK5p06YqU6aMVq9ebRvLycnR559/roiICIfGLNEDFwAAAAAAAIBBnNED93rFxsZq4cKFiouL06BBg3TixAlNnjxZsbGxqly5sm1e3759dezYMa1bt06SVLJkSQ0aNEhJSUkKCAhQvXr19MEHH+jMmTMaMGCAw+MmgQsAAAAAAACg2PP399f8+fM1YcIExcXFqXTp0oqOjtbIkSPt5uXl5Sk3N9dubODAgbJarXr77beVlpam4OBgzZ07V9WrV3d43CRwAQAAAAAAABgiz+rqCK4uMDBQ8+bNu+qchQsX5hszmUwaNGiQBg0a5KDICkYPXAAAAAAAAABwU1TgAgAAAAAAADCEO/fAvVlRgQsAAAAAAAAAbooKXAAAAAAAAACGsFqpwDWayWq1unlrYQAAAAAAAAA3g6/2nHf4PTo0vMXh93AnVOB6kM37MlwdgkcJCzZz5k7GmTtfWLBZm/ZlujoMj9ImuKz2/HLc1WF4lIZ1q/Dd4mRhwWa1vetrV4fhUb79rL1W+lhcHYZH6Z6Toi37010dhkdpHeTP97mThQWbtY3fc6dqye+504UFm10dgtuhVNR49MAFAAAAAAAAADdFBS4AAAAAAAAAQ+SJHrhGI4ELAAAAAAAAwBA8xMx4tFAAAAAAAAAAADdFBS4AAAAAAAAAQ/AQM+NRgQsAAAAAAAAAbooKXAAAAAAAAACGsPIQM8NRgQsAAAAAAAAAbooKXAAAAAAAAACGyKMHruGowAUAAAAAAAAAN0UFLgAAAAAAAABDWK30wDUaFbgAAAAAAAAA4KaowAUAAAAAAABgCCs9cA1HBS4AAAAAAAAAuCkqcAEAAAAAAAAYIk/0wDUaFbgAAAAAAAAA4KY8JoGbkZEhi8WipUuXujoUOx07dtTzzz/v6jAAAAAAAACAG2a1Ov7laWih4GIzZ86U2Wx2dRgAAAAAAAAA3BAJXBerX7++q0MAAAAAAAAADGG10gPXaMW2hcJHH32kjh07qkmTJurbt68OHTpkd/2TTz7Rgw8+qJYtW6pFixbq06ePdu/ebbuekpIii8Wi5ORku3W5ublq166dJk+eXKg41q9fr169eik0NFTNmzdXr1699PXXX9uu/7OFQnx8vHr06KGtW7eqZ8+eCgkJUXR0tPbs2XM9xwAAAAAAAADgJlYsK3C//PJLPffcc+rVq5e6deumvXv3asSIEXZzjhw5op49e6pGjRrKzs7WypUr1bt3by1fvly1a9eWxWJRkyZNtGTJEoWHh9vWffPNNzp58qTuu+++a8Zx+PBhjRgxQt27d9dTTz2lvLw87d+/X+np6Vddd+rUKU2cOFGPP/64ypYtq6lTp2rYsGFat26dfHx8ru9QAAAAAAAAAAfL88AetY5WLBO4r7/+upo3b65JkyZJktq1a6esrCy99tprtjnDhg2z/ZyXl6fw8HDt3r1by5Yt05NPPilJiomJ0YQJE5Seni5/f39J0pIlSxQaGqrAwMBrxvHTTz8pJydHzz33nMqUKWOL5VrS09P17rvv6o477pAk3XLLLXrkkUe0a9cuNW/evJCnAAAAAAAAAOBmV+xaKOTm5mrv3r3q3Lmz3XiXLl3s3h84cEBxcXFq06aNgoOD1aBBAx08eFC//vqrbU737t1VokQJrVixQpKUlpamL7/8UtHR0YWKxWKxyNvbW6NGjdKGDRuUmZlZqHWVKlWyJW8lqW7dupKkEydOFGo9AAAAAAAA4ApWq+NfnqbYJXDT0tJ08eJFBQQE2I1XqFDB9vPZs2fVv39/HTt2TPHx8Xrvvfe0ePFiBQUFKSsryzbPz89PPXr00OLFiyVJy5cvl4+Pj6KiogoVS+3atTV79mxlZmZq2LBhCgsL0+DBg3Xs2LGrrjObzXbvL7VNuDw2AAAAAAAAAMVfsWuhEBAQoBIlSigtLc1u/I8//rD9/MMPP+j48eOaM2eOgoKCbOOZmZmqUqWK3bqYmBgtWrRI+/fv19KlSxUVFaXSpUsXOp6IiAhFRETo7Nmz2rhxoyZNmqTRo0dr/vz51/kJAQAAAAAAAPdklcnVIRQ7xa4C19vbW/Xr19e6devsxteuXWv7+cKFC5Jk90CwHTt26OjRo/n2a9SokYKDgzVx4kSlpKQU6uFlV1KmTBl169ZN3bt314EDB65rDwAAAAAAAACepdhV4ErS4MGDNXToUI0ePVrdunXT3r179emnn9quh4SEyM/PTwkJCXr88cd14sQJJSUlqXLlylfcLyYmRs8//7xq166tZs2aFTqODz/8UD/88IPatWunihUr6siRI1q+fLnCw8Nv+DMCAAAAAAAA7ibPA3vUOlqxq8CVpMjISCUkJGjz5s2Ki4tTcnKypk2bZrteoUIFTZ8+XWlpaRo6dKjmz5+vhIQE1axZ84r7XXogWlGrby0Wi/78809NmjRJ/fv3V1JSkrp3767//ve/1/3ZAAAAAAAAAHfFQ8yMVywrcCUpNjZWsbGxdmMpKSm2ny/1pr1c+/btr7jXxo0bVaJECfXs2bNIMYSGhmrOnDlXnbNhwwa794mJifnmmM1mu9gBAAAAAAAAeIZim8A1wpEjR3To0CG99tprioqKUsWKFV0dEgAAAAAAAOC2PLFC1tFI4F7FzJkztWLFCoWGhio+Pj7f9YsXLxa41mQyydvb25HhAQAAAAAAACjmSOBeRWJi4hVbGlzSoEGDAq9VrVo1X3sEAAAAAAAAoDjLs5pcHUKxQwL3BixevLjAa76+vk6MBAAAAAAAAEBxRAL3BjRq1MjVIQAAAAAAAABugx64xvNydQAAAAAAAAAAgCujAhcAAAAAAACAIajANR4VuAAAAAAAAADgpqjABQAAAAAAAGCIPCpwDUcFLgAAAAAAAAAUYMOGDbr77rvVqFEjdenSRUuWLLnmmt27d2v06NHq3LmzmjRpojvvvFNTp07VuXPninx/KnABAAAAAAAAGMJqNbk6BENt375dw4YNU3R0tMaMGaMtW7Zo7NixKl26tLp27VrgutWrV+vQoUN67LHHVKtWLf3yyy+aMWOGdu3apQULFhQpBhK4AAAAAAAAAHAFr7/+uho3bqznn39ektS6dWv99ttvmjFjxlUTuAMHDlRAQIDtfatWrWQ2mzVq1Cjt2bNHDRs2LHQMtFAAAAAAAAAAYAir1fEvZ8nOztbWrVvzJWq7deumAwcO6MiRIwWuvTx5e0n9+vUlSSdPnixSHFTgAgAAAAAAALhpREZGXvX6+vXrDbnP4cOHlZOTozp16tiNBwYGSpJSU1NVrVq1Qu/3/fffS1K+/a6FBC4AAAAAAAAAQ+Q5sULW0dLT0yVJZrPZbvzS+0vXCyMtLU1JSUmKjIxUrVq1ihQHCVwAAAAAAAAAN40bqbDNzMwsVAuD6tWrX/c9/iknJ0dPPvmkJGn8+PFFXk8CFwAAAAAAAIAhnNmj9nqsWbNGzz777DXnrVq1Sv7+/pL+TvpeLiMjQ5Js16/GarVqzJgx2r17t95//31VqlSpyDGTwAUAAAAAAADgEWJiYhQTE1OoudnZ2fLx8VFqaqratWtnG09NTZVUuF62L730klavXq0333xTQUFB1xWz13WtAgAAAAAAAIB/sFod/3IWX19ftWrVSmvXrrUbX7VqlQIDA6/5ALM33nhD8+bNU2JiosLCwq47DhK4AAAAAAAAAHAFQ4YM0Q8//KDx48dr69atmjFjhlasWKHhw4fbzatfv77GjBlje//ZZ59p6tSpuuuuu1StWjX98MMPtldaWlqRYjBZre7emQIAAAAAAADAzeCt63++WKE9Fun4e1xu/fr1mjZtmg4ePKjbb79djz/+uKKjo+3mWCwW3XvvvUpMTJQkxcfHa9myZVfcb9KkSerVq1eh708C14Ns3pfh6hA8SliwmTN3Ms7c+cKCzdqyP93VYXiU1kH+2vG/064Ow6M0rVdeyT+ddXUYHiW8fhmNm5/t6jA8yvN9ffk+d7LWQf5a6WNxdRgepXtOCn9XdLKwYLM27cu89kQYpk1wWX7PnSws2OzqENxOcUzguhoPMQMAAAAAAABgCEpFjUcCFwAAAAAAAIAh8vJcHUHxw0PMAAAAAAAAAMBNUYELAAAAAAAAwBC0UDAeFbgAAAAAAAAA4KaowAUAAAAAAABgCCpwjUcFLgAAAAAAAAC4KSpwAQAAAAAAABgijwpcw1GBCwAAAAAAAABuigpcAAAAAAAAAIawOqUJrskJ93AfVOACAAAAAAAAgJuiAhcAAAAAAACAIZxSgOthqMAFAAAAAAAAADdFBS4AAAAAAAAAQ+TluTqC4ocKXAAAAAAAAABwU1TgAgAAAAAAADAEPXCNRwUuAAAAAAAAALipYpvAzcjIkMVi0dKlS10dCgAAAAAAAOAR8qyOf3maYpvABQAAAAAAAICbHT1wAQAAAAAAABiCHrjGKzYVuB999JE6duyoJk2aqG/fvjp06JDd9U8++UQPPvigWrZsqRYtWqhPnz7avXu37XpKSoosFouSk5Pt1uXm5qpdu3aaPHlyoWP55JNP1LNnTzVq1EitWrXSwIEDdfToUbt7DRgwQCEhIWrWrJmeeOIJHTt2zG6PxYsXq3v37mrcuLFatWqlBx980C5eAAAAAAAAAMVfsajA/fLLL/Xcc8+pV69e6tatm/bu3asRI0bYzTly5Ih69uypGjVqKDs7WytXrlTv3r21fPly1a5dWxaLRU2aNNGSJUsUHh5uW/fNN9/o5MmTuu+++woVy1tvvaUpU6YoOjpaI0eOVE5OjrZs2aK0tDRVrVpVv//+ux5++GFVr15dU6ZMUVZWll599VU9/PDDWr58ucqUKaPvvvtOY8eOVf/+/dW+fXtduHBBu3fvVmZmpqHnBgAAAAAAABjJ6pQmtSYn3MN9FIsE7uuvv67mzZtr0qRJkqR27dopKytLr732mm3OsGHDbD/n5eUpPDxcu3fv1rJly/Tkk09KkmJiYjRhwgSlp6fL399fkrRkyRKFhoYqMDDwmnFkZmZq5syZeuCBB/T888/bxjt16mT7ed68ebp48aLefvttlStXTpIUHBys7t27a9myZbbK4HLlyumZZ56xrevQoUPRDwYAAAAAAADATe2mb6GQm5urvXv3qnPnznbjXbp0sXt/4MABxcXFqU2bNgoODlaDBg108OBB/frrr7Y53bt3V4kSJbRixQpJUlpamr788ktFR0cXKpadO3fq/PnzV52/fft2tWrVypa8laTAwEAFBQXp+++/lyTVr19fZ86cUXx8vJKTk3X+/PlC3R8AAAAAAABwpTyr41+e5qZP4KalpenixYsKCAiwG69QoYLt57Nnz6p///46duyY4uPj9d5772nx4sUKCgpSVlaWbZ6fn5969OihxYsXS5KWL18uHx8fRUVFFSqWM2fOSJIqVapU4JyMjAy72C4pX7680tPTJUlhYWGaPHmyfv75Zw0YMECtW7fW008/bdsfAAAAAAAAgGe46VsoBAQEqESJEkpLS7Mb/+OPP2w///DDDzp+/LjmzJmjoKAg23hmZqaqVKlity4mJkaLFi3S/v37tXTpUkVFRal06dKFiuVSVe3Jkyfz7XuJv7+/Tp8+nW/89OnTqlWrlu39Pffco3vuuUdpaWlav369Jk2apBIlSujFF18sVCwAAAAAAACAs1k9sELW0W76Clxvb2/Vr19f69atsxtfu3at7ecL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l7a99/f3V/v27fXQQw/lm3v5PAAAAAAAAADFHwlcA2RnZysvL8+uQvbs2bPasGGD7X3Dhg31ySef6LffflP16tUlSUeOHNH+/fvVrFkz27ywsDD9/PPPql+/vry9vZ33IQAAAAAAAIAbZLXSA9doJHANULZsWTVq1EhvvvmmAgICVKJECb3xxhsqU6aM0tLSJEn33XefZs+ercGDB2v48OGS/n5gWYUKFWQymWx7PfHEE4qOjtaAAQN0//33q0KFCvrjjz+0bds2NW/eXD169HDJZwQAAAAAAACuJY8WCobzcnUAxcXUqVNVo0YNxcfHa+LEierSpYt69uxpu16qVCm9/fbb8vf316hRozRlyhQ9+uijqlmzpsqWLWubV7NmTX388ccqV66cEhISNGDAAL388ss6f/68LBaLCz4ZAAAAAAAAAFehAtcgNWvWvOKDxy5V20rSHXfcYdcX98yZM5o0aZL69etnt6ZWrVqaNm2ao0IFAAAAAAAAHMKaRwsFo5HAdaI33nhDFSpUUNWqVXXq1Cm9/fbbys3N1X333efq0AAAAAAAAAC4IRK4TuTl5aX/196dR1VR/n8AfyNeNGQJREpxI5UrIN2LIMriAqgk1M8lMDeSXEklKzdQ0cAFBCEENMSdMsUQ92jR0vySu1guaJa5kGkqIpLszO8PDxNXtnvxAld9v87xHJn1c5+ZeWbmM88889lnn+H27dvQ1taGTCbDpk2b0Lp168YOjYiIiIiIiIiI6KkJ7ANX7ZjAbUATJkzAhAkTGjsMIiIiIiIiIiIiekYwgUtERERERERERERqIQjsA1fdmjR2AERERERERERERERUNbbAJSIiIiIiIiIiIrVgH7jqxxa4RERERERERERERBqKLXCJiIiIiIiIiIhILYQy9oGrbmyBS0RERERERERERKSh2AKXiIiIiIiIiIiI1OJ/e/o2dgjPHbbAJSIiIiIiIiIiItJQTOASERERERERERERaSgmcImIiIiIiIiIiIg0FBO4RERERERERERERBqKCVwiIiIiIiIiIiIiDcUELhEREREREREREZGGYgKXiIiIiIiIiIiISEMxgUtERERERERERESkoZjAJSIiIiIiIiIiItJQWoIgCI0dBBERERERERERERFV1rSxA6CGcyQzt7FDeKE4WhqwzBuYo6UBjl580NhhvFB6dTXE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2rdvDwDo1KkTtm/fjr1796JDhw4wMjJC27ZtYWNjgzVr1ogtfxMTE6Gnp1epBbAyZsyYAT8/P/j5+WHUqFEwNDTE+fPnYWRkBG9vbzg7O8PV1RUTJkzAhAkTIJVKkZ+fj99//x3Xrl3DkiVLVFqfRCJBbGws/P394efnh82bN6Ndu3Yqx01EREREREREREQvnjq1wAUAd3d3hISE4MiRI5g6dSrS09MRExNT7fStWrWCiYkJVq9ejYkTJ2LBggVo3bo11q9fL37cy9vbG2+88QYWLVoEb29vxMfHAwCioqLQvn17BAYGYvHixfDw8MCQIUPqFLe9vT2SkpKgpaWFoKAgTJs2Dfv374eZmZk4TWxsLEaMGIEtW7Zg4sSJmDdvHv73v//V2ldvdXR0dLBy5Uq0b98eY8eOxd9//12n5RAREREREREREdGLRUsQBKGxg6CGcSQzt7FDeKE4WhqwzBuYo6UBjl580NhhvFB6dTXEcZZ5g3Loasi6pYGxPm94LPOGxzJveCzzhscyb3iOlgb4OfNhY4fxQnGy1Mc+Cb+/05C8ii81dgj0AqhzC1wiIiIiIiIiIiIiql917gP3RVZSUlLtOC0tLbFLCCIiIiIiIiIiIqKnwQSuirKysuDu7l7teAcHB3z++ecNGBERERERERERERE9r5jAVZGpqSlSUlKqHd+iRYsGjIaIiIiIiIiIiIieZ0zgqkhHRwc2NjaNHQYRERERERERERG9APgRMyIiIiIiIiIiIiINxQQuERERERERERERkYZiApeIiIiIiIiIiIhIQzGBS0RERERERERERKShmMAlIiIiIiIiIiIi0lBM4BIRERERERERERFpKCZwiYiIiIiIiIiIiDQUE7hEREREREREREREGooJXCIiIiIiIiIiIiINxQQuERERERERERERkYZiApeIiIiIiIiIiIhIQzGBS0RERERERERERKShmMAlIiIiIiIiIiIi0lBM4BIRERERERERERFpKCZwiYiIiIiIiIiIiDSUliAIQmMHQURERERERERERESVsQUuERERERERERERkYZiApeIiIiIiIiIiIhIQzGBS0RERERERERERKShmMAlIiIiIiIiIiIi0lBM4BIRERERERERERFpKCZwiYiIiIiIiIiIiDQUE7hEREREREREREREGooJXCIiIiIiIiIiIiINxQQu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lxpMeau06jg4OKj9FVoiejF4e3tDX18fU6ZMgZOTk8I4QRBq/Ehaef+2pB5lZWUoKyurdry2tja/jF2D0tJS1PRyVMWPkVHN4uPjsXfvXtja2iIwMLDS+Pp6qMxjQH0aaxu+iFjWRI+vCT/77DPcvn0b2trakMlk2LRp01N3K0MNh3UVPc/YhQI1mKKiohr7mW3RooVGfLmTiJ4v5V1TVGfatGnixyro6QUGBmLHjh3Vjk9KSkLPnj0bMKJni5ubW5Vfhy/3PPbX3lhq6qvQzMyszv268xhoOPW1DakyljURaTo2GKPnHRO4RET0XLt//z6ysrKqHW9qalrt17hJdVlZWbh//361483NzcWP1VBlly5dQlFRUbXjn7aPZvrP2bNnqx2no6NT54/R8BhoOPW1DakyljURaTo2GKPnHRO4RERERERERERERBqKHf8RERERERERERERaSgmcImIiIiIiIiIiIg0FBO4RERERERERERERBqKCVwiIiIiIiIiIiIiDcUELhEREREREREREZGGYgKXiIiIiIiIiIiISEMxgUtERERERERERESkof4f3ItWhfO1w9gAAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":24},{"id":"801d66e4-be13-47d5-8549-9a0f31f54546","cell_type":"code","source":"df.select_dtypes(include='number').corr()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:14.855168Z","iopub.execute_input":"2026-01-17T19:34:14.855539Z","iopub.status.idle":"2026-01-17T19:34:15.779385Z","shell.execute_reply.started":"2026-01-17T19:34:14.855515Z","shell.execute_reply":"2026-01-17T19:34:15.778758Z"}},"outputs":[{"execution_count":25,"output_type":"execute_result","data":{"text/plain":" cc_num amt zip city_pop unix_time is_fraud \\\ncc_num 1.000000 0.001826 0.041504 -0.009118 0.000284 -0.001125 \namt 0.001826 1.000000 0.001979 0.004921 -0.002411 0.209308 \nzip 0.041504 0.001979 1.000000 0.077601 0.001017 -0.002190 \ncity_pop -0.009118 0.004921 0.077601 1.000000 -0.001636 0.000325 \nunix_time 0.000284 -0.002411 0.001017 -0.001636 1.000000 -0.013329 \nis_fraud -0.001125 0.209308 -0.002190 0.000325 -0.013329 1.000000 \nday_of_week -0.000851 0.000491 -0.001021 0.001180 -0.072071 0.004562 \nday_sin 0.002118 0.000473 0.001556 -0.004184 0.074955 0.000906 \nday_cos -0.002048 -0.003301 -0.000041 0.006552 0.042583 -0.012312 \nhour -0.000902 -0.024891 0.005947 0.019949 0.000571 0.013196 \nage -0.000131 -0.010695 0.010359 -0.090889 0.020680 0.010927 \ndistance_km 0.003082 -0.000538 0.006750 0.010989 -0.000470 0.000359 \n\n day_of_week day_sin day_cos hour age distance_km \ncc_num -0.000851 0.002118 -0.002048 -0.000902 -0.000131 0.003082 \namt 0.000491 0.000473 -0.003301 -0.024891 -0.010695 -0.000538 \nzip -0.001021 0.001556 -0.000041 0.005947 0.010359 0.006750 \ncity_pop 0.001180 -0.004184 0.006552 0.019949 -0.090889 0.010989 \nunix_time -0.072071 0.074955 0.042583 0.000571 0.020680 -0.000470 \nis_fraud 0.004562 0.000906 -0.012312 0.013196 0.010927 0.000359 \nday_of_week 1.000000 -0.723891 -0.368198 0.000584 -0.008918 -0.000092 \nday_sin -0.723891 1.000000 0.005635 -0.000647 0.010983 -0.000184 \nday_cos -0.368198 0.005635 1.000000 0.002021 -0.004789 0.000526 \nhour 0.000584 -0.000647 0.002021 1.000000 -0.173014 0.000391 \nage -0.008918 0.010983 -0.004789 -0.173014 1.000000 -0.004155 \ndistance_km -0.000092 -0.000184 0.000526 0.000391 -0.004155 1.000000 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
cc_numamtzipcity_popunix_timeis_fraudday_of_weekday_sinday_coshouragedistance_km
cc_num1.0000000.0018260.041504-0.0091180.000284-0.001125-0.0008510.002118-0.002048-0.000902-0.0001310.003082
amt0.0018261.0000000.0019790.004921-0.0024110.2093080.0004910.000473-0.003301-0.024891-0.010695-0.000538
zip0.0415040.0019791.0000000.0776010.001017-0.002190-0.0010210.001556-0.0000410.0059470.0103590.006750
city_pop-0.0091180.0049210.0776011.000000-0.0016360.0003250.001180-0.0041840.0065520.019949-0.0908890.010989
unix_time0.000284-0.0024110.001017-0.0016361.000000-0.013329-0.0720710.0749550.0425830.0005710.020680-0.000470
is_fraud-0.0011250.209308-0.0021900.000325-0.0133291.0000000.0045620.000906-0.0123120.0131960.0109270.000359
day_of_week-0.0008510.000491-0.0010210.001180-0.0720710.0045621.000000-0.723891-0.3681980.000584-0.008918-0.000092
day_sin0.0021180.0004730.001556-0.0041840.0749550.000906-0.7238911.0000000.005635-0.0006470.010983-0.000184
day_cos-0.002048-0.003301-0.0000410.0065520.042583-0.012312-0.3681980.0056351.0000000.002021-0.0047890.000526
hour-0.000902-0.0248910.0059470.0199490.0005710.0131960.000584-0.0006470.0020211.000000-0.1730140.000391
age-0.000131-0.0106950.010359-0.0908890.0206800.010927-0.0089180.010983-0.004789-0.1730141.000000-0.004155
distance_km0.003082-0.0005380.0067500.010989-0.0004700.000359-0.000092-0.0001840.0005260.000391-0.0041551.000000
\n
"},"metadata":{}}],"execution_count":25},{"id":"7aeb2d44-01b5-4ef6-ad93-52aceb12a55e","cell_type":"code","source":"sns.catplot(data=df,x='amt',col='is_fraud',kind='box',sharex=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:15.780215Z","iopub.execute_input":"2026-01-17T19:34:15.780442Z","iopub.status.idle":"2026-01-17T19:34:19.569999Z","shell.execute_reply.started":"2026-01-17T19:34:15.780421Z","shell.execute_reply":"2026-01-17T19:34:19.569361Z"}},"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAA+4AAAHjCAYAAAC95UVJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOdBJREFUeJzt3Xl4VdW9P+BvwixJBBUUtE5tCQhiUEQRRcW5olDn3lJah2pbq9Z7+2udcKh6W7wd9NraOlTU9tbWqXKtaJ2n4lhxuFWpooKgiIwJkIlk//6gORoSTNSQswjv+zw8JHuvs/Za6+zsdT7n7LN3QZZlWQAAAABJKsx3AwAAAIC1E9wBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3CEi7rjjjigtLY25c+e2ed133nlnHHzwwTF48OAYPnx4m9f/aa3LPgNAKszxQEfQOd8NgI5s1qxZcfbZZ8dee+0VJ598cnTv3j3fTcq7mpqauOKKK2Lq1KlRXl4epaWl8b3vfS9GjRqV76YBQKuZ4xtbsWJF/Pa3v40XX3wxXn755Vi2bFn8+Mc/jiOOOCLfTYMOQXCHiBg3blwceuih0bVr1zat95lnnon6+vo499xzY5tttmnTutdXZ511Vvz1r3+NiRMnxrbbbht//vOf4+STT44bb7wxqU8rAOgYzPHtY8mSJfGrX/0q+vfvH6WlpfHMM8/ku0nQoQjuEBGdOnWKTp06tXm9ixYtioiI4uLijy2XZVlUV1d3+HfrX3rppbj77rvjBz/4QZx44okRETF+/PgYO3Zs/PSnP40//vGPeW4hAB2NOb599O3bN5544ono06dPvPzyy3HUUUflu0nQofiOO0Tz3wV7+eWX48QTT4zddtsthg4dGmPGjImzzz671XWOGTMmrrzyyoiIGDlyZJSWluZ+HzNmTJxyyinx+OOPxxFHHBFDhw7Nhdbbb789Jk6cGCNHjowhQ4bEl770pfjDH/7QpP6P1rfmds8666xGy15//fWYOHFiDB06NEaPHh1XXXVV1NfXt7ovbeXee++NTp06xbHHHptb1q1btzjqqKNixowZ8d5777V7mwDo2Mzx7aNr167Rp0+fdt8ubCh84g7NWLRoUZx44onRu3fvOPnkk6OkpCTmzp0b999/f6vrOOecc+LOO++M+++/Py688MLYaKONorS0NLf+rbfeiv/4j/+IY489No455pjYbrvtIiLi5ptvji9+8YsxZsyY6Ny5czz88MNx0UUXRZZl8dWvfvUT9+WDDz6IiRMnRl1dXZx88snRo0ePuOWWW6Jbt26tenxNTU0sX768VWU32WSTj13/6quvxrbbbhtFRUWNlg8dOjS3vl+/fq3aFgB8Gub4D7XlHA+sW4I7NGPGjBmxbNmy+O1vfxs77rhjbvmZZ57Z6jr233//ePXVV+P++++Pgw46qMmEN3v27Ljuuutir732arT897//faPT6SZMmBAnnnhiTJky5VNN6tdee20sXrw4br311lxA/vKXvxwHHnhgqx7/l7/8pdWfQsycOfNj13/wwQfNvhvfsGzBggWt2g4AfFrm+A+15RwPrFuCOzSj4ftqjzzySAwcODC6dOnS5tvYaqutmkzoEdFoQq+oqIja2toYMWJEPPHEE1FRUdHid+nW9Oijj0ZZWVluQo9Y/a75YYcd1uzpeWvac889Y8qUKZ9om2tTVVXV7MWBGj4ZqKqqapPtAMDamOM/1JZzPLBuCe7QjBEjRsRBBx0Uv/zlL+OGG26IESNGxP777x+HHXZYm12Vdquttmp2+d///ve48sor44UXXojKyspG6z7NpP7uu+/GTjvt1GR5w2l7Lenbt2/07dv3E21zbbp37x41NTVNlldXV+fWA8C6ZI7/UFvO8cC6JbhDMwoKCuK///u/44UXXoiHH344Hn/88TjnnHNiypQp8ac//Sl69uz5mbfRXEidM2dOfOMb34jtt98+zjrrrOjXr1906dIlHn300bjhhhtadbGZurq6z9y2j6qqqoqKiopWlW3pojR9+vSJ999/v8nyDz74ICLCiwcA1jlz/Ifaco4H1i3BHT5GWVlZlJWVxZlnnhl33XVXfP/7349p06bF0UcfvU6299BDD0VNTU38+te/jv79++eWP/30003KbrzxxlFeXt5oWU1NTS4EN+jfv3/Mnj27yePfeuutVrVp2rRpbfb9t4EDB8bTTz8dy5cvb3SBuhdffDEiIgYNGtSq7QDAZ2WOb9s5Hli3BHdoxrJly6KkpCQKCgpyyxpCZXOnereVhvvMZlmWW1ZRURG33357k7Kf+9zn4rnnnmu07JZbbmnybvzee+8dN954Y7z00ku578AtXrw47rrrrla1qS2//3bwwQfH9ddfH3/6059y93GvqamJO+64I3baaSdXlAdgnTPHf8h33GH9IbhDM/785z/HzTffHPvvv39svfXWsWLFirjllluiqKgoRo8evc62O2rUqOjSpUt861vfiuOOOy5WrFgRt956a2y66aZN3mU/+uij44ILLojTTjst9thjj3jttdfiiSeeiN69ezcqd9JJJ8XUqVPjpJNOiokTJ+ZuFdO/f/9WvXvelt9/22mnneLggw+On//857Fo0aLYZptt4s9//nPMmzcvLr300jbZBgB8HHP8h9r6O+6///3vo7y8PHeXmIcffjjmz58fERFf+9rXPvF3+IEPCe7QjBEjRsTLL78c06ZNi4ULF0ZxcXEMHTo0fvrTn8bnPve5dbbd7bffPv77v/87Lr/88pg8eXJsttlm8ZWvfCU22WSTOOeccxqVPeaYY2Lu3Llx2223xeOPPx677LJLTJkyJb7xjW80Kte3b9+46aab4pJLLolrrrkmevXqFccdd1z07ds3zj333HXWl7W57LLL4vLLL4///d//jWXLlkVpaWn85je/iV133bXd2wLAhsccv+5cf/31MW/evNzv9913X9x3330REXH44YcL7vAZFGQfPV8HAAAASEphvhsAAAAArJ1T5eFTWLp0adTW1q51fadOnWKTTTZpxxYBAG3BHA+kyKny8Cl87Wtfi2eeeWat67fccst46KGH2rFFAEBbMMcDKRLc4VP4v//7vyb3V/2obt26xS677NKOLQIA2oI5HkiR4A4AAAAJc3E6AAAASFirL05XV1cfixevaLMNFxYWxCab9IzFi1dEfb0P/dfGOLXMGLXMGLWOcWqZMWrZx41Rnz7p3cPY/N429Fu/O7oNsc8R+q3frbeu5/i8feJeWFgQBQUFUVhYkK8mrBeMU8uMUcuMUesYp5YZo5Zt6GO0ofZfv/W7o9sQ+xyh3/qdDqfKAwAAQMIEdwAAAEiY4A4AAAAJE9wBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3AEAACBhgjsAAAAkTHAHAACAhAnuAAAAkDDBHQAAABImuAMAAEDCBHcAAABImOAOAAAACRPcAQAAIGGCOwAAACRMcAcAAICECe4AAACQMMEdAAAAEia4AwAAQMIEdwAA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bMdvfvO/MWvWW9GvX/82a0dr9/2G9bvuuns8++xT62Q8UhlrAIAGBVlrUltE1NXVx+LFK9psw/fe+5c466zvt1l90GD8+COjrGznuOii8yLLsigoKIwsq2/xcQUFBbk3Jlr7mI/q0aNHVFVVR0QWJSUlMWDAwHjhhRlRW1vTqscPG7ZLvPTSC1FUVBQDBgyMf/7ztVi+fHmcf/7FMW7cEXHnnbfHxRefH127do3KyspG7Y1Y/UZKw5slnTp1irq6uoiI6Nate1RXV0VERPfu3aOqavXPXbp0jbKyYU2283Ea2tBcG7MsW+u6luptqe7WPL4t6uzcuTB69+4ZS5asiFWrPtnzvy77sy7G5tNoaEdxcXEMGDAwZs58tU3a0VL/1lz/f//3UlRWVkaPHj1iyJChbToebTHWH7cf9elT/Jnaty609fzeuXNhzJ37Zhx88MFx8823x6BBg9us7pR9muPHq6/+I77ylSNjs8ItoktBt3XcwrZTm1XHwvr56127Wb817HftfVxpy9cG65OO2u+G4+7a9qPP0u91Pcfn7VR5oZ1P4qyzJuU+9f+ooqKiKCgoiEMOOSS37M47b48LLzw3IiL22+/AaHjY5ptv0Wzd++13YER8eDbByJGjoplNRd++mzf6vaE9++wzJgoKCqKysjIX9q+77ndxwgknNwrthYWFsdtuIxvVMWrU6Cgs7BSbb75FzJjx9xg5clT89a+PxrXX3hh//eujcfjhR8SPfjQpnnpqelx88fmx334HRE1NTRxxxNFx2WWX5+rZaaeyqK+vj379+scWW/SLurq62G23kdGnT9+orq6KzTffPI488sioqamJgoLCKCoqjtramjjxxFMabWfOnNnNjlHE6k8hL774/Bg37ogmbbzoovPiRz+a1Oy6luptqe7WPL696szHtvPZj+ba8eUvHxnPPfdcXH/9TW3Sjpb617DvN6w/77yLorq6OrbddruoqamJSZN+1GbjkcpYAwCsKYlT5emYPvrpbmsVFBREQUFB1NfXN/pE+be/vTqKi4ujqqoqamo+DMN33DEtjjrqsNhmm22ipKQkKisro7a2NgoKCqK4uCS23HKr6NKlS3Tr1i323//A+J//uSkiIrp27RrdunWL6uqa2HLLLaNr1665eisqKqJLly6RZVl07949Vq6sjFWramOzzfrEggXvR8TqEN658+p6t956mygqKo4VK1ZE586donv37nHPPXfFc88909Cr6NKlSxQWFsSKFcsjoiAiVvdr2bIlUVRUFJtuumm8//78WLp0aXTv3j03fj/84bnx4IP3xVVXXRFFRUWxxRb9o6ioKH74w/Pim9+cGBERxcUlMW/evIiIGDNm/8iyiD/84aZYsWJ59OnTJz74YEFstlmfmDx5ctx111+ioCDi9tv/EgcdtE9cddUVcdNNf8pt5847b4vTT/+PZp+bqVNvz227W7dujdp4993/GwUF0ey6luptqe7WPL696szHtvPZj+bacfbZk/51dsmKNmlHS/1r2Pcb1k+densUFxfHjTf+MQ477MDcdttiPFIZ647krbfezHcT2k2nToVRUtIjyssro66udZ/SbEjjA22lvf9uPs3fdkfQUfu9Ph93BXfWmY8G7DV17tw5Vq1aFYWFhZFlWS6gd+nSJSIi9/3yurq6qK+vj4qK8thxx51i1qw3YsmSxZFlWXTu3Dn69u0bAwcOivfeey8GDtwh3njj9ViyZHEUFBREaenAWLBgfvTsWRSf//wXYtGihdG5c+eoq6uLoqLi+PznvxCzZr0RCxa8H0VFxbFkyeLo1KlTLFz4QfTsWRQRkStTXr4sFi9eFJ07r/6TKSwsjKKi1fUuWPB+DBw4KF58cUau3nffnRcLFiyIgoKCKCoqzvVr4cKFUVy8+jSa5csrYuHChVFaOjDeeWdObtsf1b1799z6AQNW92fAgIHRrVu3WLBgQRQXl8TAgYPi5ZdfjE6dOsWiRQsjIv5V18JcPYsXL44ePXpEUdHqfm2++eb/ulbAgkbbeffdeWt9zt59d15u22u2saHe5ta1VG9Ldbfm8e1VZz62nc9+tEc7Wqq3Yd9vWN9QfuONN2603bYYj1TGuiM555z/l+8mAB2M4wobKsGddaZr165r/cR91apVERGNLmAXEblPy7Msi9ra2lygLy4uiZkzX42qqqrcslWrVsX778+P1157NXbeuSwefvjhf52uvnr9zJmvxfjxR8aKFctj5sxXY+zY8bntLl9eEa+99kpUV9dE376bx/LlFZFlWaxatSo226xPvP76zMiyLGbOfPVfn7ivik022TTmz38vIlYH9+XLl8drr70aX/7ykfG3vz0Rq1bVxfLlFTFz5qtx1FHHxrvvzov589/LfYJfWFgQ/fsP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+93vfpeNGDEiO/7443Nlnn322WzQoEHZpEmTsieffDL7xS9+kZWWlmb33HNPo7omTZqU7bLLLtmtt96aPfbYY9m//du/ZXvttVdWXl6eK9PaObC1+25qOtoc397HmRRddtll2R577JENGDAge+mll3LLO2K/r7rqqmzYsGHZ1VdfnT399NPZvffem11wwQXZ8uXLsyxr22NBKp566qls4MCB2VlnnZX97W9/y+6+++7swAMPzPbff/+ssrIyV259f75Tfe25LrXU55kzZ2ajRo3Kfv7zn2ePP/549sADD2T/9m//lu20007ZG2+80ajs+tLnLGvdc92gsrIy23fffbM99tij2XIp9rtdg/tvfvObrKysLFuyZElu2R//+Mds0KBB2fz589uzKetcQ3BftGjRWssceOCB2b//+783WnbsscdmJ510Uu73559/PhswYED2+OOP55bNmjUrKy0tze6+++7cskmTJmX77rtvVl1dnVv2s5/9LBs+fHijZflWV1eX+/mHP/xhs38o7T0uVVVV2c4775z97Gc/y5Wprq7O9t133+yCCy749J39lFozRhMmTMhOPvnkj62nI49Rc39X5513Xrbzzjvnxm9D349aM0Yb+n7UnD/96U/ZgAEDcnPSCSeckB177LGNyvz7v/97dsghh+R+f++997JBgwZlf/zjH3PLlixZkpWVlWXXXHNNbllr58DW7Lsp6mhzfHsfZ1LzxhtvZGVlZdnNN9/cJLh3tH7PmjUr22GHHbJHHnlkrWXa8liQikmTJmVjxozJ6uvrc8uefPLJbMCAAdmzzz6bW7a+P98pvvZc11rq84oVK7KVK1c2WrZ8+fJsxIgR2Y9+9KPcsvWpz1nWuue6weWXX5599atfbbZcqv1u11PlH3vssRg5cmT06tUrt+yQQw6J+vr6+Nvf/taeTcm7d955J95+++045JBDGi3/0pe+FE8++WTu1MLHHnssSkpKYtSoUbky22+/fQwaNCgee+yx3LLHHnss9ttvv+jatWujusrLy2PGjBnruDetV1j48btcPsbl+eefj+XLlzfaZteuXeOAAw5oVFd7aWmMWqsjj9Emm2zSZNmgQYNi+fLlsXLlSvtRtDxGrdWRx6g5DfNTbW1t1NTUxNNPPx0HH3xwozJf+tKXYtasWTF37tyIiHjiiSeivr6+UblevXrFqFGjmoxRS3Nga/fdFHW0Ob69jzOpueSSS+K4446L7bbbrtHyjtjvO+64I7baaqvYe++9m13f1seCVKxatSp69uwZBQUFuWXFxcUREblTfTvC853ia891raU+b7TRRtGjR49Gy3r27Blbb711o9PB16c+R7T+NfScOXNiypQpcd555zW7PtV+t2twf/PNN2P77bdvtKykpCT69OmT9Pd/PouxY8fGoEGDYr/99ourr7466urqIiJy/V1zQvz85z8ftbW1ue8Xvfnmm7Hddts1OqhGrN55GupYuXJlvPfee03Gdvvtt4+CgoL1amzzMS4N/69Z7vOf/3y8++67jb7flpJnnnkmysrKYscdd4wJEybEs88+22j9hjZGf//732PzzTePoqIi+9FafHSMGtiPIurq6qK6ujr+8Y9/xK9+9asYM2ZMbLXVVjFnzpyora1ttr0R0ahfm266aWy88cZNyn30+NuaObC1+26KNoQ5fl0dZ1Jz7733xj//+c849dRTm6zriP1+8cUXY8CAAXHVVVfFyJEjY8iQIXHcccfFiy++GBHR5seCVBxxxBExa9as+J//+Z+oqKiId955J37+85/HDjvsEDvvvHNEdMzne01ek69WXl4er7/+eqO2d9Q+X3rppTFu3LgYOHBgs+tT7Xe7Bvfy8vIoKSlpsnzjjTeOZcuWtWdT1rk+ffrEaaedFpMnT45rr7029t5777j88svj0ksvjYjI9XfN8Wj4vWF9eXl57t3Pj/romDVcSGnNurp27Ro9evRYr8Y2H+NSXl4eXbt2jW7dujXZZpZlSY7frrvuGueee25cd911MXny5KisrIzjjz++0bt7G9IYPffcczFt2rQ44YQTIsJ+1Jw1xyjCftRg3333jaFDh8YRRxwRffr0iZ/97GcR8dn3o5KSkkZ9as0c2Nptpqijz/Hr8jiTksrKyvjJT34SZ555ZqM3+Rp0xH5/8MEH8cQTT8TUqVPjggsuiF/96ldRUFAQJ5xwQixatKjNjwWpGD58ePzyl7+Mn/3sZzF8+PDYf//9Y9GiRXHttddGp06dIqJjPt9r8pp8tf/6r/+KgoKC+MpXvpJb1hH7/NBDD8WMGTPijDPOWGuZVPvduc1rJCIi9tprr9hrr71yv++5557RrVu3uPHGG+Nb3/pWHltGR3D66ac3+n2fffaJsWPHxlVXXRXXXnttnlqVH/Pnz48zzzwzdtttt5g4cWK+m5OktY2R/Wi1a665JiorK+ONN96IX//61/Gtb30rpkyZku9mkZAN6Tjz61//OjbddNM48sgj892UdpNlWaxcuTKuuOKK3CdwO+20U4wZMyZ+//vfx5577pnnFq4bzz//fPzgBz+IY445JvbZZ59YunRpXHXVVXHyySfHH/7wh+jevXu+m0g7uf322+OWW26Jn/zkJ7HFFlvkuznrTHV1dfznf/5nnHbaac1+HSp17fqJe0lJSZPb7ESsfidrzdOKOqJDDjkk6urq4tVXX831d83xKC8vj4jIrS8pKYnly5c3qeujY9bwjtCaddXU1ERlZeV6Nbb5GJeSkpKoqamJ6urqJtssKChYL8Zvo402ir333jv+8Y9/5JZtCGNUXl4e3/zmN6NXr15x5ZVX5r7bZD9qvP3mxqg5G+p+NHDgwBg2bFgcffTRcdVVV8XTTz8d999//2fej8rLyxv1qTVzYGu3maKOOse3x3EmFfPmzYvrr78+Tj/99KioqIjy8vLcNTFWrlwZK1as6JD9LikpiV69ejU6bbZXr16xww47xBtvvNHmx4JUXHLJJbH77rvHWWedFbvvvnscfPDBcc0118Qrr7wSU6dOjYiOuZ+vaUN/Tf7oo4/G+eefH9/5znfiy1/+cqN1Ha3PN954YxQWFsahhx4a5eXlUV5eHrW1tVFfXx/l5eW56xmk2u92De7Nfc+loqIiPvjggybfD+joGvq75ni8+eab0aVLl/jc5z6XK/fWW281uR/gW2+9latjo402in79+jWpq+Fx69PY5mNcGv5/6623mmyzf//+6+07zh19jKqqquKUU06JioqKuO666xqd0mQ/Wu3jxqi1OvoYram0tDS6dOkSc+bMia233jq6dOnS7H4UEY36tXDhwianxa35ne/WzIGt3XdT1BHn+PY6zqRi7ty5UVtbGyeffHLsuuuuseuuu+bOEpw4cWIcf/zxHbLfX/jCF9a6rrq6us2PBamYNWtWk+/4brHFFtG7d++YM2dORHTM/XxNG/Jr8hdeeCHOOOOMGD9+fLOnjne0Pr/55psxe/bsGDlyZO4Y95e//CVmzZoVu+66a9x+++0RkW6/2zW4jx49OqZPn557Byti9QVQCgsLG121r6OaNm1adOrUKXbYYYf43Oc+F9tuu23ce++9TcqMHDkyd3XC0aNHx7Jly+LJJ5/MlXnrrbfilVdeidGjR+eWjR49Oh588MGora1tVFdJSUkMGzZsHfes7eRjXHbeeecoKiqKe+65J1emtrY27rvvvkZ1pWzlypXxyCOPxI477phb1pHHaNWqVfG9730v3nzzzbjuuuti8803b7TeftTyGDVnQ9uPmvPiiy9GbW1tbLXVVtG1a9fYbbfd4q9//WujMtOmTYvPf/7zsdVWW0XE6q9CFRYWxn333Zcrs2zZsnjiiSeajFFLc2Br990UdbQ5vr2PMykYNGhQ3HTTTY3+nX322RERcdFFF8UFF1zQIfu97777xtKlS+PVV1/NLVuyZEn84x//iMGDB7f5sSAV/fv3j1deeaXRsnnz5sWSJUtiyy23jIiOuZ+vaUN9Tf7GG2/EKaecErvvvntcdNFFzZbpaH3+5je/2eQYt+eee8aWW24ZN910U4wZMyYiEu53m99g7mMsXbo0GzVqVDZhwoTs8ccfz2677bZs+PDh2UUXXdSezWgXJ5xwQnb11VdnjzzySPbII49kkyZNykpLS7NLL700V+auu+7KSktLsyuuuCJ76qmnsvPPPz/bYYcdsueff75JXXvvvXc2bdq07MEHH8zGjh2bHX744VltbW2uzNtvv52VlZVlp512WjZ9+vTshhtuyAYPHpxdd9117dbn1li5cmV2zz33ZPfcc082YcKEbO+998793nDP3HyMy9VXX50NGTIku+GGG7Lp06dnp512WjZs2LBszpw5635Q1tDSGD377LPZKaeckt12223Zk08+mU2dOjUbP358Nnjw4OzFF19sVFdHHaPzzjsvGzBgQHb99ddnM2bMaPSv4b6ZG/p+1NIY2Y+y7NRTT81+/etfZw899FA2ffr07Prrr89GjRqVHXbYYbn96Nlnn80GDRqUXXDBBdlTTz2VXXHFFVlpaWk2bdq0RnVNmjQpGz58eHbbbbdljz/+eDZhwoRsr732ysrLy3NlWjsHtnbfTU1Hm+Pb+ziTqqeeeqrJfdw7Wr/r6uqyI488Mtt///2zu+++O3vggQeyY445JhsxYkS2YMGCLMva9liQihtuuCEbMGBAdvHFF2d/+9vfsrvvvjsbO3Zstscee2SLFy/OlVvfn+9UX3vms88LFy7MRo8ene21117Z9OnTGx3fXn/99fWyz63pd3PWdr/3FPvdrsE9y7LsjTfeyL7+9a9nQ4cOzUaOHJn95Cc/WSc3qM+3iy++ODvwwAOzoUOHZkOGDMnGjh2b3XjjjVl9fX2jcrfcckt2wAEHZIMHD87Gjh2bPfTQQ03qKi8vz84+++xs+PDhWVlZWfbd7343mz9/fpNyf//737Ojjz46GzJkSDZ69Ojs6quvbrK9fHvnnXeyAQMGNPvvqaeeypVr73Gpr6/PfvOb32SjR4/OhgwZkh199NF5e5Hc0hi9/fbb2QknnJCNGjUqGzx4cDZ8+PDsm9/8ZpOwlWUdd4z23XfftY7RO++8kyu3Ie9HLY2R/Wj1mwjjxo3Lhg0blpWVlWWHHnpodvnll2cVFRWNyj3wwAPZ2LFjs8GDB2cHHHBAduuttzapq7q6OvvJT36SjRw5Mhs6dGj2jW98I3vjjTealGvtHNiafTdFHWmOz8dxJkXNBfcs63j9XrRoUfb9738/22WXXbKhQ4dmJ5xwQpMA05bHghTU19dnf/jDH7LDDjssKysry0aNGpWdeuqpzbZ3fX6+U33tuS611OeGv+vm/k2YMKFRXetLn7Os9c/1R60tuKfY74IsW+PkfQAAACAZ7foddwAAAOCTEdwBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3GEDVFlZGVdeeWU8/fTT+W4KANCGzPHQMQnusAGqrKyMX/7yl/HMM8/kuykAQBsyx0PHJLgDAABAwgR3SMi8efPiwgsvjIMOOiiGDh0au+22W5x++ukxd+7cRuXuuOOOKC0tjeeeey4uueSS2H333WP48OFx/vnnR01NTZSXl8cPfvCD2HXXXWPXXXeNyy67LLIsi4iIuXPnxsiRIyMi4pe//GWUlpZGaWlpXHnlle3eXwDYUJjjgc+ic74bAHzo5ZdfjhkzZsShhx4aW2yxRcybNy9uvvnmmDhxYtx9993Ro0ePRuUvueSS2GyzzeK0006LF198Mf70pz9FcXFxzJgxI/r16xdnnnlmPPbYY/Hb3/42BgwYEOPHj49NNtkkLrzwwrjwwgvjgAMOiAMOOCAiIkpLS/PRZQDYIJjjgc+iIGt4iw7Iu6qqqujevXujZS+88EIce+yxMXny5Bg/fnxErH43/uyzz44999wzrrvuuigoKIiIiOOOOy5X/qKLLoqIiLq6uhgzZkxsvfXW8bvf/S4iIhYvXhwjR46M7373u3Haaae1XwcBYANljgc+C6fKQ0I+OqHX1tbGkiVLYuutt46SkpJ45ZVXmpQ/6qijchN6RMTQoUMjy7I46qijcss6deoUQ4YMiXfeeWfdNh4AWCtzPPBZOFUeElJVVRVXX3113HHHHfH+++/HR0+IqaioaFK+f//+jX4vLi6OiIh+/fo1Wb5s2bJ10GIAoDXM8cBnIbhDQi6++OK444474utf/3qUlZVFcXFxFBQUxJlnnhnNfaulsLD5k2bWthwAyA9zPPBZCO6QkL/+9a8xfvz4OOuss3LLqqurm30n/rP46Kl3AMC6Z44HPgtv2UFCOnXq1GTZ7373u6irq2vT7TRcuba8vLxN6wUAmmeOBz4Ln7hDQvbZZ5+YOnVqFBUVxRe+8IV44YUXYvr06dGrV6823U737t3jC1/4Qtxzzz2x7bbbRq9eveKLX/xiDBgwoE23AwCsZo4HPgvBHRJy7rnnRmFhYdx1111RXV0dO++8c0yZMiVOOumkNt/WJZdcEhdffHH8+Mc/jtra2vjud79rUgeAdcQcD3wW7uMOAAAACfMddwAAAEiY4A4AAAAJE9wBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3AEAACBhgjsAAAAk7P8DpMu6HSPKjuMAAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":26},{"id":"fc866dac-b421-422b-8078-2527b9dfc53f","cell_type":"code","source":"sns.catplot(data=df,x='amt',col='is_fraud',kind='strip',sharex=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:19.570926Z","iopub.execute_input":"2026-01-17T19:34:19.571489Z","iopub.status.idle":"2026-01-17T19:34:27.296504Z","shell.execute_reply.started":"2026-01-17T19:34:19.571460Z","shell.execute_reply":"2026-01-17T19:34:27.295797Z"}},"outputs":[{"execution_count":27,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAA+4AAAHjCAYAAAC95UVJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdA5JREFUeJzt3Xl8FdX9//H3JLlZZCmrNSkEkZKorCqCAcUatbUVlAoBtdRCAO33a9GGr79WAbW2oHUpSG1tBQXaaq0sLsWli6auBLFV0WorqwQNKgIawOyZ3x/xXu8yM3fukmRy83o+Hj5a7p07d2Yyd875nOVzDNM0TQEAAAAAAE9Ka+8DAAAAAAAA9gjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AFJDz/8sAoLC/Xee+8lfd+PPvqozjvvPA0ZMkSjRo1K+v7j1ZrnDACAV1DGA0gFGe19AEAq27Fjh6677jqdccYZuvzyy5Wdnd3eh9Tu6uvrtWzZMj322GOqrq5WYWGhfvjDH2rcuHHtfWgAALhGGR/qyJEjuu+++7Rlyxa9+eab+vTTT3XLLbfooosuau9DA1ICgTsg6cILL9T555+vzMzMpO538+bNam5u1oIFCzRgwICk7rujuvbaa/XXv/5Vl112mY499lg98sgjuvzyy/W73/3OU70VAIDUQBnfNg4ePKhf//rXysvLU2FhoTZv3tzehwSkFAJ3QFJ6errS09OTvt/9+/dLkrp16+a4nWmaqqurS/nW+jfeeENPPPGEfvSjH2nWrFmSpEmTJmnChAm644479Kc//amdjxAAkGoo49vG0UcfrRdffFF9+/bVm2++qSlTprT3IQEphTnugKzngr355puaNWuWxowZo+HDh6u4uFjXXXed630WFxfrrrvukiQVFRWpsLAw8O/i4mJdccUVeuGFF3TRRRdp+PDhgaB1/fr1uuyyy1RUVKShQ4fqW9/6lv74xz9G7D94f+Hfe+2114a8tm3bNl122WUaPny4xo8fr7vvvlvNzc2uzyVZ/vKXvyg9PV3Tpk0LvJaVlaUpU6botdde0969e9v8mAAAqY0yvm1kZmaqb9++bf69QGdBjztgYf/+/Zo1a5Z69uypyy+/XN27d9d7772nv//97673MX/+fD366KP6+9//rp/85Cc66qijVFhYGHh/165d+r//+z9NmzZNU6dO1cCBAyVJDz74oAYPHqzi4mJlZGToH//4h2666SaZpqnvfOc7MZ/Lvn37dNlll6mpqUmXX365cnJytGbNGmVlZbn6fH19vQ4fPuxq2169ejm+/5///EfHHnusunbtGvL68OHDA+/n5ua6+i4AAOJBGf+FZJbxAFoXgTtg4bXXXtOnn36q++67T8OGDQu8XlZW5nof55xzjv7zn//o73//u77xjW9EFHi7d+/WvffeqzPOOCPk9fvvvz9kON306dM1a9YsrVq1Kq5CfcWKFTpw4IDWrl0bCJC//e1v6+tf/7qrzz/++OOueyHeeecdx/f37dtn2Rrvf+2jjz5y9T0AAMSLMv4LySzjAbQuAnfAgn++2rPPPqvjjz9ePp8v6d/Rr1+/iAJdUkiBfujQITU0NGj06NF68cUXdejQoahz6cI999xzGjlyZKBAl1pazSdOnGg5PC/c6aefrlWrVsX0nXZqa2stkwP5ewZqa2uT8j0AANihjP9CMst4AK2LwB2wMHr0aH3jG9/Qr371K61evVqjR4/WOeeco4kTJyYtK22/fv0sX//Xv/6lu+66S6+//rpqampC3ounUK+qqtKIESMiXvcP24vm6KOP1tFHHx3Td9rJzs5WfX19xOt1dXWB9wEAaE2U8V9IZhkPoHURuAMWDMPQL3/5S73++uv6xz/+oRdeeEHz58/XqlWr9NBDD6lLly4Jf4dVkFpZWakZM2bouOOO07XXXqvc3Fz5fD4999xzWr16tatkM01NTQkfW7Da2lodOnTI1bbRktL07dtXH374YcTr+/btkyQqDwCAVkcZ/4VklvEAWheBO+Bg5MiRGjlypMrKyrRhwwZdc801evLJJ1VSUtIq31deXq76+nr95je/UV5eXuD1l19+OWLbL33pS6qurg55rb6+PhAE++Xl5Wn37t0Rn9+1a5erY3ryySeTNv/t+OOP18svv6zDhw+HJKjbsmWLJOmEE05w9T0AACSKMj65ZTyA1kXgDlj49NNP1b17dxmGEXjNH1RaDfVOFv86s6ZpBl47dOiQ1q9fH7Ft//799c9//jPktTVr1kS0xp955pn63e9+pzfeeCMwB+7AgQPasGGDq2NK5vy38847TytXrtRDDz0UWMe9vr5eDz/8sEaMGEFGeQBAq6OM/wJz3IGOg8AdsPDII4/owQcf1DnnnKP8/HwdOXJEa9asUdeuXTV+/PhW+95x48bJ5/Pp+9//vi6++GIdOXJEa9euVe/evSNa2UtKSnTjjTdq7ty5Gjt2rP773//qxRdfVM+ePUO2mz17th577DHNnj1bl112WWCpmLy8PFet58mc/zZixAidd955WrJkifbv368BAwbokUce0fvvv6/Fixcn5TsAAHBCGf+FZM9xv//++1VdXR1YJeYf//iHPvjgA0nSd7/73Zjn8AP4AoE7YGH06NF688039eSTT+rjjz9Wt27dNHz4cN1xxx3q379/q33vcccdp1/+8pe68847deutt6pPnz665JJL1KtXL82fPz9k26lTp+q9997TunXr9MILL+iUU07RqlWrNGPGjJDtjj76aP3+97/XokWLtHz5cvXo0UMXX3yxjj76aC1YsKDVzsXObbfdpjvvvFN//vOf9emnn6qwsFC//e1vdeqpp7b5sQAAOh/K+NazcuVKvf/++4F//+1vf9Pf/vY3SdIFF1xA4A4kwDCDx+sAAAAAAABPSWvvAwAAAAAAAPYYKg/E4ZNPPlFDQ4Pt++np6erVq1cbHhEAAEgGyngAXsRQeSAO3/3ud7V582bb97/yla+ovLy8DY8IAAAkA2U8AC8icAfi8O9//ztifdVgWVlZOuWUU9rwiAAAQDJQxgPwIgJ3AAAAAAA8jOR0AAAAAAB4mOvkdE1NzTpw4EjSvjgtzVCvXl104MARNTfT6W+H6xQd1yg6rpE7XKfouEbROV2jvn29t4Yx5XtycN6cd6rrjOcscd6ct3utXca3W497WpohwzCUlma01yF0CFyn6LhG0XGN3OE6Rcc1iq6zX6POev6cN+ed6jrjOUucN+ftHQyVBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADwsoz2+9PwRE9r+Sw0pr1+uxp07Tlte3qLdOyo1YFC+ps6eqqLiIle7qCiv0Jp71zh+1s02XuZ0/B393AAAbefqS8r03zfeCXktPSNdTY1NysrJ0gWXTNSMq2e0z8G1k2SVo/797Ny6S+kZ6WpuatbAwcfGVafZ/t8dMptNmabZaf8ubaEt61Dh90djQ6PS0tLUUN8gwzCU2/8YlZaVqqi4KCnHleg+4v18It8b/NnefXtJhrT/owMaMChfI8aMCIkVLrlims6fcm5c39/edefW+P7wfYZfL+KD1mOYpmm62bCpqVkHDhxJ+AvbJWiPoqR0imMhVVFeoZVLVqpqz96Q1w3D0JSZkwM3a++je6mqcm/E5w3DkGma8mX6JCmmwjUjI009e3bRwYNH1NjYHNuJKbYfbEV5hRaVLY449gVL5kuS7Xvt/eNM9Bq1h7Z+kHfEa9QeuE7RcY2ic7pGfft2a6ejspes8t1v83ObdMs1t6q+viHqttHK33i1dsXS6hl+xtfHOf42rMpYScrrH9qp0PvoXpIp7d93IORYA4H2f3aoudn9by89PV0ypKbGppjPs0u3LvpSz+6BgMbqum1+bpPWrlynHe/s0oDjkt8hkszPhX+299G9VPNZrT7Z/4kkKbffMSqdV5r0+pld/Sq4Dmn1t473/Kzus3gFN+ZYnbPtfZ2fG3HfrF62Wn9+cIPqauqUlZOlYwcfqx3/3aHG+saIz/fs01M5Odn66IN9MgxDjQ2NihayBF/T4EaLDF+GGuob5Mv0qbGhUTKlpqbYfg/9jv2KPqj6UOnp6fb7MKSFSxYE/oZWsYNfeka6Lrrs24HnX6yNAMGNDeEND32O6aN/bXxVdTV1lt+9cOmCuO9xV/dX0HXoiBKp57R2GU/g/jl/5SHaDy1ZrIL+4II6UMnYWalBhQNVUjpFo888LWmBuNVnyi4t09a3tkW8XjC0QDJN2/eWPrAkzqvgTrRzbs1AorVaKtu6EYRgyx2uU3SJVNI7i84cuMcaNBiGocdf3xDy+ZVLVmrvex9IUkjPYLKPITiwiCWwt3uG37Bsgc6fcq7t88OujHWjcHih3gkbvdAuPh+9GFxXWbtyXegmLsszu7+Tm86UeMtQt/eGm8AmlvLC7d/eXzeM5ZqG11MOVx9ulTpszz499dmRz5SZ6dPh6iMyTVOGYUhS1IAa9kpKp6hwWKHlfRl8HyazQaZnn566/5k/RN3O6h53ey/n5edpxYblCR9reyBwD+LVwF2SjDRDZrN3Hz5jzy7SxmcqQl6LNxC3CrYvGjNZdbWRrXPZOdkyTdP2vfWb1kW8nixuCujWCrZaK8CO9e+SDASk7nCdnLVHo1NH1JkD93iC0+CGc8uKaYy9N4kEyIGvjKNsLRxWoD/8dYXt88OujE1Fbsozp79Teka6BhUeZ9mAEm8ZWlFeoVuu+bmrnlY3xx9LeXHhqEktvbQu+EdpOr1nGIbS0tP05dyjW72jCe0nOPhNxnMtWFZ2VtRGyuB7/IW/vaQ1965xfQxGmqHHX9sQfUMP8nLgTnK6IF4O2iVFBO1SSyvnmvvWWm6/e0el5euVNq8PGJRv+Xr+oHzH95KporxCZZeW6aIxk1V2aZlWLlkZsY3TOSfTmnvXtMp3x/p3AbyitX4TSB12zzcna1euU0V5hX69+G7rDUy5usf85UcyKrfxlK27t7e8vvGZjSHlWEV5S9ltV46mom1vb4s4/3BO90pTY5O2vrVNi+fdHPH5eMpQf6OQ2+HRySyPK8orXAftknPvtf890zTV1NhE0J7iqiqrAr+j7f/dkdR919XWWf7Gguvhc6f9UM8+9YJWLl2lRWWLY3u2mpH7c3oewJ12SU6H5HIKxK1+ZOHBdnASk3CGYWjq7KmSaWrxvJsjCpTD1Yd10ZjJSZszGNzb4vSAaIsgt7UCbLd/l86ovZO4wBmNTojG7vkWzZr71urgxwdt399lUT4FW71sdcTw4kTFWrYO+Gq+nn3qBd101aLAa/6K8YIl8zV19tSkzj32MrPZDAkMrEYvuLlXTNPUyqWrQsoFu3xCkqmK8oqQOeK7tr2rtPQ027m+dnr17aWyS8uSUhZZNXgCbvl/R63F30jp/92E1MP/vVU/mrUwrv3m9s+1rNf7nweSqO/FgR73FGAX8E2dPTUw/8gvEIh/zv+j2vrWtpAWYV+mTwVDC7Rg6QIVnXWaioqLtGDJfBUMLVB2Trby8vMktbQG2rXauRHcEnf7/Dtcf64tgtzWGmXg5u/SGQXfi4ncU2g9bTXyBh1XvM+xRBp/Ksorkh60S7GXrRdfPk2r77o/YvvginGGr/P1l/iD73Bu75WqyqqQcqGqcq9kRG5XW1OnxfNu1uplqwNlSUN9Q8xBu9V3RiuLKsorNGfiHE0YOVETRk7U9OLvavrZ39WEkRNbNegCksH//F25NHKUazT+eCBc6bxS21F6wT341PdiQ+DewTkFfOHBdnAg7mfXEtz3mL6Saer2a28PDG0pKi7S0geWaP2mderarUvEZ2IdMhseqLktXNsqyG2tANvN36UzYhi299HohGji7TGJ1vjT4JChvjV6NOMpW8cWF2nnO+9afmbrv7eq7NIyHZ3bN+nH2t569e0lI80ikg5SVVkVUSkvKi5SSemUuL6zZ++eys7JinjdNE09ev9jse/QaPmb5+XnWQYipmnqjvl3WAYWG5/ZqEVli1VVuVem2bKs3sH9B3Xw44MkbUOHkD8oXxXlFTYjWewVDC3Qig3LtXDpgpDn4cI7F6rorNNsR+nttZji4Q/oGVbvrPM1/aaAvPw8Hdh3QPn+oSVBAZ/VUGOnBCt2P6qqyqrA/7ca6paMIbNuK1t5+Xnq2r2rKndUWp5za/FXztbctzbp311UXMSQoDAMw/a+ouIi3bBsgdatWq8d/93Vpr9HpLaps6dq0Q8XRd/QQjzz6p0UDC2Iel/bPcOPKzxWb7/+X8vPBHpeDQXmf3Z4hjT3hit109yfRd105dJVEdfMnz0+1hETn+z/RJlZmZbvOTXyWCmZVaIZV30v8O8LR02y3M7fox8+7P/B5fE1HHXt3lV1tbVqsFgKDWgr/kbKNSseivmzI0aPkGT/PIx16lS02AME7h1S1+5dLZdYcJpLYnfTu/1RBQ/1c/pcLENm3VS2DMNoWVO1nQIDrwXYqTwHnLn/HcPYs8c6LnmFzi3eHpJEnvHxzqu3M3VWSdzHM2PudP149vWOPa15/fO0f9/+uIZwe0F2TrYkBRruxhYXKfuobNV+Vuv4OateNqkleH/kD4/GlMBNhtS7b6+EkrP5Mn368W0/jvhb+9f+thJeF5Kk3Tt2x/zd6RnpOlx9OObPAcmUlpamY/odo9uvvV11dQ7PI5vGxrUr1+qlp18MLKsZXie1y+uR2z83JEi3Y/V76+wYKu9Rvkyf7Xt2PZBuhxoHzys/fMh9wRH8vckYMms3XzY7J5sh5BZSfQ44w7CBji+eOZJupGek276X7GeE1Xxst772zTN0w7KWYaN2Pqz6UBdcMjHu72hv19xyjdZvWqelDywJlM9TZ14U/YMOo+mPKxgY0zHk9su13Z/TvRKssaFR+ryBJbheVF9b7/i58DrYgEEDXH1fMF8nzHXQ2RnOs0naRXNzcyBXldMooGmzSuTLtL5nqyr3xlYnNaRx54x1fB4EY9RlKAJ3DyoYWqC0NPs/jVVWeKclcIJv+vDgz5/kJS8/LxAs2yWa8H+vv9c3w5ehrJysiER2btkFalaVAqT+HHDm/gMd3949H8T8Gafyzq97j+627xUVF2nh0gXq2adnzN9txWo+dizGnj1WSx9Yorz+uZbvNzU2tUoyvbbgy/Sp6KzTIpaMGnryiZo2uyTQG28lt5/19ZCs6wNOPtr7ke295nZeufn5ajnByezqauuifj68DnbJ5VNdByFSSz2nsdHdsnRIJR6M3F16/eUtamyIfs+G10ktp8Sa0pbNbyjP4XkQjFGXoQjcPcbfw+i03qtdVng7wTe93Y+oa/eugWC5tGymbc9n8Pf5s7U21DdoxOjhMQdYBGqx8coc8NZckzM4ASINNwD8ao7UOL5fVFyk+5/5Q9K+L9EG0YryCu378OMkHY23RIz++vdW/Xj29Tp+eKHWb1qnhUsXRMYoRkuWaTv++oBVwrnALoLqJY0NjbYBdnOT+yk8pmnqzw9ucL299MW8Xkl69qkX9ODyNcrIyJAv0xe18SE7J0vpGemuRwUgdXTkRIVb/73N9fEH10md6q379x2Iui9GXUZirI4HBM8XGzF6uNaseMhyTXWpJYmKm6zwfuE3vZvgr6i4SFNmTtafH9ygupo6ZeVk6YJLLlDRWaep7NIyy8+vXblOhcMKY56H4rU55F7mhTng8eRRANB59OjVQwf326/HbqW5uTlqA6Db51xefm7MmZGtJNIg6s8ynor6HtPXdvTXn1asUVOT2TIiLyNDGRnpampq1sCCga6SWBYVF8kpNsjtd0xCc9rtxJprYMvmLZJa/s43XRWaUNEwDGX4MmznyNd+/l0xzecH2lksjQ7Bz2rHeqtpWr4XnkODDpxQ9Lh7xPpN6zR1VonWrlwXsaZ6ZlamCoe1LK8QnPlUck7w5i9A1qx4KFApcrMOs39NXH9hVldTp7Ur16qivMLx+1JlyLZXeWEOeKoP1weQmJwu9kOlnURrhHb7nCsts+/VjUUsDaL+UUgXjPq2ZnzrCq24o3Xm+XuFXT1g5zu7Aj3xjQ2Nqq2pU2NDY0zJ/pxGG370wT7Hz2bnZCe1J9uu99zfqGOVTd40TWXQm45OKrxO6lRvZbpsfOhx9wBTpiad+m3bFtjBJw7Skvt/ocbG5ois4r2P7mXbu2CaphrqG0J6RafOnqrF824OaT0L/6GtXGJd6Vi5dJVj9l4SSLSu1lyezi2vDNcH4E37P4o+/NFKtFVG2roC57ahIHwUkt1ScKniwL4DtvUAqzqMaZq6ff4dkilXK6GMGDPCto6R4ZDtPbCNL0NNNvPHu3TroiOHjjh+3s8wDIfM1+bnHRnW2eSbmpplGEaHHhqNzi07J1tNTU2OSyvm5edp3DljtWXzG7Z10mj11vau03ZEBO4eEG2Y1luv/UcTTrpQfY/pExKkx7L8jb9XdOkDSyx/KDJNlV1apt07KluyS1rYu2evFiyZbzsEkAQSra+9pxZ4Ybg+OqdUXgoxlcS7NFuylnSL1nPvRnpGuuvKYzK+ryPp1beXZQeAZD+c1l/HcTO1asvLW2y/O1pAnD8oXzvf2Wn7+S/1/FLUwN0wDA0eMjhQL7I6T/967naB/cCCgZo6q8Tys0BbsPudFAwtsB2iHqy2plZZDvkmpJbcWDOunhH1WJzqre1dp+2IGCrfQTTUNyQ8b8/fKxqeAEymGZJoxpbR8tmS0imRbwX12rdm8jK0Ly8M10fnk+pLIaaSqbNjy7AtJfcZsmvbuwnvo6mxyfW9FW2kQKrZ9/lw9WiJ5OxEm1oV7XoaaYblslr+e8huWbm8/Dzt/2h/1OPLys4KDNF1SphnmqZl0O4/jqLiIg0+8atRvw9oDVNmTrac6rHtrW2uG0ijdSoy0rJ9ELh3IvmD8i2Darc9Bv6lXGZcPUMLly6wzAZPBdtaqjRmsBIA2gO5FTqOouIi9ewd27JspmkmpdelorzCcWhnLNzeW3ZzsvPy86L2WHVEDfUNWjzvZklyTCTnZOu/t9qWg05z3BvqG9Tc1Bzxvb5Mn6bMnKKis06zbVwunVfquG+/8NFj0RLm+aVnpEeUh7EucQcky9N/fkY9eveIeD2ZI0AYadk+GCrfSRiGoRGjh1tmBHeVzCVsKRe74S1OFezOOhzGKhP7onmLtXDJgg55TRjahLZGboWOJdas8r5MX1IaM5M5bN3tvWWXN6Z0Xqluv/b2pB2Pl5im6Zjzxs382K1vbdOissXKy88NJBRcc++auEZMNNQ3aN2qdSocVuA8p9Zm6Huww58e0kVjJodMx3EzjcPn87WMYAxidSwjRg/XulXrGUKPVnXw49iewbFipGX7IXBPQYZhaMrMKdqyeUtIwbVmxUMR2/ozoFolfIlnSQa7CvaurbsCc+g72/zUlUstkv2ZLcn+Oss1ABJBboUOJsaYJDMr0zHojtZr6R85low58n5u763w4GzQ8QM1pXSKRo8fk7R5+15UVVmlsWcXadvb2yOC0KamJqWluxvQWVW5NylL5wV3EIQ3LvtHvO3eUanc/sdIMgJD/v11nx69e+jgxwcDy80FGhb652rcueMszzNYbU1tyL+Dc3L0PrqXevXpqd3bd0umqaLi0/Svja/GvAwd0B5yjspWY2OT0tPT1dTU5Hp5R7QOAvcUY6QZWrDEeuiyXeu/VcIX/5IMsf4w7Soq/uz2Umqs/R1Loqy9ez6wfv295K9HC6QiN6thwDtizaj92eHPHOc2O+0rfERTMsR6b/kDxYyMNPXs2UUHDx5RY2OzY4b0VLDxmQr17NNTOUfl6OMPPlZ9fb0kJW26QqysRkmE3x9VlXs/79yYrC0vbwmU4YerD8uqj7Jqz16tW7VeU2ZO1ktPb7TJMt8yasTfONC7b6+Q9ebDkwqn8j2B1PPTX12v4WNOUmNjc3sfCsQcd0/yZfqUl5+nvPw8+TJ9ysz0yTAMGYahvPw8lZROkS/TZ/nZ3H65tsG23fyugQUDkzZv2e2cro48PzVp8/iTNFIuVebPA3bIrdCx5PbPjfkzbuYfW2mNrO7++dKJqCiv0NqV65J0RN518OOD2rtnr47O69veh6JefXuF/LuivKJlKbowpmlq7cp1IWV4cKBttf2GBzeo5kiN7Tb+zom62jrHfQEdiS/TpzPPO729DwNBCNw9JDsnWwvvXKhHX3lEKzYs14oNyzX/jh+rvr5BpmkGspiuW7VeXbt1tdzHRx98ZBu4WQbVRsucrtuvu0MyTV1z8/8FMqrGw6qCneGzHtjRlvNTkxncxpooK7ffMdavx1G5DUcyQHQW4athELR71xlfHxfT9hm+DI0YMyKu72qNrO5bNtsvSeZWZ1omzjRNvb/buie6Ndjl5amqrNLqZaslfVE2Jms4em1NXcy5G4COLj09XeMHfUNzp/0wrnolHUvJR+DuEf6h6f711P03+Yo7IudHm6apTw58YrmfxvpGLSpbbPnjCA+q8/LzJLNlKJg/6FtUtlhzJs5J6McVXsG2W56lreanJju4jTVRVnBSPzevx4Js2wC85rVNsQW+zc3Njut3O4m3p95J8LM81orns0+9oLnTfshw6Fb05bwvKyPTukNg7cp1Ma2Wkwxkjkeqqq2pVW1Nrbb+e2tIvdnNc7E1OpZoCCBw94zc/rl6543/RtzkdvOpzCjjrFcuXWX5enBQ3bVbF8ttqir3atE86+A/Hu299neyg1u7iqJdQ0RRcVHE8nkL71yYlB5Dsm13HhRY6Ch2bt0Z0/ZpaWlx95y3xpJb/md5rBXPjc9s1I9mLdTWf29N6vF0BDFlSTdalsvzl4d5+XkxfVdVZZUa6yMT6vqtuW9tq4zEsJOM0XOA1/nrzW6fi8muezPCtAWBu0dUVVbFNB/OkHNFZW+UOVYV5RXa9vZ2+w1M++DfLX+gcft1dyi33zEhBXVbzk9NdnAbT0NE+CiE8JEV8T54Ym1E8CMI7FgosNCRpKe7WGI0SGNDo3qHzU92K3gkWbL4n+WxVjwfXN55hscnxJS6du8aKA/3f7Q/qbuv/DzhnJXsnGyVlE5JWmOPYRiac03io+eAjmDX1l2un4vJrnszwrQFgXsHFa1125R9YOgPAqLtI5Gs5+GBRtWevdq7Z2/Cc+jjEW9wayfRRFnJDMLiaUQgCGw7yWogocBCR9JQF3tW8Zqw5bRi4W8YtUvaGou8/LzAszzWiufuHbsT/v7OIvgaJnu6Q6++vWzLxmtuuUYzrp4RKMONtMQC+H7HfkVjzx6rPHrd0Qk01Ddo17Z3Ld8Lfy4mu+7NCNMWBO6pylREYLZ62WqVXVqmxfNudr2PeHkp0LAbSjli9PC495lIoqxkXpui4iJNmTlZ2TlZkqTsnCxNmTnZ8Xi89LdJZclsIKHAQkcS07BpfbGGdqKSsQzZuHO+SKwXa8VzwKABCX9/ZxF8Dd1Om8vLz1PPPj1dbRutgd1fhmdkJLYq8lXX/48kady5sSVk9GtZPYiVmdFxpKVbh47hz8VkT5NNdkNAR0Xg3kkEL3/itlKVyLwtLwUa/uA23LpV69ullzmZ18a/5FDt55lza2vqop6Xl/42qSyZDSQUWOhIYg3ckxG0S1LW5w2YiVi3al3g+RlrxfOSy5M/3z4lhC9mE3YNi4qLlJdvX9/wZfpaVqcxTVf3yr4P9gUS1O3evlv5x/XX1FklEQ3aFeUVto09vkyfxp49Nup3maapjc9sjHvpv6rKKjU3J2ltWKANNDc1u3ouJnsZ1/bOl+UVBO4pIjsnO/DDsFsqJVZusp7bDQWOFmgkawhxRXmF5k77oe1yFf7vWbdqfcRn26uXOZlBWDzBIUFg20hmAwkFFhDdBZdMTHgfwc/PWCueY88eq1vv/ZkKhyU+BLujM9KMQCLWhUsWRL2GpWX29Y2G+gY1NjS6Xh+9ob4h7uRZwft4d9uuqN/1u1894JjbwE19rKmxKeo2gFcMLBjo+rmYzGVck90Q0FEZpsum8aamZh04cCThLzx/xISE99GZfGVAnvbt/Vj19fWO2wVnKb/otMmxr11qSHn983Rg3wHlD8rX1NlTo/4Y/EOBQ3ZjGFqwZL4kafG8m0N6XgzD0IKlCyTTtP1cUXGR60N2+v6i4iLL98Nl52Rr/ab4WsrjVVFeYXttYn0AXTRmsupqI//W4eeVkZGmnj276ODBI3rhby8l7ftTTfB1amxsTmhfZZeWWS4JVTC0oCVBYYwqyiu05r61qtxR6fo32hqSeY1SldM16tu3Wzsdlb1kle9+8ZTzhmE49tQ/seVx2/cCvas7KnVUl6MSXm/bl+nTo688EvPnwp+z0cqfVBVveXLBKRe2ahAb/uy1Kz/9ot2TkpRzVI6azWbbOpcvM0MNDhnw4/lOoD3FuipS8PN5gL/uEkNdvz32nUg9p7XLeCbWeJQv06e+x/TVxx/tV1pGmuQQtwcn05Fia7010gwNPnFwXEGAU2/v0geWaMGS+ZaBRtmlZbafi+UH5/T9RcVFrtZxbY9eZn+rYTKCsAGD8i2DQ6fzSub3w97U2VMtG0ji7SUvKi5KWmEHeE1u/1zb5U+dhDfQOgVibjXUN6iivCKh31tRcVGnC8IMw9DgIbHXJ/yV79bued61dZfKLi0LVPJ79+3luhffznGFx6qhocl2CcBYgnYp9mkmQJsyJMVwj4Y/n/2jX2LtqGvrfXsZgbsXGS0VB7eVmAP7DgQKvp1bd7ku/Fp6p+PvZY2WWdIu0LAbQhxeqEZrOYv2/dHWcW3PocZ21ybW1kO3waF/Dt6Od3ZpwHEt+42n1xfu0UACuDfunHFau9J6io9TQjI3DbTxiLUhOVxFeYUyfBlJSZjXERiGoRt+uVCjx4+J6XNuRsYlS0N9Q6Che+tb2yLm3ofL7Z+rvXv2OgbTM+ZO1+HDNbrpqkXJPFTAm8zYno3ROtgS0Zr79jICd48wDENZ2VnKH5Svw58eiqkVuFffXtELPkPq2bunPtn/iWRIuf1yVTqvNO4gwimpS7RebLte4vBC1arlzB/Y7tr2btTvt/ueeHsFWls8rYdugsPO2irpBfSSA9GlpaXppadftH3/nAvOtn0vWgNtvLa9vS3uXveNz2zsFMPkfZk+paena8BX8zW77HsaPuakkGGlbhqiW6vhxRWzZcSiJMuOkg+rPoza+HLmeafr4MEjKimdEneCOqC9ZOdkS1JMsUcseXpaMxlyZ020THI6jxg8ZLDWb1qnqbNKtPe9D1x/zjAM1Rypib6h2ZK51zRNmc2m9u7ZazncxW3SOKfCdursqY77sVueLeKQw5KsBS+v5VSQ+nub7RJ6LVi6oM3Xkncj3izk0ZJ/sPwbAC/LzMrU3j325d5LT2+0fc8u2Wai2d3NZjPu5RudkpWlDEP68W0/1vpN6/TLP92pM887PeRtt8thtlbDi1v7PtinFRuWa+HSlgR6vkxf4L2mxibHukZwAsIZV88I7CPavZeekf75MnA+Zedky5fpS8qKCEA8/HXH/fsOuNre7RTTivIKNTdbzw9PxjTVzppomcDdIw5XH9akU7+tRWWLXc9x8mdU/OTAJzF/n2maWrl0Vchrsaw7bVfY+jJ9geRzdvuxygwZXFgGC245c9My78v0hazT2pEyUCaj9dCqwaSztkoCaHvxBLpNTU2O5d5eh14gu4bgZMwVjreBc/eO3Ql/t5f17NNTC5culExTZZeW6YJR39aMb12hjc980cBi12B8+/w7dOGoSbrotMmadOq3ow5XT1S0gDg4n8HSB5Zo4OBjXe87L2zJXP8+MrMyHT/X1NikvXv26se3/kjrN63To688ov938zUsJYg2Z8pURXlFy3Pb5e03YvSIqNv44wm7hq8+X+4Ty2Fa6qyr7TBU3iNiTcpjGEZLj3kClZOqyqqQoYCxzBexG4Y+sGCgq/2EDyG2y8Ad3HLmpmV+YMHAkH93pKHK8SSaC2Y3JD63/zGqqoys+KZ6qySAthfP0Oe+x/R1LAOdgnB/A+3KpaviSm4XTTwNnAMGDbBNVpYKDn58UDfPuzmkN+3t1/+rn169ODAFy6689mdfb2yILWlbuOycbDU1OfeIB3+fk9vn3yGZLWXwzq3Rl4CTJBnS7GtmWb5lV5YHs6oThU976/PlPiGNIUCy1dXUxTytZ8vmLYH/bzUdRvr8N+Vg4zMbY5qKZDftpjPmEaLHvYMyTTMQmPXo3SPu/QT3JtgVWLssXndq6XLq4bUbQu+m5cxuWEz4cXVUibYe2jWYSEanbJUE0PZcBz5BPj34qTIy4+9HKCouUtduXeL+vJN4GjgvudzddLCOzGoIbPAIhd59e7Xq95889iSlpSenCltXUxcYHRitQcEwPl+ffulCjbUJOkaMid4jKUlb39qqORPnBOpDkgLT3qbOKiFohyf5GzOtRukuKlusRWWLXTWYuR3N5DQaOJnrxHcUBO4dQP+B/VQ4zHrelGmayjkqJ+7hZsG9CXYVjfT09IjXnIah2wXY/iR6dj++aMPao82N/8qAPNc/2oryCs2ZMEcTRk7UhJETNWfinLiGeCZTokP77RpMDuw7oBuWLdCQk07oEFMGAHRc6RmR5UU0Rw4dUXOT/Vq5boLg1por7WZYaLixZ48NeZb7E6B1BoE6RSu3W2x8psJVcJBMbnLkVJRXuE9SZ0pVlXstpxS2a9I+wIG/MTPRe9TtaCbyNIViqLzHGYahq67/Hx0+XKOfXm09nOXAvgNauGRByHCREaOHa92q9VHn+eUPyldFeYVWLl1pO+Ssqcl6eTm7Yeh2S5RZCR4uFjxkf/f23Vqz4iHJNCOGklkNiTQMw3bYWjir5WeqKvdq0bzFWrhkQbsOrU9kaL/TUPuxZ4/V+VPO1cGDR0Ky/gJAMjkF4E7S09NtP+tmvrqb4cnxCB4WGovwZ3lLOds6w/m9xF+p3/+Ru0RXTtLS0loS6rbD2ub+ofjp6elqamrSwIKBrobhJhLMmKapRfMWq+DEwbbL3QLtKXi0ZqKNpW5HM5GnKRSBuxcYksLKJV+mTwMLBuqSK6bJNE3HNULrauu05t41gTkf/rkg6RnpMgxDjQ2NMmVGfIdhGBoxenjU+S3h88ajsZt3cvu1t1tu71+/fefWXSHD1KyWLfNXhirKKwL7t1uKxo5twRrj+pRe43ZNdwBoLQMHHxtXAJ3onGer518yxFs59JfDO7fuUnpGS6NEsoZ2e1VweZOMhhS7jNRt5dFXHon5MwmP/DDVKg1QQKKyc7J1zS3XBBqvEvmNx1I3TTT/U6ohcG8n6RnpGnT8oJYb9/NeZ6vkChkZaSr7zjzHfQXPd58yc3LUYVr+RoGps6e29GpHcfjTQ45JJOySRrhNaBe8frvVuVkF08H7z8hIU8+eXXTw4JGo5yI5F6zJaMFzs3Zta+isiToAeMeIMSNirsylpaVFDdKiJTIKf/7V1dYlJYjvFcdc7fB13BNtlOgIco7K1o9u/X8aPX6MpNZrSHHDPzXhwL4Dyh+Ur53v7Iz5b+AUFATK+J2VGlQ4UCWlUzT6zMSDGcDrwqevWv7GwzojDcPQlJmTtWXzG451U7u6M51SoQzT5VO1qalZBw64C4ycnD9iQsL7SBVZOVm64JKJmnH1DNttNj+3ST/94WKZze4Kv+ycLNVGmfdVMLRASx9YIkm6aMxk1dW6myeWl5+r0rLSiOF/4T32hmFowZL5khT4EfY+updqjtTq4P6Drr4rWHZOttZvsm+MCA7c3fS422Wwl0KvTTysrocMKa9frvbvO9CmgXywWK9RZ8V1io5rFJ3TNerbt1s7HZW9ZJXvkjRnwhxVOSzfZseX6XPMEB7rs/nCUZOSEjDn5edpxYblrrb1/92nf31OSmeVD2cYhm67b5EOH67Rg/c8FKh4jxgzIqSy3ufLffTqxldVW1MrwzBaJai3qi84lfnpGelqagydDuify1501mkRwcSIMSMiOkf8dR7/aMBYs3QDXmD1Wwhm9QxevWy1Njy4QbU1dcrOydLESyaqcFhhoAHV3/C5/6P9jvVfp1gieJTtrq27lJaepuamZg0cfGyr1acTqee0dhmf2uO2PK6upk5rV67T6mWrLd+vKK/QTVctch20S4oatEuhvcpuMrX7VVXujVjX3S5pxMqlq0IS0VVV7o0I2vPy85Thiz7oI9nDYWxb6YzEs9JbDsM3pao91gloACCVVL0Xe9AuRR8WbbW6iZPjYpziZefAvtjnaqf6Ou7hjHRDy356t266alFI8tl1q9Zr6qySQMbnBUvma/2mdXpiy+N6/PUNWrh0gQqGFsiX6Yvp+wqGFigtzbr6apWTxynL+6DjB4UcR3ZOltIz0rVmxUNavWx1REJdqxGNnTlRFlKHU9AuSSNGDw/5tz8Roz/uqK2p07pV6yW1rI5wzc3/p6rKKlVVVkWt/zrFElLLiKqps0rUUN+gupq6wEjdzlifJnD3gId/HzqPyr9k2uJ5N8e8r+ycrKjbBA/9izVQDS+g7Iadu0nA07V716iVq9YYDlNUXKSFSxcoLz9PhmHISDOUl5+nhUsXJjys3M38Ngp5wNvslq2EC3F2okZrxLVa3SRc8N/t8KHDrr87PSPdtuyMp+F4wKABMX+mI2tubNZ7774f8bppmlo872bb35B/KadHX3kkEDz7Vz4Ze7Z1L1rJrBItfWCJjun3Zcv3rXLybHnZPsGgv35xuPqQGuobVFtTp8aGRtsg3Y6/Q4Rs8EhVWza/EfLvaNneY8kG7xRLOK200Bnr0wTuHtDU2BS4MYPXK4x5GJkhTbxkYkzrxxYVF6mkdEpMXxNvj73VfuyWePNl+lp12bKi4iKt2LBcj7++QY+/tkErNixPyve4vR6dNRsm4HVOa8YiunjWL09LS4s6rN1udRO/8L9bVaX7nv+mxialZ2RELGEWT8Pxs0+9oMPV7hsNUl1wDh6n31D4eszFE4rVs0/PwPu+TJ9KZpVoxlXfU0V5hfXf12bUnF1Q4Mv0SaapRWWLY7pfrPhX6Nn29vaE9gN41a6tu0IaR+3udX/9NpZs8E51Z39gTnb5FgTuHuHUQuVWXv88zbh6hhYsme+4bmz40L8ZV88Iae2OtuZscA9EtLXVnfTq20tr7l2jDF+GsnKyAsH6wjsX6tFXHnFcK9Wr3F6PzpoNE/A6WvUTk9vvmJg/09zcHHWYZrTVTRLt6Txy6Ihktkzh8vf6xtpwvPGZjfrRrIUpv+RbPGL5DfkbYQ5+/MX0usaGRsk0VXZpme0ccsMwtHLJfREjZeyCgoEFA5PSQx68Qk97JOMD2kpw46jdve6v39r97qzqv04NpP7APJb92UmF0XQE7h6x9d9bdf6ICQllIz2w70Agkcpeh+RAVjd5cGv3ig3LA0PJw4X3QPgz+cYTvFdVVmnrW9sCc1YaGxo1dVZJoKLUEX9g/uvh1AjSmbNhAl5Hq35iSueVtsp+oz0zd8Y4B95O1+5dA72+sTYcP7jcXRBYOLwwnkPr8NzmKbBrPFu7cp1jHclsNlVVGZlPxqpB3V8OJ7p8W85R2brhlwsdh+MDqcBNss/g+q3T785Keob1dCh/zBLr/sKlymg6AvcUktMlx9Uwezc3uX8oefi8M6seiKLiIg0+8auW+8nOyQ4EsME9GVYBbXCLfEf+gVk1gkS7hgC8IRmt+p1ZUXFRxJDzpOzX4ZlZUV6RtCXXYm2gqSiv0JwJczRh5ERXmeTT0tP0zhvvxHt4ntcraHh7ODd5CqQkrIX+OdM0dfv8OyQppEE9uBxOZLqfYRj66a+u19jiopiPOTsnWyWlJXEl5wNaU5ZNvg+7uMJIMyzrt+EdWQVDCzRl5mStWfFQSIecv75vOeoqaPqL1f5iqU+nymg61nFPIcHDyuzk5efFFDRarcduxW6dxWtuucby+y4aM9lyP04JXuzWdE+2ZK/D7vYaAp1Zsn938WLN2MRUlFfEnaAuXslMCBbrsMtYl/7KzPS5Wv2lI/rKgDx16dpFB2zqItHyFPglcy30upo6LZ53sxYsmR9YyqqivEJrVjyk26+9Xb379opYd9qNvPw8zfl/s3Tmeafr4MEjMR9zeN1o8bzFqijfJNM0ZRiGCoYV6J0332nz3xJSny/Tp6zsLNtcHBdccoHWrVrnetrH4BMH2y7VGVz/DX9e+jvknKZX5fUPjVkSqU+nymg6etw7EcMwHIcxRhua7vR+rC1h0Xq12usH1pF7+oGOKp7fXWtNpUm0Vb+ziyeItlvaK5jT3zdZPbRSbCutxHquhmGoMcpc/o5s/0cHHP8W6elprn6vTsu3xcNpNF/Vnr2B3AZuer4LhhaopHSKunbrop//6DbN+NYV2vjMxpjy/fTs0zNkSuD0s7+rjc9UBAIl0zT1zhvvaGxxUUiCPiAZGuobLIP2nn16auGdCzXj6u8FykAjLfo97faZadcht/e9D2w/E89ynHZSZTQdgXsba48hUYZhRK18Rqs4u6lY+4eIX3Pz/0mmqduvvd22gI42V6W9fmCpMpQG6Ehi/d21dgNbeIZrgnb34gmim5ubbec3+jk9g3sf3cv2vVgEB1RuuDnXXn16BaaL5fY7JmlD+r1owFfzHYee19bURf29+teGDuemccdJtOXaunbvqkdfeUQFQwbb7qNgaIGmzioJzLWvq6nT26//Vz+9uqUXMbzBLy3d+pirP6nWRadN1vkjJkQk4Qv2ygv/dDWSEkhUwdAC3f/MH0KGuS99YIkyszIdP+fL9Ll+Zto+Lx3aBpJZ5090jrxXELi3IcMwNGn6pDb/3gVLF0StfK5cujLitXjWY3RboY7Wq9VePzC7B8u2t7Z1qCR5QEcS6wgbGti8K945w4MKj3N833G0VZKGE+cclRPT9m7ONfuobF1z8/+pqrKqpXc3RRmGoYsvn+a659n8fBm2CSMnas6EOY5rNUuSLyuxTo9oo/l2/HeHpM97D20Of8d/dwTmzAcLnsbn77w4/OkhNTc1W+6nqbFJdS6mSzTUN0TdBkgGu8SRAwYNcPxctNU+Qvdl/bzM7Zdr/QGb5R3jlSqj6Qjc21Bu/1wVDiuIed30YP5kb3YJ3sKVBGVpt2O7JqpiX48xlgq1U69We/3A7B4spmkydB5oJbGOsEmVuWqpKJ6Kli/TF/VzTj0v+5M0nDLWYZluzrWqskq3/vi2eA+pQ/jKgDzddt8ijf18/ml42e000tA0TVXt2atFZYtVUV5huzpAc1Nz3EvPSoo6mq+psUnzvvt/LUvUZmRYjgBxCrj9zx5/50UqN9KgY3IatdJQ32BZr73kcvuGuFg70+w65ErnlQZWsjIMQ0aaobz8PC1cujDpdf5UGE1Hcro2VFVZpcXzbtaUmZOVl59rGyzbCU/2VlFeEZFESWqpBA0sGNiS3MnFTek0Ty94PUarxCvhlalkVqgTTeoWT7Irq8RU4doqSR7QWcSaEM7t8whtL57n4qTvTmpJxOXAqYKYrGRmsd4/RcVFWrh0gVYuXeW4dnuq95zu/2h/yG83vOwuu7TM1d/n14vvtp1KkJ6epknTJ1sOo48meDjv1NlTbRMKJpLtv1ffXiq7tEzb3t4e9z7C9ezTk6HySJrmZusRIH6/Xny3bp9/h+pq6pSVk6ULLpmoE0ceb1kfzsvPU+m80pAYI1qd29+ot+a+tarcUal8/zZBw/MRHYF7G/OvRepGXn6eun2pqyp37FGvvj1lNrfMGw/+QTj9CNxymqcXvB5jtIp1RXmF7RAzf4WorTJH22WvXLBkviQ5HkNuv2NakmV8nmnW6qEVb8+eVzJnA14S67OMzO+ppXBogeUQZL+0tDTHcs1Ng6sb8dw//iA1ngzzqaK2pk4/nn29bli2QKPPjPw7uf37OAWptTV1WrdqfVzH1/eYvlq9bLX+/OAGV0PU4+HUcBPMMIyo18EwDBUVF+ndrbtE2I62Evz7q6up09qV62yTI3bt3jUiaLerc4cH79R5E2OYLku6pqZmHThwJOEvPH/EhIT30RkYhqEFSxfojHPH6oG779fvf/3HiG3y8nNVWlaa8I/ArjU8Lz9PKzYsD/y7orzCtmLtVGnxn4s+n9MW8V7YDztWGRlp6tmziw4ePKLGxuao5xRewPqPQZLrilfB0ALb5S/sWF2jZJy/G1bXCJG4TtF55Ro5PY/am9M16tu3Wzsdlb1kle+StHrZ6ph7RXv16Wm7hJjfE1sed3w/+H5oamqKuZe7S7cuWvPiQzF9Jlxnr98UDivQkvuty0X/32fbW9sSbmDxAl+mL66RFGPPLtLGZ5yn2sW7b6Ct+DJ9Gjj42EAn1OFDhy1HEcdTV/aCROo5rV3G0+PuQcFDUDY+s9EyaJekqsq9li1abvl7f63mlFktHefUUmY33D47J1vX3HJNS5b5KEldksluFMFei3lngTn4LisT8fbstefa9ECqoeXem/784IaYP3Pg44PKyslKqDfUab1gN44cSrzhwqphuDPZvd1+JJr/b7NyycrOO//bkN7d9m57HwWQsIb6hkDnmNM0mF1bd6ns0rKoo0wZjeoeyek8KHgIyoPLndeJjTeTcnD29+A5ZWnpaYGhXLdfd7tWL1vtan+Oy+J83tMeLalLMsWa2bhyR6XtOfgyfUlJkkdCLQCpLt7g+4JLJtq+F22puHBFxUXtsvTqnGtKo2+U4uxWX7FL2mYYLYmo3CTb9ZK4esRNucptRG87vMIwjISSQvoDfKfkzq29vGuqIXBvQ75Mn+18kWDBgdzuHbujbh+8jENFeYXKLi2LunSZXQ95c1NzYBibf45LcPBut3+nrNBOye/82ySbXfbK3P7Wy07kD7Jff3ZgwcCkZKFsr7XpAaCtZGTGN5BvxtUzbCuIsazh7S+jYl0vPRmB/tizx+q2+xapcJhzJvWUYPGnqq2pta1429UDBg8ZrBUblqu0bGZrHalrY88em1CQAqSa9PR03Xrvz1Q47IvOqwxf/IO1rTobWd41NgTubaihvsFVhtDgQC7aGopSyw9Liq3VyrGHPMyGBx933P/qZat1+NDhiM/5h5Q7fVdrJZSyW06utGym7frwrb12fHutTQ8AbaVb9/jm91WUV9jOfe7avavrffjLqFjnUZ96xqmut3VqIP/aN8/QL/90pwYOPjam7+9IsrOztHDJgkD5mp2THbFNeMV7l80QcX/HQ3uNkgj27rZ3U2L+PZAsg044LvBM83deHWezdntefl5IndsuwA8fZcpo1NgQuHvQiNEjAv/faQ1Fv6amJkmxtVrFMpS8tqbWcf9rV66LGP6Vl58XGFJu913ZOdkJr81eUV6hudN+qPGDvqG5034YUoGyWq/RaX341l47vr3Wpm9Lbkd8AEhNhz49FNfnnEZmfbL/k4T3Ec3HH37saju3DeSxNI53NE3NzSHla2OT9eiGbW9tU0V5hSrKK2yHfwevHz1p+oUJH5thGCopLQkpZxfeuVAlpVMsGxiCWeXA8bMbyp+Z5VN2TnaHG+oPRGMYhi6+fFrE607rsQfXue0C/PBRpoxGjQ2BezsqGFqgktIpEa+vW7UuUJCNPXtsYJiKkWYzjDA9TRXlFTG1Wln98Oz4Mn2u12H1C56nb/cjD16TPh6BCtS/t6q2plZb/73V1bwYq4DezXvJ0Nr7b0/MUwIQ63x0P7seWcl6Sc5Y9xHN1n9vddXY6LaBPNY8Kx1JcLBdUV6hpoYmy+1M09TieTdr5ZKVjvvzX7sZV8+wrBO54c9FM2XmFG15+XXt3r5b+cf114jRw7VmxUP68x83KP+4/lq4dIEKhgyOed+lZTMtpwfU1zXowu9M7NRJCZF6snOyNGXmZMk0NeNbV+iCUd8OPB/ddkK5HWXqZjs6hb7AcnDtKDsnW/nH9bcMiP1LKAQvSfDC316yXQvVMAzl9jvGMltrXn6eunbrEpGtMXw5pT5f7qONz2xMyrmlZ6Qrw5ehupo6ZeVk6ZSxJ+vjD/cndekmu8aEjrr8RGva/NwmrV25Tjve2aUBx7VOxk6v/j1iyVbqlaXOvIxrFF1nXg7uglMuVFOjdSCXiGjLwUnShadOUmN9bHPbw0VbovOiMZNVVxuZgC87J1uP/fNhV+V1qigcXqh33ngn6nbR1i7PzsnW+k1fLCHopqPA33seXJ9ws5qAYRiaMnOy1q1aH3FMPfv0tJzO6C/D5kyYY1nHirZ829iziwL1n3iWKgQ8w5AWLlkgSa7qVW6XbY11uenWXkrZy8vBEbi3o4KhBdq1dZftQ7xgyGBdcsU0nT/l3MDNU1Feodvn32GZudft2p9ON/zqZau14cHHVVtTq+ycbOV0yXE1L9+NktIpmnH1jKTsS3KuQAVXAtpbey9z0VYPPS/+PWI9d4LS6LhG0XXmwP2i0yYntKybHTeB+/kjJ0hJiJOdGhvtgsq8/Dx17d71i4rnrBJJ0sqlq+iNjaJnn57q++U+gTJyxJgRloG1nz/43vLylpBydc29a1yNDCwYWqARo4dr7Up35VJJaYlmXP092zIuqs+DnaLiIk0YOTGlG3OQ+nr16akDYXFBawbSye4UclMn93LgzlD59mJII0YPd8x8u/WtbbrpqkX61eJ7Aq8VFRepucn6JnLbiuuUrXHG1TO0ftM6PbHlca3ftE6fHf7Mdj/+of5uh9z7k9wlS0eYF+OF4eNtlbHTi38PspUCbSvWbO7JZFiNZY6DXVKkivIKy0SsklRVWRUxbUuSVmxYroVLFzAH2sHBjw+GlJHrVq3XlJmTA0Nx/cvF+YflTpk5WWtXrgv5zKKyxa6nSlTuqNSWl7e4Pr4tm1u27X10r3hOTzK/mA5A0I6OLjxol1q3XpXM5HVeqJMnKv6c/kjI2OKxrlt7f//rP2pg4XEafWbLsJG09MTbW4KXkHMyYFB+1JauwmGFgSEukqlam94Wf5K7ZJk6e2rEUMTWzNIeT8+5U+DYVr3ubZWxs63/Hm6QrRRoWxm+jFYZKh9NRXmFMnwZSRmGbNXYaDcM2x+Qh/eqB1dk19y7Rvs/2m87FBuhTNPUls1v2PamzZkwx/J1t3/7/EH52r09+lK7ftve2qbVy1ZbrsFuGIZ69O4R9e9auaOyQwUHQKxaq15lF4fE0ynkhTp5ouhxbwddunWJeS75n1Z8cbMlo1IUnFzGyYgxIyxfjwjGTFOmaaqutt52X9EyulpxSkjhT5BROKxAOUflqHBYcrO0B3/3nIlz4mql80Lg2FY94V7Mmu/FUQBAKmuvoH1R2eKkzR0OXtnFzy5jfdfuXbX/o/2W7+3auiuk3CBod8+pjNz73gdx79ffmBxL8kD/6jlW+h37FV11w5VR95E/KD+hVQ8Ar/BlWvf5tla9KplLKXuhTp4oAvd28NkR++HndnZv/+KmsltiIVbRhrVUlFfYFlYrf3FfYJmX4IqJ0zCwiZdOjOn43AxpKSou0i//dKee2/4X/fJPdyY1aA/+bquWdjdDg9ozcPQ3PFgNH2ytnnCvZc1P5gMfQHTxlE++TJ969ulp+35amnNVJdkB0dpVa10v71b5+QgsK+05baCja40yMngJ2lhW1nHyYdVHenD5GmX4MhzXoZ86e2pKLxGIzmPS9EltWq9KZqdQKnTmELi3hzimOAXPrUpWgROthcmpMlS1Z2/LMi9LnZd58Rt7zljNuOp7jtuE965bLSHTVvOT3VYEo13D9gocgxsegnuh/EvmtHdPeFvx4igAIJXZjdJycuoZpzr2Rp8W5fea9IDIjGzYdqrw2ZXJzGeOT7QyMrf/MXHtt66uTrdfe7vKLi2TpJblriK+PLZ91tfVa+u/t6qxodF5xIdp2t5D0RqmgLaSlZMVdZunH3smJAeFv14l02y1JduS1SmUCp05ZJVvY07LtkWT4cvQcQUDAzfYmvvWattb2+KuHNgtE+fnJoOq3TIvRpqhrKws10u/uVnGxS88S3lrZLl2mz02KydL/+/maxznxrhdDiOZ7LJwFg4r0JL7WSrPDhnTo+MaRdeZs8rbLZnlJC8/zzHzel5+nlZsWG7/nRPnWI6KSkR4OVNRXmGZw8PfENgyQm2tKnfskWmaSc/pkqqyc7I18ZKJ2rJ5i7slo+5do51bdyU8msEwDOX2P8byvvFlZqghwWUFwxUMLdDUWSWRSwQaSspKCEAypKWlqbnZXbm+cOmCQN23rVYv8j8Ddm17V2npaWpqbArERW6/x02d3MtZ5Qnc21DPPj2Vk5OtD97/0PUPw0rwjyHupUUsCovwH5mbtVTtAvdoyzSEJ3o7XH3YdWUvfN+tEUi4OfdgvkyfBg4+ts2XerPjxaXZOgKC0ui4RtF15sA9njLJSDMk076H2jAMPf76BtvPx9NYEI1VGRatwuf/u58x6OutsiReh+E2GDWkhUsXRlSag+sHvY/uJZnSRx/sswzWDcNQl65H6fCh2O/faOvLhyspnaI/P7ghrr+tv+wNv4f2fbCP3AfokIKfkcless2KUwdfshsJvBy4Mz4nSQzDUFZOlnyZPmXYJG44+PFBVe3Zm1DQLiU2XNxIM1QwtEA9e0fOJwzfr5uhI7n9c2MedmI1d91tpauthrRYDn00ZPu3bahv8NSyEnZD8gZ8tePM4wHQOZjNpuPw52jB1f59B5J7QIZ1+ed2uOaAQQNcfUcqMYyWEV0L71yohUtalr8z0gwZhqG8/rkqKZ3S8pphyEgzlJefZxu0h+eXqdqz17aH3TRNHTn8mcaeXRRXAtxYFA4rjLt33D+HNvwe+mT/J8k7QCCMm6Hv8QqeKtoWSd+cprB2pmV+CdyTxDRN1dXUqaG+QY1JHmJlxf9jyO0X21yvrKwsTZ1VYtvCu/XfWwNzU4qKi7Rw6QLHpEGSLOe6OA0FjyWRUF5+XrvMT7aaG71w6UKlp6U7fs4rDw+7eTwXXz6tnY4IQGcQ7/zj0rJS2/ei5XSJJUN4ND379LQMKGNxyeXWc9579ekVCGbTjNSqft123+KQBLFVlVUym1tWm6nas1frVq1XadlMPf76Bj3+2oaWqQ8Wc2LjSTRomqY+/nC/1m9ap6xs94GKVceDkzX3rY3rXutoc2iROo7qclSr7Ts4oVtbJH2LlsukI2WGT0RqlRydiClTF42ZbNtqn9c/1/J1N0uSBPccFxUXqe+X+9huW1VZpXWr1mvqrBLXSSPcJhIyDEOl80rbLUu5Ve+Km0K7LR4eTsvkSZEND4XDCnTbfYs01gPD+AGkLqcAPF5HdXWufCYrYauklh7QBJPKjT17bETDb0lpiQ58fCAQzCY68s5Lps2ZqjPPOz3wb6e1kv3sVo2xWgXFjV1bd6ns0jLV19kvSRuudF6pFiyZr2yXvZKVOypd32uGYbjqcIi18wWIRWtOwwhujLJKSprsBqto9e+OlBk+EQTuHtW1W1fHwqSupu6LZcqMlp7pQM/wnQtVOq/UsnDZtXWXtr29Per3Bxey0QLtWHuZ7X587dW7Hgs3hXZrPzyclskLDujX3Lsm0KDyyz/dGVKxAoDWEM8cw+ycbMcG5WjBWHBDZaISHTX17FMvaO60H+r26+6QTFMTL5kgmabWrUrN3CJ5+Xk6fljodXczbNYuuE9Lj69a6p+u5nbOesmsEhWddZqKiotct9PkD8qPaBTvc3Rvy22nlE5x1eFQOi/5DV1AOF+mr2WaimFEHUUb7CsD8ixfLyktCdzXdktHT5k5xXIqTLyZ553q351pVIv1hF20u8OHDjuuCRri80InPOnYgiXztea+tdq1dVdgmRLH5UrC+AvZAYPyoyZqc+plDk9EN2LMCG17e3tEdt7SeaWeC9TD+Qvt8Ovq1xYPD7sKz8qlq0IyM/sD+gVL5uuMr49r1WMCgHidPPZkbX5+s+37bsqtouKixBK2Btm1dVdcn9v4zEbddNWiwL+3vrUtpiSnHVFVZZVuumqRdr2zU9/53+mS7OsM/kbtivIK2w6Eupq6pGVaN9IMDT5xsPp8ubde3fiqamvqlJ2TpYmXTAxZntZNHSe4bPffa/4EVr+44Vd67IENqq2pbcmSf+nEqMvf+vmnJEZkmweSKPgZevDjgyocXiiz2dSurbuUnp6uutq6iPuvJXmj9f62bN4S+P92ja7B20iRyeWC66huGnzD69/p6elqamrSQH9WeY/HD8lC4O5hsbQ8V1VWBYa2+/kLl1gzpPv5C9mps6dGLVTsepmtfqjb3t6uKTMna8vmN9p0ibRk8V9XqX2WerPrzdhrkeDP33tE4A6gLcSTnPPjDz9Weka6bQKyWJKO2S3xFYv0dOdcJnYeXB77/OxU8ftf/1EDC4/T6DNPs60z7Ptgn7uVhcyWnvwD+w6oV99ekqQD+w5YBhdO/Dl9gusgtTV1WrdqvQqHFQbKcbvj9R9DtLK9tGymLpvrLlC3UlRc5Hj/A8n2zhvvqKR0ipY+sMQ2W/uUmVP05wf/bPn5eBLTOU2hcTtSK7j+3VkRuHtYc1NzTMuV2N38dj8q/1rrvfr2UtWeqpAW7vDW5Xh7me1+qFs2v5G0JSLaU3s8RNz0DgTrLAk7ALS/lUtWxvyZaD3cEy+d6HpfpWWltksGudXU1BTX53bv2J3Q93Z0f1qxRqPPPC2kzlC5o7KljlFZFdN8267du7YksAsSayeEXU6f8GAh/HjbozPhuIKBKT86A96y4cHHNePqGY495gMGDdDWf2+NeC88MZ3TCBu/tsg83xkwx93DBhYM1A3LFmjISSeEJLixY3fz280pH3ziYK3ftE4rNizXwiULHOeX+xO1PfrKI1q41HnbYPxQk88uY3yuQ0JCAGgLe9/7IObPpKena+DgYy3f69W3l+thx1J8c+zDDSwYGNfnXC0Dl8J2b/+iXA9O7tq1W5eY92VVR4hlGpq/Q8FtHcTtUn+tJZkJFgE3amtqJTnX061WyAjvrLOrk4b/Xtsi83xnQODuYVNnT9XYs8dq1RO/1WP/fFhLH1iiGVd/zzFjvN1+ov2oYim0YtmWH2ryWS1Vt2DpApWWzXT18AQAL2lqarItp/53wf/GvL+8fOsy0o1Enpl2y8DZyc7Jli/T5z6fjccN+Kp1ue52JZlgVnWEouIilZROiXjdMAyVlJZYdih0lDqIv1xvzXW30bkUDC1wfBb6pyA5/UbGnj1Wt977MxUOc+7Ys6qThscGbgN8OGOofBsyDEOZ2ZktyVeiyMvPs59PNa80Yj6W083fnsPArOaO8UNNnN0Q/fYe7gegc4tnjvnAgoFJLafiGS7vT2SWyDPTX8m9787fa/f2lnMYMXqEXnr6pZDEoVJLOXjNLdeEZGYOTzDa3tIz0tXc3CyzOfp0PcMwdPHl0yzfi3V6l1MdYcbVM1Q4rND1fdKR6iBFxUX6fzdfk5REdYZhqKj4NG18JvacE/Cm9Ix0NTc1u7o3Ave4ado+C/1TkKL9Rr72zTM04rST1dhov4Slm2mjXpiSkgoM0+XToampWQcOHEn4C10lJklFhrRw6ULHH1FgU8MItFb5s5YePHgk5EfTHknR4tXax2p3jfAFrpE7XKfouEbROV2jvn27tdNR2UtW+S59npB03uKYsoIvvHNh0suvxfMWuw5agsvcRDj93d2Wg/7t/PP+Y1kJJqk+r7MUnXWaKsorHJO3DfhqvmaXfU/Dx5xk+Uxwuify8vM07pxx2rJ5S6vVEVqrDtJaz8LgeyCWv79VMr3Vy1Zrw4OPq7amNqacSW4YhqEpMydr3ar1UfebnpGujIwM1dVG77iKR68+PZV9VI72fbDP9TUzDEM9e/eI+XNWfJk+NdQ3KDsnWyePPVkV5RURgfCUmVP00tMvae97eyVTyu2fq3HnjLVcSs2K/zm5etlqx8/k5eeFrNJUUV6huxffrQOf55jwZfo06buTQqYg2f1GOmt5n8h5t3YZ3+aBu9T2wXtWdpYMw/i89Xu4Xnp6Y+CH06N3D0myTJrSs09PXbnwSunzRCbBN7T/NaslCfT50lx797SssZ7bLzfiRxT8fo9ePZRzVI5l9tLO+qOJBdcoOq6RO1yn6LhG0XXmwF2SNj+3SetWrdfbW/7r2FubnZMd0uucbMFBS3pGS6b4psYm+TJ96tq9q2qO1Hg+kAuuUB/VJUeHqg8nHGBILcnfDtvsK7ziH34c8dRTAvWeoKClIywB66QtnoXBQXxwXXPE6OEJrcwT/NvIzsnWsYOP1bvb3lVtTW3g93G4+nDEd77xyhuq3LFH+YP6q2TW1EDDTvAxNjQ0yOfz2S7VFVwHNk1TMqS8/pENOP5ztGrEMgxDaelpGnT8IMf9S1KGr2VwcbRlw4Lv8ZwuOYHfhy/Tp6zsTB05/JkkqWevlmDfacWBWBqLrP7GfY/pK0m232F3X9AxlhwE7hY6680QK65TdFyj6LhG7nCdouMaRdfZA/fOeo9w3px3quuM5yxx3py3e61dxpOcDgAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDDNM0TTcbmqap5mZXm7qWnp6mpqbmpO4zFXGdouMaRcc1cofrFB3XKDq7a5Se7r32csr35OG8O5fOeN6d8Zwlzruzife8W7uMdx24AwAAAACAtue9pn8AAAAAABBA4A4AAAAAgIcRuAMAAAAA4GEE7gAAAAAAeBiBOwAAAAAAHkbgDgAAAACAhxG4AwAAAADgYQTuAAAAAAB4GIE7AAAAAAAeRuAOAAAAAICHEbgDAAAAAOBhBO4AAAAAAHgYgTsAAAAAAB7W5oH7jh07NHPmTI0cOVLjxo3Tbbfdpvr6+rY+jFb38MMPq7CwMOK/O+64I2S7tWvX6hvf+IaGDRumCy64QP/4xz8i9nXo0CHNnz9fo0eP1kknnaSrrrpKH330UcR2r776qqZNm6bhw4frrLPO0vLly2WaZqudYzx2796tG264QRdeeKFOPPFETZgwwXK7tr4upmlq+fLl+trXvqbhw4dr2rRpev3115NyzrFyc42++93vWt5fO3bsCNkuVa/RU089pf/5n//R+PHjNXLkSF144YVat25dxDF35vvIzTXq7PfRc889p+nTp+u0007T0KFDdfbZZ+uWW27RoUOHQrYrLy/XBRdcoGHDhukb3/iG1q9fH7Gv+vp63XrrrRo3bpxGjhypmTNnaufOnRHbuS0D3dy7XpRKZXx7PGe85siRIxo/frwKCwv15ptvhryXiuf9yCOPaNKkSRo2bJjGjBmj2bNnq7a2NvB+Mp8FXvHMM8+opKREJ510kk4//XRdffXV2rNnT8R2Hfnv7dW6Z2uKds6HDx/WXXfdpSlTpmjUqFEaO3asvv/97+udd96J2FdHOWfJ/d/a7+mnn1ZhYaHldp48b7MNffLJJ+a4cePM73znO+bzzz9vrl271jzllFPMm266qS0Po02sX7/eLCgoMJ9//nnztddeC/xXVVUV2Obxxx83CwsLzaVLl5oVFRXm9ddfb5544onma6+9FrKv0tJSc/z48eYTTzxhPv300+aECRPMCy64wGxoaAhs8+6775ojR440r7zySnPjxo3mqlWrzCFDhpj33ntvW52yK3//+9/N8ePHm3PnzjUnTJhgnn/++RHbtMd1ueeee8whQ4aYq1atMjdu3GheeeWV5kknnWRWVla2ynVw4uYaTZ8+3bz44otD7q3XXnvNrK2tDdkuVa/R1KlTzbKyMvOJJ54wN27caN5xxx3m8ccfb951112BbTr7feTmGnX2++jRRx81b731VvMvf/mLuWnTJvMPf/iDOXr0aHPmzJmBbV555RXzhBNOMK+//nqzoqLCXLp0qVlYWGg+9dRTIfu6/vrrzVNOOcVcu3at+fzzz5uXXnqpecYZZ5jV1dWBbdyWgW7vXa9JtTK+rZ8zXnTbbbeZY8eONQsKCsw33ngj8Hoqnvfdd99tnnTSSeY999xjvvzyy+Zf/vIX88YbbzQPHz5smmZynwVesWnTJvP44483r732WvOll14yn3jiCfPrX/+6ec4555g1NTWB7Tr639urdc/WFO2c33nnHXPcuHHmkiVLzBdeeMF8+umnzUsvvdQcMWKEuX379pBtO8o5m6a7v7VfTU2NedZZZ5ljx4613M6L592mgftvf/tbc+TIkebBgwcDr/3pT38yTzjhBPODDz5oy0Npdf7Aff/+/bbb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6UWpWsa3xXPGK95//32tXLlSV111lQ4dOqTq6upATozPPvtMR44cScnz7t69u3r06BEybLZHjx468cQTtX379qQ/C7xi0aJFOu2003TttdfqtNNO03nnnafly5fr7bff1mOPPSYpNe/zcJ29Tv7cc8/phhtu0P/+7//q29/+dsh7qXbOv/vd75SWlqbzzz9f1dXVqq6uVkNDg5qbm1VdXR3IZ+DV827TwN1qnsuhQ4e0b9++iPkBqc5/vuHXY+fOnfL5fOrfv39gu127dkWsB7hr167APo466ijl5uZG7Mv/uY50bdvjuvj/d9euXRHfmZeX12FbnFP9GtXW1uqKK67QoUOHdO+994YMaeI+auF0jdxK9WsUrrCwUD6fT5WVlcrPz5fP57O8jySFnNfHH38cMSwufM63mzLQ7b3rRalYxrfVc8Yr3nvvPTU0NOjyyy/XqaeeqlNPPTUwSvCyyy7TzJkzU/K8v/rVr9q+V1dXl/RngVfs2LEjYo7vMccco549e6qyslJSat7n4Tpznfz111/X1VdfrUmTJlkOHU+1c965c6d2796toqKiwDPu8ccf144dO3Tqqadq/fr1krx73m0auI8fP14bN24MtGBJLQlQ0tLSQrL2paonn3xS6enpOvHEE9W/f38de+yx+stf/hKxTVFRUSA74fjx4/Xpp5+qoqIisM2uXbv09ttva/z48YHXxo8fr2eeeUYNDQ0h++revbtOOumkVj6z5GmP63LyySera9eueuqppwLbNDQ06G9/+1vIvrzss88+07PPPqthw4YFXkvla9TY2Kgf/vCH2rlzp+699159+ctfDnmf+yj6NbLS2e4jK1u2bFFDQ4P69eunzMxMjRkzRn/9619DtnnyySc1aNAg9evXT1LLVKi0tDT97W9/C2zz6aef6sUXX4y4RtHKQLf3rhelWhnf1s8ZLzjhhBP0+9//PuS/6667TpJ000036cYbb0zJ8z7rrLP0ySef6D//+U/gtYMHD+qtt97SkCFDkv4s8Iq8vDy9/fbbIa+9//77OnjwoL7yla9ISs37PFxnrZNv375dV1xxhU477TTddNNNltuk2jnPmTMn4hl3+umn6ytf+Yp+//vfq7i4WJKHzzvpC8w5+OSTT8xx48aZ06dPN1944QVz3bp15qhRo8ybbrqpLQ+jTZSWlpr33HOP+eyzz5rP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\n"},"metadata":{}}],"execution_count":27},{"id":"14579686-3fd6-414b-a0f9-ab97ba961d7e","cell_type":"code","source":"def pie_bar_plot(col):\n print(df[col].value_counts())\n sns.set_palette(\"Spectral\")\n fig,axs=plt.subplots(1,2)\n axs[0].pie(df[col].value_counts().values.tolist(),autopct=\"%.2f%%\",textprops={'fontsize':25},shadow=True)\n sns.countplot(data=df,x=col,hue='is_fraud',palette=['blue','orange'],ax=axs[1])\n fig.legend(labels=df[col].value_counts().index.tolist(),loc='upper left',fontsize=20)\n fig.tight_layout()\n fig.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:27.297492Z","iopub.execute_input":"2026-01-17T19:34:27.297811Z","iopub.status.idle":"2026-01-17T19:34:27.304060Z","shell.execute_reply.started":"2026-01-17T19:34:27.297773Z","shell.execute_reply":"2026-01-17T19:34:27.303292Z"}},"outputs":[],"execution_count":28},{"id":"c24e98cf-3fb8-4a44-9b4f-e765ccd80508","cell_type":"code","source":"pie_bar_plot('gender')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:27.305119Z","iopub.execute_input":"2026-01-17T19:34:27.305414Z","iopub.status.idle":"2026-01-17T19:34:30.870141Z","shell.execute_reply.started":"2026-01-17T19:34:27.305383Z","shell.execute_reply":"2026-01-17T19:34:30.869432Z"}},"outputs":[{"name":"stdout","text":"gender\nF 1014749\nM 837645\nName: count, dtype: int64\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAABvwAAAMUCAYAAABw4YBWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA5olJREFUeJzs3Xd8HNWh9vFnZle9W5Z7N2B6D2B6Cb2XBEJyLylvQnIhlBASSLukE0oCBAghgUtvoZpiY6ptbIOxDQaMm+ReJKuvtu/OnPcP2cLCli3L2p1d6ff9fJxYZ2Z2HwnZWs+z5xzLGGMEAAAAAAAAAAAAICvZXgcAAAAAAAAAAAAA0HMUfgAAAAAAAAAAAEAWo/ADAAAAAAAAAAAAshiFHwAAAAAAAAAAAJDFKPwAAAAAAAAAAACALEbhBwAAAAAAAAAAAGQxCj8AAAAAAAAAAAAgi1H4AQAAAAAAAAAAAFmMwg8AAAAAAAAAAADIYhR+AAAAAAAAAAAAQBaj8AMAAAAAAAAAAACyGIUfAAAAAAAAAAAAkMX8vfEgxhglEgm5rtsbDweP2bYtv98v26YPBgAAAAAAAAAAyHS7VPg5jqOGhgYFAgHF44neyoQMYNu2iooKVVZWprKyMq/jAAAAAOijVq1apQceeEALFizQsmXLNG7cOL3yyis9frx3331X9913nxYvXqycnBztueeeuvXWWzVkyJBeTA0AAAAAmaXHhZ/jOFqzZo3C4YgKCopUXFwu2/b1ZjZ4xHVdJRJxRaMRtbWtUzgc1pAhQ2RZltfRAAAAAPQxy5Yt07Rp03TAAQfIdV0ZY3r8WC+99JJ++ctf6rvf/a6uueYahUIhzZ07V7FYrBcTAwAAAEDmsUwP/zVVV1enxsYmVVYOVm5uXm/nQoYIhdrU2tqkoUOHaMCAAV7HAQAAANDHuK7bsZ3ADTfcoM8++6xHM/xaWlp00kkn6brrrtOll17a2zEBAAAAIKP1aJM2Y4wCgYAKCooo+/q4oqIS5eUVqLm5ZZfeaQsAAAAA29KdvcONMXrggQd06qmnat9999VJJ52khx56qNM5kydPluu6uuiii1KUFAAAAAAyV48Kv0QioXg8ofz8gt7OgwxUWFikaDSqZDLpdRQAAAAA/dAf//hH3XXXXTrvvPN0//336/zzz9dtt92mJ598suOcBQsWaOzYsXrxxRd1wgknaO+999a5556radOmeZgcAAAAANKjR3v4ua4rSezZ10/4fO3fJo7jKCcnx+M0AAAAAPqT1atX67HHHtNvf/tbXXzxxZKkI488UtFoVPfcc48uvvhi2bat+vp6rVixQnfeeaeuv/56VVVV6fHHH9f//M//6MUXX9Tuu+/u8WcCAAAAAKnToxl+AAAAAACkw6xZsyRJp5xyipLJZMevI488UvX19dqwYYOk9mU/w+Gwfve73+m8887TUUcdpTvvvFODBw/Wv/71Ly8/BQAAAABIuR7N8AMAAAAAIB2am5tljNERRxyxzeMbNmzQ8OHDVVpaKkmdzsvJydFXvvIVLVu2LC1ZAQAAAMArFH4AAAAAgIxVVlYmy7L0xBNPbHOLgbFjx0qSdtttty4fIxaLpSwfAAAAAGQClvQEAAAAAGSsiRMnSpJaWlq03377bfWruLhYknTCCSdIkmbPnt1xbTwe14cffqh99tkn/cEBAAAAII2Y4QcAAAAA8EwkEtG0adMkSevWrVMwGNSUKVMkSYcddpjGjh2rb37zm/rZz36m733vezrggAOUSCS0cuVKffDBB7r33nslSfvss49OPfVU/frXv1ZLS4uqqqr0xBNPqKGhQd/73vc8+/wAAAAAIB0sY4zZ2Yui0ahqapZr4MAhys3NS0UuZJB4PKaGhlqNHz9O+fn5XscBAAAA0IesXbtWJ5100jaPPfLIIzr88MNljNHjjz+up59+WitWrFBRUZHGjh2r0047Td/+9rc7zg+Hw/rrX/+qV199VcFgUPvss4+uv/56HXLIIWn6bAAAAADAG2kp/CzLkm1bPQqYDVzXqAdfxp0yb95cXXHFD7p9/q9+dZPOOuucXnluCj8AAAAAAAAAAIDMlfIlPS3LUllJniyfL9VP5RnjOGpti6W89AMAAAAAAAAAAAC+LOWFn21bsnw+Nd5xqxJr16T66dIuZ8RIVV5zvWzbkuOkp/C74IKv6cILv7bdcwYNGpyWLAAAAAAAAAAAAPBWygu/zRJr1yixvCZdT9enVVRUaPz43byOAQAAAAAAAAAAgAyQtsIPAAAAAIDNjDFyXbZFAAAAAICu2LYly7K6dS6FHwAAAAAg7VzXqKkp5HUMAAAAAMhYAwYUyefrXuFnpzgLAAAAAAAAAAAAgBSi8AMAAAAAAAAAAACyGEt6ZqHm5mbV1FR3ebyiYoAGDBiQxkQAAAAAAAAAAADwCoVfFnr++f/o+ef/0+Xx733vB/r+93+YxkQAAAAAAAAAAADwCkt6AgAAAAAAAAAAAFmMGX5ZiBl8AAAAAAAAAAAgU7muK8dJeh0jo/l8ftl2783Lo/ADAAAAAAAAAADALjPGKBBoUiQS9DpKVigoKFZp6QBZlrXLj0XhBwAAAAAAAAAAgF22uewrLq5Qbm5erxRZfZExRvF4TMFgsySprKxylx+Twg8AAAAAAAAAAAC7xHWdjrKvuLjU6zgZLzc3T5IUDDarpKRil5f37L3FQQEAAAAAAAAAANAvOY4j6YsiCzu2+WvVG/sdUvgBAAAAAAAAAACgV7CMZ/f15teKwg8AAAAAAAAAAADIYhR+AAAAAAAAAAAASKnXXntZRx99qDZsWN+rjztlyqu69NILddxxh+u0047v1cfeFan6fLviT8uzAAAAAAAAAAAAAL1o1aqV+tOffqvDD5+ob33r28rLy/c6kmfSVvjljBiZrqdKq776eQEAAAAAAAAAAPSWU089QyeddIpyc3N77TE/+miuXNfV1Vf/VCP6eV+T8sLPdY2M46jymutT/VSeMY4j1zUpfY5DDjlU778/P6XPAQAAAAAAAAAAkAo+n08+n69XH7O5uVmSVFxcst3zjDGKx2N9egZgygs/Y4xa22KybSvVT+UZ1zUyJrWFHwAAAAAAAAAAQLZ67bWX9ac//Vb/+c8kDR06TIsXf677779XS5YsUiQSVWVlpQ466BD94hf/263Hu+iis1Vbu0GSdNZZX5Ukfec739f3vne5LrrobI0bN14XXnix7r//Xq1YUaMf/vBKff3rl+rVVyfp9ddf0/LlNQqFgho+fIQuvPBinX/+RZ0e/+ijD+14vC8/70EHHaJf/vKmjrHly2t0xx236rPPPlVZWZnOPfcCDRxYtQtfrZ2XliU9jTFyHAoxAAAAAAAAAACA/q65uUnXXnulysvL9c1vflslJSXasGG9pk9/p9uPcdVV12nKlFc1ffo7+ulPb1BBQaHGj9+94/jq1at0002/1LnnXqCzzz5Po0aNliS9+OKzGjt2vI4++lj5fD7NnDlDt99+s1zX1YUXfn2nP5fGxgZdddUP5TiOvvWty5SfX6BJk15QXl7eTj/WrkjbHn4AAAAAAAAAAADAp59+ora2gP72t7u15557d4z/4Af/0+3HOPbY47Vs2RJNn/6Ojj/+qyovL+90fO3aNbr99r/r8MMndhq/++77Oy3teeGFF+snP/mxnn768R4Vfo8//rBaWpp1//0Pae+995UknX76WfrGN87f6cfaFXZanw0AAAAAAAAAAAD9WnFxsSRp5swZSiaTKXmOoUOHb1X2SepU9gWDQbW0tOiggw7W+vXrFAwGd/p5Zs+eqX322a+j7JOkiooKnXzy6T0L3kPM8AMAAAAAAAAAAEDaHHTQITr++BP1f//3Lz3zzBM66KBDdMwxx+vkk09Tbm5urzzHsGHDtjn+yScf64EH7tfChZ8oGo12OhYMBjvKyO6qq6vtVPZttnkJ0XSh8AMAAAAAAAAAAEDaWJalP/zhFn322aeaOXO65sx5X3/+8+/01FOP6Z//fEiFhYW7/Bzb2kNv3bq1uuaa/9GoUWN05ZXXavDgwfL7c/T++zP19NNPyBh3h4/rujs+xwsUfgAAAAAAAAAAAEi7fffdT/vuu58uv/wKTZ06Rb/73a/01ltTdfbZ56Xk+WbOnK54PK6bb/6rhgwZ0jE+f/7crc4tKSndaonPRCKhxsaGTmODBw/R2rVrtrp+9epVvZS6e9jDDwAAAAAAAAAAAGkTCARkjOk0tvvue0iS4vF4yp7XtjfXYl88dzAY1GuvvbzVucOHj9CCBfM7jU2a9Lwcx+k0NnHiUVq48FN9/vlnHWPNzc16443JvRe8G5jhBwAAAAAAAAAAgLSZMuUVPf/8szr22OM1fPgIhcNhvfzyCyoqKtLEiUel7HkPO+wI5eTk6Oc/v1bnnHOBIpGwXn75RVVUDNhq5t5ZZ52r2277s375y+v1la8crurqZfrgg/dVXl7e6bxLL71Mr7/+mq677ip97WuXKD+/QJMmvaDBg4cqGFyWss/ly5jhBwAAAAAAAAAAgLQ58MCDteeee+mtt6bqzjtv0xNPPKIRI0bpzjvv07Bhw1P2vKNGjdHvf/8XSZbuuedOvfTS8zrnnPP1ta9dstW555xzvr75zcu0YMFHuvvuO7R+/Xrdccc9ys8v6HTewIEDdddd/9T48bvpscce1n/+86ROO+2MbT5mKlnmy3MmuyEajaqmZrkGDhyi3NytNz1E3xKPx9TQUKvx48cpPz/f6zgAAAAA+gDHcdXUFPI6BgAAAIBekkjE1di4QZWVQ5WTk+t1nKywo6/ZgAFF8vm6N3ePGX4AAAAAAAAAAABAFmMPPwAAAAAAAAAAAGSMQKBViUSiy+O27VNFRUUaE2U+Cj8AAAAAAAAAAABkjF/84np9/PH8Lo8PGTJUzz77choTZT4KPwAAAAAAumDblmzb8joGsF2ua+S6xusYAAAAvebKK69VW1ugy+N5eXlpTJMdKPwAAAAAANgG27ZUVlYkv5/CD5ktmTRqbQ1R+gEAgD5jzz338jpC1qHwAwAAAIB+YNWqVXrggQe0YMECLVu2TOPGjdMrr7yyw+uMMfrXv/6lJ554Qk1NTdprr71044036sADD0x9aI/ZtiW/39I119Srurrr/UMAL+22W47uuKNKtm1R+AEAAPRjFH4AAAAA0A8sW7ZM06ZN0wEHHCDXdWVM94qBf/3rX7rrrrv005/+VBMmTNDjjz+u7373u3rppZc0cuTIFKfODNXVCS1cGPc6BgAAAAB0yfY6AAAAAAAg9U488URNmzZNd911l/bZZ59uXROLxfTPf/5T3/3ud/Xtb39bEydO1F//+leVl5frgQceSHFiAAAAAEB3UfgBAAAAQD9g2zv/z7/58+crGAzq9NNP7xjLzc3VySefrOnTp/dmPAAAAADALkjLkp6WZcm2++4m565rur0cTk/NmzdXV1zxg46PCwsL9dprbyg/v2C710WjUZ155ikKhYIdY/fcc78OOeTQlGUFAAAA0DcsX75ckjRu3LhO4+PHj9fDDz+saDSq/Px8L6IBAAAAALaQ8sLPsiyVlebJsn2pfirPGNdRayCW8tJvS+FwWNOmvatTTz19u+fNmDGtU9kHAAAAAN0VCASUm5urvLy8TuOlpaUyxqi1tXWXCj+/P7MXnfH5MjsfsCW+XwEAgNdct+9O/Eo1n8/a5X8fpbzws21Llu2TO+sfMq3rU/10aWeVDZN95I9k25YcJz2FX15enmKxmCZPfnWHhd/kya92ugYAAAAAMoFtW6qoKPI6BtBnlJZufwUgAACAVItGfWposHeqvPJyhciert64cuUK3X77Lfr00wUqLCzS6aefqR/+8Arl5OT0IIMl27ZVVla4y6unpGVJT0ntZV/zqnQ9Xdqkb07fF44++li99dYb+vDDD9TY2KDKyoHbPK+pqUkffPC+JOmYY47Tm29OTWdMAAAAAFmutLRU8XhcsVis0yy/QCDQvppLWVmPH9t1jQKBcG/ETBmfz6ZEQdYIBCJyHNfrGAAAoB+Lx2NyXVeOY5RM7vh1iW1bKisrlN/vTeGXTBq1tobkut1vegKBgK644nKNHDlKf/zjraqv36i77/6bIpGIfvKTn+90Bscxcl1Xra1hRSLOVsdLSwu6vZJD2go/9J7DD5+ojz/+SI2NDZo6dYq+8Y1vbfO8N96YIsdJqrJyoA477AgKPwAAAAA7ZfPefStWrNCee+7ZMb58+XINGzZsl9+B2p2bAAC6x3Fc/kwBAABP7ewqiLZtye+3dM019aquTqQo1bbttluO7rijSrZt7VTh99JLzykcDulPf7pVpaXtb4B0HEd//etf9N///V0NHFjVozzdLUm3h8IvC9m2rZNPPlVPPfW4Jk9+rcvC77XXXpEknXLKabJt1vIHAAAAsHMOPvhgFRcXa/LkyR2FXyKR0NSpU3Xsscd6nA4AAABAX1BdndDChXGvY3TL++/P0qGHHtZR9knSiSeerNtu+7PmzHlfZ5xxtmfZaIGy1OmnnylJWrp0sZYvr9nq+IoVy7VkyeJO5wIAAADovyKRiKZMmaIpU6Zo3bp1CgaDHR83NTVJki677DKdfPLJHdfk5eXp8ssv14MPPqiHH35Ys2fP1nXXXaeWlhZ973vf8+pTAQAAAABPrFq1UqNGjek0VlJSosrKgVq1aqUnmTZjhl+WmjBhT40bN17Ll9do8uRXdcUVV3U6Pnnyq5Kk8eN30x57TNDSpUu8iAkAAAAgQzQ2Nurqq6/uNLb540ceeUSHH374pv02Ou8b8f3vf1/GGD344INqamrSXnvtpQceeEAjR45MW3YAAAAAyARtbQEVF5dsNV5SUqJAIOBBoi9Q+GWx008/U/fcc5emTp2i//mfH8uy2je2NMbo9dcnd5wDAAAAACNGjNCSJdt/I+Cjjz661ZhlWbr88st1+eWXpyoaAAAAAGAXsaRnFjv11DNk27bq6mo1f/7cjvH58+eqrq5Wtm3rlFNO9zAhAAAAAAAAAABA31BSUqpQKLjVeFtbm0pLSz1I9AUKvyw2aNAgHXzwoZK+WMJzy98fcshXNGjQIE+yAQAAAAAAAAAA9CWjR4/Zaq++YDCoxsYGjR49xpNMm1H4ZbkzzjhLkvTOO28rGo0qGo3q7bff2nSM5TwBAAAAAAAAAAB6wxFHHKm5c+eora2tY+ydd96Ubds67LAjPExG4Zf1jj/+ROXn5ysUCmrGjGmaPv1dhcMhFRQU6PjjT/I6HgAAAAAAAAAAQJ9w7rkXqrCwUDfeeJ3mzHlfr746Sffcc6fOPfcCDRxY5Wk2v6fPjl1WWFio4447Qa+/PlmTJ78qY4wk6bjjTlBBQYHH6QAAAAAAAAAAALq22245WfOcpaWluvPOf+hvf7tVN954nQoLi3T22efpBz/4n15OuPMo/PqAM844S6+/PlkffPB+x9jpp5/lYSIAAAAAAAAAAICuua5RMml0xx3ezIxLJo1c1+z0dWPGjNWdd96bgkS7hsKvDzj00MM0cOBANTQ0SJKqqqr0la8c5nEqAAAAAAAAAACAbXNdo9bWkGzb8uz5e1L4ZSoKvz7A5/PptNPO1DPPPClJOu20M2XbbM8IAAAAAAAAAAAyV18r3bxE4ddHXHnl1bryyqu9jgEAAAAAAAAAAIA0YxoYAAAAAAAAAAAAkMUo/AAAAAAAAAAAAIAslrYlPa2yYeqLq7BaZcO8jgAAAAAAAAAAAIB+LOWFn+saGdeRfeSPUv1UnjGuk/JNJQ855FC9//78Hl9/1lnn6KyzzunFRAAAAAAAAAAAAMgEKS/8jDFqDcRk21aqn8ozrmtkTF+cvwgAAAAAAAAAAIBMl5YlPY0xchwKMQAAAAAAAAAAAKC32V4HAAAAAAAAAAAAANBzaZnhBwAAAAAAAAAAAGzJti3PtoRzXSPX3fnVKdeuXaMnn3xUCxd+phUrajRq1Gg9+ugzKUi4cyj8AAAAAAAAAAAAkFa2bamiokC27fPk+V3XUXNzZKdLvxUrajR79kztvfc+MsaV67opSrhzKPwAAAAAAAAAAACQVu2z+3yqf/caJVqq0/rcOeW7qer4O2Tb1k4XfkcddayOOeZ4SdIf/3iTFi/+PAUJdx6FHwAAAAAAAAAAADyRaKlWvHGh1zG6zbZtryNsU2amAgAAAAAAAAAAANAtFH4AAAAAAAAAAABAFmNJTwBAVjCuKxnT/ktGktXVmVt/aG1xrrXpfyxLVoZOvwcAAAAAAACAnUHhBwBIC+O6kutIsmT5t/3jxySTMvG4TDwmE43KjUVlIhG5kYhMNCITjcrEYnJj7cdNMtH+eLYtbfq1+feWb9OY1Xl88++t3FxZRcXylZbKLi6RXVgoq6BQls/XRX5HcjeVjZbd5XkAAAAAAAAAkG49Kvw2b0joum6vhkFm2vzfOVM3ogTgrY4ibxslmInH5QRa5TQ1yWmsl9PcLKe5WW5zk5zmpvbfB1rlbirzlAE/V6z8fNlFRbKLimUXF8sqKu74/eZxX3m5fIOHyj9okOzSMllbzCA0yWT7b3y+TuMAAAAAAAAAkCo9Kvz8fr9s21YiEVd+fkFvZ0KGicWi8vt9ysnJ8ToKAI+0l3pupxLLxONK1tcpsXaNkrW1cpoa5TY3txd5Le3/b8Jhj5PvPBONyolG5TQ2du8Cv1++yoHyD6ySr2qQ/FWb/n/QYPkHD5FvQKWsLf7+NI4jScwQBAAAAAAAANBrejzDr6ioUNFoRCUlZb2dCRnEGKNoNKSyslJmqgD9QHsZZWT52n88GNeVs7FO8VUrlVy/TskN65Rcv17J2g1ymps27afXzyWTcupq5dTVdnmKXVYm38Aq+asGyT98hHJGjlbu+PHyDxnWUfyZZPKLpUcBAAAAAACAfiKnfLeses5oNKrZs9+TJNXWblAoFNI777wpSTrwwENUUVHRKxl3Vo/38CsrK1Nb2zqFQm0qKirpzUzIEMYYNTc3yHVdlZVR7AJ9jXEcyWrf/864rpLr1ym+vEbJdWuUWNv+K7lhvbR5iUr0mNvaKre1VYma6s4H/H7lDBuunFFjlDNqtHLGjFHOmHHyD6yS1P73sByH5UEBAAAAAADQ57iukes6qjr+Do+e35Hr7vyEhubmJv361zd0Gtv88V133aeKikN7Jd/O2qXCLxwOq6mpSdFoRIWFRfL5evxwyCCu6yoWiyoaDcl1XY0cOUKFhYVexwKwC4zrSOaLZSSTdXWKLVmkePVSxauXKrF8uUw85nHKfiiZVGL1KiVWr+o0bOUXKGfkKOWMHr2pCByn3DHjZBcXS2qfDWj5+ZkLAAAAAACA7OW6Rs3NEdm2N290by8cd77wGzp0mN57b24KEu2aXbpbOGTIEOXl5am5uVnNzQ29lQkZwO/3qaysVGVlZZR9QJYxrisZt2NZTqe5WbGlixRftlTx6mWK11TLhIIep8T2mGhE8WVLFF+2pNO4b/AQ5e21t/L23Ft5++ynnOEj2s9PJpkFCAAAAAAAgKzT09INW9ulws+yLA0YMEAVFRVKJpNyHKe3csFDtm0rJyeHG8dAlmgv+Iwsn09uNKLY4kXtZVH1MsWrl8ptbvY6InqJU1ercF2twu++LUmyioqVN2HP9gJw732Vu/vusnJyO31PAAAAAAAAAOj7emU9MMuylJOTo5ycnN54OADAdmze183y+2WSScWWLFL0448U++RjxWuWSa7rdUSkiQkFFZ0/V9H5m5YQ8PmUO3a8cvfcW3l77aW8vfeTr6ys/XvGdSkAAQAAAAAAgD6KDYAAIAts3rPNGKPEyhWKfjxf0U8+UnzRIvbewxccp2NfxuArL0qSfIMGK2+f/ZR/0MEqOOgQ2UXFMo4j2TYzuQEAAAAAAIA+gsIPADKQcZKS3b4nW7KuVtGP5in6yceKffaJ3CD776H7nI11Cm+sU/idNyXbVu648co/8GDlH/IV5e4+QZZtdxTKAAAAAAAAALITd/cAIENsLl3caFTReXM2lXwL5DTUex0NfYXrbtrbcZkCzz4tq7BQ+fsfqPxDvqKCw46Qr6SU2X8AAAAAAADYJcYYryNkjd78WlH4AYCHOkq+UFDh2bMU+WCWogs+kpJJr6OhHzDhsCLvz1Lk/Vlqvvcu5Y7fXflfOUwFh01U7ugx7S84jJFl215HBQAAAAAAQIbz+XySpHg8ptzcPI/TZIf4pu2afL5dr+so/AAgzTaXfE5ri8Kz3lNk9kzFPv9Mcl2vo6E/M6Zj/7/Ak4/JV1mp/EMPV+Exxylvr32kTe82ovwDAAAAAADAtti2TwUFxQoGmyVJubl5rCLVBWOM4vGYgsFmFRQUy+6Fe24UfgCQYsYYyXVl+XxKNjQoPHO6Iu/PUnzp4o4SBcg0TmOjQq+/ptDrr8k3oFIFRx6jouNPUO643Vj2EwAAAAAAANtUWjpAkjpKP2xfQUFxx9dsV1H4AUCKGMdpL/k2rFd45gxF3p+pxIrlXscCdprT1KjgKy8q+MqL8g8ZqoKjjlXR8ScqZ/iIju9zAAAAAAAAwLIslZVVqqSkQo7DtkXb4/P5e2Vm32YUfgDQizaXH05rq0Jvv6HQu28puWa117GAXpOs3aC2555W23NPK2fUaBUec5wKjztR/oFVHcvVAgAAAAAAoH+zbVu2net1jH6Fu3IAsIvM5r33jFFk7hyF3nxd0Y/msScf+rzE6lVqffwRtT7+iHJ3n6DCY45V4TEnyFdWRvkHAAAAAAAApBF34gCghzYXGskN6xWcOlnh6e/IbW31OhbgifiyJYovW6KWhx5Q3j77qejkU1U48WjJsiTLYr8/AAAAAAAAIIUo/ABgJ2xestONRhSe9o5Cb72hePVSr2MBmcN1Fft0gWKfLlBL2f0qOvFkFZ9+ZvuSn+z3BwAAAAAAAKQEhR8AdMPmoiK2aKFCb76uyPuzZeIxr2MBGc1tbVHbC/9R20vPKf+Ag1R8+lnKP/hQyRiKPwAAAAAAAKAXUfgBQBeM60qWJRMKqm3yqwq9NVXOxjqvYwHZx3UV/Wieoh/Nk29glYpOPk3Fp54uX2kZs/4AAAAAAACAXkDhBwBfsrmASNZuUNuLzyk8/R2ZeNzrWECf4DTUK/Dkowo884QKDpuo4tPPVP6++1P8AQAAAAAAALuAwg8ANjHJpCy/X7HPP1Pbi88p+vF8yRivYwF9k+MoMvs9RWa/J/+w4So+5XQVffUUWQWFkiTLsjwOCAAAAAAAAGQPCj8A/Z5xHElSePq7anv5BSVWrfQ2ENDPJNevU8tD/1brk4+q6OTTVHr+RfJVDJBxXVm27XU8AAAAAAAAIONR+AHolzr25wuH1PbaywpOeVVuc7PXsYB+zcRiCr7ykoJTXlXRsSeo9KKL5R8ylOU+AQAAAAAAgB2g8APQr3Tsz1dXq7aXnlP43Xdk4jGvYwHYUjKp0NtvKPTuWyo4fKJKv3aJcseMo/gDAAAAAAAAukDhB6Bf2FwUxKuXKvDs04rOn8v+fECmc11FZs9UZPZM5R1woEov+oby99lXxknK8vESBgAAAAAAANiMu2UA+rTNRV9i5XK1PPawYgs+8joSgB6ILfhY9Qs+Vu4eE1R64cUq+MrhMsmkLD8vZQAAAAAAAADukgHok4zryLJ9SqxZrdbHH1Z03odeRwLQC+JLl6jhz79TzqjRKjn/IhUec7xkDEt9AgAAAAAAoF+j8APQpxjXlWXbSq5fr9bHH1FkzmyW7gT6oMTqVWq683a1PvGoSr/+DRWd8FWKPwAAAAAAAPRbFH4A+oSOoq+uVq1PPKrIrBkUfUA/4NRvVPM9d6pt0gsq/9a325f63LSULwAAAAAAANBfUPgByGqbiz6nsUGtTz6q8PR3Jdf1OhaANEuuWa2GP/9OuXvurfJv/z/l7TGhY2lfAAAAAAAAoK+j8AOQlcym2XtOc7MCTz+m0DtvSY7jcSoAXosv/lwbb/iJCg47QmWXfU85Q4d1vDEAAAAAAAAA6Kso/ABkHeM4MtGoWp98VMGpk6Vk0utIADJMZM77isydo6ITT1bZN/9bdkkppR8AAAAAAAD6LAo/AFnDOEnJshV8/TUFnnpMbjDodSQAmcx1FXrzdYWnv6vis85R6UUXy8rJZX8/AAAAAAAA9DkUfgAy3ubl+GKLPlfLv+9TYvUqryMByCImHlPb8/9RaOoUlV50sYrPOFuyLIo/AAAAAAAA9BkUfgAymnFdOU2NanngfkU+mOV1HABZzA22qeWhf6vt1Ukqv+x7KjzyaPb3AwAAAAAAQJ9A4QcgIxnHkRxHrf95SsGXX5CJx72OBKCPcOo3qvG2Pyt4wEEa8MMr5asaROkHAAAAAACArEbhByCjGMeR5fMpPGuGWh95UE5jo9eRAPRRsQUfacNVP1Tp+Rep9KJLWOYTAAAAAAAAWYvCD0BG2LysXmLNKjXff6/iixd5HQlAf5BIKPDMkwpPf1cVP7hC+QcexDKfAAAAAAAAyDoUfgA8ZxxHbjis1kceVOidNyXX9ToSgH4mWbtB9b/7lQomHq2K7/9QdmkZpR8AAAAAAACyBoUfAM9sXr4zNO1ttT70b7nBoNeRAPRzkdnvKfrRPJVd8k0Vn3WuZAzLfAIAAAAAACDjUfgB8IRxXTlNjWq6507FPvnY6zgA0MFEI2p56N8KvfuWKn74Y+XtMYFlPgEAAAAAAJDRKPwApJVxHMmy1Pbyiwo89ZhMLOZ1JADYpsTKFdp443UqOvFklX/7/0n5+cz2AwAAAAAAQEai8AOQNsYYJdetVdPdf1O8epnXcQBgx4xR6K2pisx5XxWXX6HCI49mth8AAAAAAAAyDoUfgJQzjiNJCjz7lALPPSMlkx4nAoCd47YF1HjbnxU5+jhV/PBKKS+P2X4AAAAAAADIGBR+AFLKuK6S69aq8Y7blFi53Os4ALBLwu9NU+zzzzTgx9cq/4CDZIyRZVlexwIAAAAAAEA/x3pUAFLCOI6M4yjwn6dU+9OrKPsA9BlOU6Pqf/srNd9/r5RIdMxiBgAAAAAAALzCDD8Avc64rpLr16nxjluVWEHRB6BvCk55VdEFH2nANdcrd7fdmekHAAAAAAAAzzDDD0CvMa4rSWp7+UXVXvdjyj4AfV5yw3ptvPE6tT7xSMfMZgAAAAAAACDdmOEHoFcYx5GJhNVwx22Kzp/rdRwASB/XVdtzzyg6b64qf/Iz+YcNl2XznioAAAAAAACkD3ejAOwyY4xiixep9porKPsA9FuJlctVe92P1fbS8zLGMNsPAAAAAAAAacMMPwA9ZhxHsiwFnn5CgeeeljYt6QkA/VYiodZH/0+RuXNU+ZOfyVdeIcvn8zoVAAAAAAAA+jhm+AHoEeM4cgMB1f/mRgX+8yRlHwBsIb5ooequvVLRTz6WMcbrOAAAAAAAAOjjKPwA9Ej04/mqveZ/FPv8M6+jAEBGcoNtavjD/yrw5KPtS3zyxggAAAAAAACkCEt6Aui2zftRtTz0bwVfneRxGgDIAsYo8OzTii1booHX3SAVFMjy8fILAAAAAAAAvYsZfgC6xTiOnMYG1f38J5R9ALCTYgs+Vu21Vyq+fDkz/QAAAAAAANDrKPwAdEt41gzVXnuFEsurvY4CAFnJaWzQxl9er+BrL0sSxR8AAAAAAAB6DWtKAejS5pvRLQ/e33GDGgCwC5JJtTx4v2JLFmnAlddKfr8sn8/rVAAAAAAAAMhyzPADsE3GScpEI6r/3a8p+wCgl0VmzlDdT69Wsq62Y39UAAAAAAAAoKco/ABsxTiOknV1qrv+GsU++djrOADQJyXXrVHdT69SePZ7XkcBAAAAAABAlqPwA9CJMUbRBR+p7mfXKLlhvddxAKBPM9Gomv56i5rvv1fGcWRcZvsBAAAAAABg57GHHwBJ7UWfZVlqe/E5tT7+sLRp/z4AQOoFp7yqxJrVGnjDr6X8fPb1AwAAAAAAwE5hhh+A9v2jkkk13nGbWh/9P8o+APBAbOGnqvvZNXLqN7KvHwAAAAAAAHYKhR/QzxknKactoI2/+rnC09/xOg4A9GvJDetV97NrFFv8uQxvvgAAAAAAAEA3UfgB/ZhxXcVXrtTGn16t+LIlXscBAEhyg0HV3/RLhd56w+soAAAAAAAAyBIUfkA/Fn5vuup/eb2cpkavowAAtuQ4av7HXWp56N8yxjDbDwAAAAAAANvl9zoAgPQyxsiyLLU+8YgCzz7tdRwAwHa0TXpByY11qrz2Z+1/f/t8XkcCAAAAAABABmKGH9CPGNeVjFHTvXdS9gFAloi8P0sbf3OjTDQi4zhexwEAAAAAAEAGovAD+gnjODKOo8Zb/6TQm1O9jgMA2AnxJYtU97Nr5TQ1UvoBAAAAAABgKxR+QD/gJpNy43E1/O7Xinww2+s4AIAeSG5Yr7qfXaP4ihr29AMAAAAAAEAnFH5AH+ck4nLDIdX/+ueKLfzU6zgAgF3gtraq/lc3KDp/LqUfAAAAAAAAOlD4AX2YE4/LbW5W/Y0/VWJ5jddxAAC9wMRjavjLHxSZ/Z6MMV7HAQAAAAAAQAag8AP6KCceV7J2vTbe+FMlN6z3Og4AoDc5jhr/dqvC77xF6QcAAAAAAAAKP6CvMcbISSQUr6lW/S9/Lre5yetIAIBUcF013XOHglNe9ToJAAAAAAAAPOb3OgCA3uO6rmSMYgs+UtNtN8vEY15HAgCkkjFq+dc/ZGIxlZ53oddpAAAAAAAA4BEKP6CPcB1Hlm0rNO1tNd97l+Q4XkcCAKRJ6yMPysSiKrv4m15HAQAAAAAAgAco/IA+IJlIyJ+To7ZXXlLL//1LYj8nAOh3Ak8/IROLqfy/v+t1FAAAAAApZtuWbNvyOgbQJdc1cl3uUQLpROEHZLl4LKbcvDy1vTpJLQ/e73UcAICH2l58TiYWU8X3fyRjjCyLGwAAAABAX2PblsrKiuT383ofmSuZNGptDVH6AWlE4QdksWg4rLz8fLVNeVUtD/zT6zgAgAwQnPxKe+l3xdUyrivLtr2OBAAAAKAX2bYlv9/SNdfUq7o64XUcYCu77ZajO+6okm1bFH5AGlH4AVkqGGhVUXGJgm9NVcu//uF1HABABgm9/YZMPK4B1/yU0g8AAADoo6qrE1q4MO51DABAhuDuD5CFWhsbVVhUrNC7b6vlvrvZsw8AsJXwe9PUeMsfJWNkXNfrOAAAAAAAAEghCj8gyzRs2KCS8nJFZk5X8713UvYBALoUmfO+Gm+7WZJk+HkBAAAAAADQZ1H4AVlkw6pVGlBVpcj7M9V0118lZmwAAHYg8sEsNd1zpyzL8joKAAAAAAAAUoTCD8gSa2qqNWjYMEU+/EBNd9xG2QcA6LbwO2+q+YF/eh0DAAAAAAAAKULhB2SBtTU1GjZqtGIfz1fT326RHMfrSACALBN8dZJan3zM6xgAAAAAAABIAQo/IMOtW7FCQ0aOVOyTj9V465+kZNLrSACALBX4z5Nqm/SC1zEAAAAAAADQyyj8gAy2bnmNBg0bqsTnn6nxlj9S9gEAdlnLQ/9W8O03ZIzxOgoAAAAAAAB6CYUfkKHW1FRrQNUgOStWqPHmP0iJhNeRAAB9RPO9dynywWwZ9oMFAAAAAADoEyj8gAy0prpapaWl8rUF1Pjn38nEY15HAgD0Ja6rxr/+RbFPF8iwLywAAAAAAEDWo/ADMsya6mrl5PhVmJurht//Rm5bwOtIAIC+KJlUw82/V7xmGaUfAAAAAABAlqPwAzLI2poaxaNRVQ0ZqqY//lZOXa3XkQAAfZiJxVT/u98osXaNjMM+sQAAAAAAANmKwg/IEOtWrFDTxjqN23svNd1+s+LVS72OBADoB0w4pPqbfiGnvoHSDwAAAAAAIEtR+AEZYMOqlVq5ZLH2n3ikmu//h6Jz53gdCQDQj7itrar/3a9kojEZl+U9AQAAAAAAsg2FH+Cx2jWr9dkHH+io005X4LlnFJo62etIAIB+KFm7QQ1//p1kJGOM13EApEhNTY2+853v6MADD9RRRx2lW265RfF4fIfXNTc36ze/+Y2OP/54HXjggTrrrLP05JNPpiExAAAAAKA7/F4HAPqzpo0bNeett3TGpd9UcNo7an3iEa8jAQD6sdjnn6n5H3/XgCuv8ToKgBRobW3VZZddpjFjxujvf/+76urqdPPNNysajeo3v/nNdq+9+uqrtXz5cv3kJz/R0KFDNX36dN10003y+Xz6+te/nqbPAAAAAADQFQo/wCOhQEAzXn1Fp37t60osWaTme+6QmFEBAPBY6O035B8xUiXnXiDLsryOA6AXPfXUUwqFQrr77rtVXl4uSXIcR7/97W91+eWXa/Dgwdu8rr6+Xh988IH+/Oc/64ILLpAkTZw4UZ9++qleffVVCj8AAAAAyAAUfoAHYpGI3n7heR1/1tmymhrV8Jc/Ssmk17GQJh+HwvrpyvU7fd2Du43SqLzcHj1nbTyh/1ezWlH3i1L5v6oqdNmgyh493rZ8c+lK1SV6/n18/bBBOrWidLvnOMZodltIMwJBLYvE1Jh0FHVdFfpsDfT7NaEgT8eXleiQooJuFxXTA0G93NSq6mhMUddoUI5fR5QU6hsDB6jc7+t2/l+uWq8PgmGV+mw9tNtole7EtUCmaX3sIeUMH6H8gw+V5eN7Gegrpk+frokTJ3aUfZJ0+umn63//9381c+bMjjLvy5KbXqeWlJR0Gi8uLlY4HE5ZXgAAAABA97GHH5BmTjKpd156UYcee5wKfbYaf/8bmXDI61jo4/62fmOnsi8T7aggWxaJ6vKaNbppTa3eag1qdTyhkOvKkdTmuFoRi2tKS5tuWLVeV69Yp7Wx7e9H5Bqj29dt1O/W1OqjUERtjquEMVoXT+i5xlb9v+rVqonGupV9ViCkD4LtNzy/N6iSsg/Zz3XV+LdblFi3RsZxvE4DoJcsX75c48aN6zRWWlqqqqoqLV++vMvrhg4dqqOPPlr33XefqqurFQwG9dprr2nmzJn65je/merYAAAAAIBuYIYfkEbGGL03+TUNGzVag4cN08YbfyqnscHrWPBQrmVp/6KCbp1bYPfsPRpvtrRpXijSo2t3xv6FBWreiWJgUTiqkOtKkkp8tg4tKuzy3MWRqH62cp3CW5SWeZal0Xm5KvLZCjiOVsXiSm46/HkkqmtXrtMdY4ZreBezIp9vbNHklkDHx6PyclTu82npppl+LY6j36zeoH+NH6VCX9df+5jr6t7aeknShII8nb6DWYpAtjDRqBr+cJMG33an7KJiZvoBfUAgEFBp6dY/p8rKytTa2rrda//+97/r2muv1ZlnnilJ8vl8+tWvfqVTTz11lzL5/Zn9HlTfdl4DAJmG71eg/+DPO7IF36tAelH4AWn00YzpioZC2v/sc9pnTqzs+p3U6B8q/D7dPHpYyh6/NenoH5vKqFF5OQo5rhqTqZmt8/MR2973Z1uCjqOvL1nZ8fEJpSXKsbe9BKdjjG5ZV9dR9vkt6TuDKnXugDLlb1GCtiYdPdHQpOca229YNicd3b5+o/46dsRWjxl1XT1W3yypfar7L0YM1vFlJR2P8+vVG/R5JKq6RFIvN7fq4oEVXX4uTzU0qzaRlC3pqqFVstnzDH2I01Cvhj/+VoP++BcZ15LVwzceAMhuxhjdeOONWrlypW6//XZVVVVp1qxZ+tOf/qSysrKOEnBn2balioqiXk4L9F+lpd17IyEAAOnCzyYgvSj8gDRZ8vFHWjx/vi758Y/V9vKLCs+Y5nUk9AP/qG1Qq9M+i+6aoYP0l3V1HidqN601qLj5YrbeKRUlXZ47LxjW6lii4+MfDanSuQPKtjqvzO/Tj4ZUyRjp+ab20u+TcFQrozGNyc/b6jGDm2YXHlta3FH2bX6ca4ZV6Qc1ayRJ77QGuyz81scTerqhRZJ0ekWpJhTkb+/TBrJSfNkSNd55uwZed4PXUQDsotLSUrW1tW013traqrKyrX+2bvbuu+9qypQpmjRpkiZMmCBJOvzww9XY2Kibb765x4Wf6xoFApm9B6DPZ3OjClkjEIjI2fTaH0Dfxs8nZAt+NgG7rrS0oNuzZSn8gDRYU12t6a+8okt//GPFlixWyyMPeh0J/cDcYFhvtrbf1Du1vKTbS4emw9TWL242jsrL0Z7bKco+C0c7fl9s2zprB0tmfqOqQi80tWpznbgwHN2q8Fsa+WJvvhPLti4bx+XnaXx+rmqicS2PxpQ0Rv5tzNy7d0O94sao1Gfru4Mqt5sLyGaRmTPUOnyEyi75ltdRAOyCcePGbbVXX1tbm+rr67fa229L1dXV8vl82mOPPTqN77XXXvrPf/6jSCSigoKevc5IJrkBBPQWx3H5MwUAyCj8bALSi3WZgBSrX79eU558QqdffIlyHUdNt/5Z2ol9zoCeiLqu7li/UZJU5rP1g8EDPU70hXWxuBZuUeKdUrb9Aq9liz8vI/Ny5NvBkpkVfr/K/V/sNda6jT9vW44Nyd32e1+G5ORIklxJbdt4jNltIb0fbJ+V8N1BlSrzs78Z+rbAM08q9N50GZd/rAHZ6thjj9WsWbMUCHyxh+2UKVNk27aOOuqoLq8bPny4HMfRkiVLOo0vXLhQlZWVPS77AAAAAAC9h8IPSKFAc7Nee+xRHTDxSA0bO1ZNt/xRbmuL17HQDzy0sUm1iaQk6fIhAzOqjHpji9l9tqSvlne9nKckFWyxt1/SbOfELSTcL04s9vXsc9/eU8VdV/duaN8bcY/8PJ2xg1mHQF/RfPfflFizWoY3rgBZ6ZJLLlFRUZGuuOIKvffee3ruued0yy236JJLLtHgwV/sxXvZZZfp5JNP7vj42GOP1bBhw3TVVVfppZde0uzZs3XrrbfqhRde0Le+xcxfAAAAAMgEFH5AikTCIU1+4nGVDhigw776VbX8+x+KL12y4wuBXbQ0EtXzjS2SpAMKC3RKeeaUUcYYvdnyReF3cHGhBuZsf3XpLZf7XBmLbXO23ZaWR2Md+/NJ0r6FWy8XWrZFCVi3qRj9srpE+76BtqSSL5WGTzY0a0MiKVvSVUOrZO9g1iHQV5h4XI1/+YNMIsFMPyALlZWV6eGHH5bP59MVV1yh22+/XRdddJFuuKHzHp2u68rZ4udtcXGxHnroIe2999667bbb9KMf/UjTpk3TDTfcoMsvvzzdnwYAAAAAYBvYww9IAcdx9NZzz6m5vl7f/+WvFHxzqkJTp3gdCxko6Lj63ZpaLYlE1Zx05LPay6hx+Xk6uKhAJ5eXqqibm7JKkmOMbl+/Ua6kHEu6elhV6sL3wIJwpGPmodS+t+COHFVSpEq/T41JRwkj3VfboOuHD97muQnX6N7aho6PDykq0Lgv7d8nSbsXfDH2dkubJpYUdTq+MhrT8mhckjQ2P7fT/n0b4gk93dAiSTqtolR7bqNQBPqyZO0GNf39bxp4/Y1eRwHQA+PHj9dDDz203XMeffTRrcZGjx6tO+64IzWhAAAAAAC7jBl+QArMfedtLZ4/T9+86molVq1U87/u9ToSMlTIdTU9EFRdIqm4MYq4RrWJpGa1hXR3bYMuXbpSL2yardcd/2loUc2mourigRUalZebouQ988YWs/uKbFtHfalo25Zc29aNIwarcNPSnq+3tOlnK9dpTltIbY4jxxg1J5Oa3hrUlSvW6ONQRJI0Pj9XP+uiGDykuFCFdvuPwGmBoKYHgh3H2hxHd26o71jS87jS4k7X3ltbr7gxKvHZ+t6gym5/7kBfEpn9ntomv8IsPwAAAAAAgAzBDD+gl9UsXKgZr76qr13+IxX4/dp4yx+lTUsDAtsyJMevyhy/ci1LrUlHq2JxbV5EK+S6uqe2QTXRmH7aRXm12fp4Qo/WN0mShufm6NKBFSlOvnMim8rNzY4rK1au3b33nRxYVKg7xo7QX9dv1OJITPNDEc3fVOx9WaFt6eTyUn1vUKUKu5gdWWDbunRghf69sVGupN+tqdWYvFyV+mxVR2MKb9oDsMrv1zkDyjque78tpNltYUnSdwdVZtTeiEC6tfzfv5S3597KGTVaVg/3ygQAAAAAAEDvoPADelFjXZ2mPvO0Jp5yikbtsYfqf/srOQ31XsdChrFl6eCiAp1aXqqvFBeq9EulUcRx9WZrmx7a2KhWp332zJSWNo3IzdUlVV2XeH9bv1Ex015UXTW0qttlWrq8Fwgq4pqOj7uznOeWxuXn6fejhuqBukZN2WKm4JYsSSeUleicirIuy77NvjawXCtjcb3Z2v5YK2PxTsdLfLZuGjVExZuKjLjr6p4N7X+e98jP05kVX+yNGEg6eqqhWbPaQtqYSCrPtrRHfp7OqyzfarlQoM9IJtVwyx815G93S1aerAz7OwcAAAAAAKA/ofADekk0HNbUp59SaUWFjjr9DLU88qBiny7wOhYy0P5FBbqlaHiXxwt8ts4eUKbDSwr1kxXrOva8e6y+SadWlKjCv/Vf3VOaA/po04y3k8qKdUhxYWrC74KpW5R0w3NztE9hQbevdYzRE/XNeqqhuaPUzLGkMXl5KvbZCjquVsZiShjp1eaAXmsO6NwBZfrRkIHybbH/3pZ8lqUbRgzW4SWFerU5oOpITDFjVJXj1xHFhbpkYIUG5HzxtX6qoUUbEklZkn48tEr2psddHYvr+pXr1Jh0Os6NO0bzQhHNC0V0YWWZfjQks/ZSBHqLU1erprv+qoE/+6XXUQAAAAAAAPo1Cj+gF7iuq2mTXtLamhr9+I9/UnjuHLW9+JzXsZDlBuXk6JcjhujHK9ZKkqLGaHJzQJdWDeh0XnMyqX/WNUhqn5X2wyED0551RzYmElqwxRKcJ+/k7L5b1tXprdb25UBzLEvfHjRA5wwoU8EWM4oirqtJTa16aGOjEkZ6salVAcfRL0YM2e5jn1BWohPKtp9nQzyhpxqaJUmnlZdqr8J8Se2z/n6zeoMak45sSRdUluuIkkI1JR09Vt+k1bGEnmts1bi8PJ26xYxAoC+JvD9Lba+8pOIzzmaWHwAAAAAAgEe4KwP0go9nvqcP33lHX/vhj+R3HDXfc6fXkdBH7FWYrwO2mAk3L7j1vnX3bGhQ26alP783qHKbMwC99mZLm9xNv7cknbyDgm1Lk5sDHWWfJemmkUN08cCKTmWf1L4v38UDK/SbkUM7xt5uDWp6a1C76t7aBsWNUYnP1v8bXNkp29p4+x6d/1U1QD8cMlAHFhXqxLIS3T5muEo2LSv64MZGOcZs87GBvqDlkQeVWLFcxkl6HQUAAAAAAKBfovADdtGqpUv17osv6vCvflVj9tpLzXf/TW5ri9ex0IccUPRF4bc23nmfuc/DEb0baC+09i7I77SvXCbZcjnPA4sKNDg3p9vXbp5ZJ0kTS4p0+A72xJtYUqSJJV8safp8U0v3g27DB20hzW4LSZK+M6hSZVvsufj2pq99rmXpvMqyTtdV+P06tbz9v0dj0uk0wxHoc5JJNdz6J5lYXMZ1d3w+AAAAAAAAelXmTQMBskhrY6OmPv2U8gsLdcK556ltyquKzvvQ61joYwZsUTAFHKfTseYt9o37PBLVyZ/XdPtxH61v1qP1X5Rpj+0+WkN2oojrrs/D0Y5ZcNLOLedZF09o3RbXTtxB2bfZkSXFmt0WliQtjkSVcI1y7G3v5bc9cdfontr25VL3yM/TWVsUqo4xWhaJSZLG5+eqxOfb6vqDiwr0bGNLR46DM3BvRaC3OBvr1HTX7Rp4w6+9jgIAAAAAANDvMMMP6KF4LKapzzytDatX6+If/Y/chnq1PvyA17HQB8W2WAoyz8q+v7antgQ6fl9gWzqmtLjb1zYmOy8POCine+9TqdrivKTZuijtrmcamrU+npAl6cqhVbKtL0rDoOMqvum/TWUXy6gO3CJHY7JnGYBsEpnzvtomvcAsPwAAAAAAgDRjhh/QA8YYzZz8mj6fO1fnfPs7GjBokOpuvE4mFvM6GvqgVbEvlvEs93eeRZZjWSr1db8EDDpux156eZalvC1mvfVgAtwOxV2jaYEv9tA7trR4q733tifH6hwq5nZvH7zYl8qGvB58crXxhJ7ctJzoqeUl2rswv9PxxE7uybez5wPZquWxh5R3wEHKGTFS1jZmvgIAAAAAAKD3UfgBPbDwww81e+pU7XvYYTrwqKPU+uSjStRUex0LfVDMdTv2j5Okfb5UOh1WUqTn9xzX7cf75tKVqku0z5r7+sByXTaosneCdmF2W0htzhfl284s5ylJA740c25pNKojS3e8rOfSyBfle75lqbgHpcO9tQ2KGaMSn63vDx641fGiLYrLL89E3Kwh8cV48U4UnUBWSybVdOdtGnzrnV4nAQAAAAAA6De4+wjspI3r1unt559TQVGRTrv4EsWWLFLbC896HQt91EMbmzrt03dkN/ewyxRbLuc5JMevAwoLdur6yhy/hm+xr+Dk5oAiO1gqMOy4mrzF8+5ftHPPKUlz2kKatalo/fagSpX5ty4MC3y2Bm4ar4nGFdjGkp3zQ5GO34/My93pHEC2SqxcocDTj8swsxUAAAAAACAtKPyAnRCPxfTW88+pub5e51z2beXn5qrpjtsk9ipCN80NhnVfbYPqE9ueEbZZ0hj9q65B/2ls6RjbPT8v7YVfbTyhry6s7vj18MbGbl/bnExqbjDc8fHJ5SWyrJ1fWvPULWYFNiYd/X5NrcLOtv/MhRxXv12zQU1blG+nVZTu1PPFXaN7ahskSbvl5+ns7Vx/cHFh+zXG6IWmlk7HmpNJvb6peLQkHdSD4hHIZoEXnlVi5XIZZ/t/3wEAAAAAAGDXsaQnsBPmvPWWli74WEefeabG77uvGu+4TU79Rq9jIYvEXFfPNrbo+cYW7VOYr/0LCzQmP1dlPp9yLEutjqPFkajeag12KgVLfLZ+MWJwjwozr7zV0qbNtZsl6eTynSveNju/slxvtLRpTTwhSZoTDOs71at0anmp9i7MV5FtK+S6+jwc1eSWQKcZkYcUFejY0uKder5nGpu1Lp6QJemqoVWyt/M1P3dAmd5oaZOR9Hh9s8Kuq4klRWpOOnq0vqljOdMjS4o0ZIuZikC/4DhquvN2Db7tLq+TAAAAAAAA9HkUfkA3rVqyRLOnvq7hY8fpmNPPUOi96QpPf8frWMhSrqRPw1F9Go7u8NzhuTn61YghWbck5NSWto7f71uYr2E9LLwKbFt/Hj1Mv1i1Xqs3lX6NSUdPNDRv97r9C/P1m5FDd+q56uIJPVnf/rinlJdo7y/tmfhlEwry9bXKcj3T2CJX0nONrXqusbXTORV+n64YuvUegEB/kFi9Sq1PPqayb12WVW9YAAAAAAAAyDYs6Ql0Q6itTW89/5xi4bDO/Oa3ZIVDav7nPV7HQhYamZero0qKVOLb8V+/Q3L8+v7gSt03fqR2L8hLQ7reUx2JaXks3vHxKT2c3bfZkNwc/WP8SH27aoAqt7Gf3pZG5ubo6qFVum3McBV14+u8pXtrGxQzRsW2re8P7l5J9/3BlbqsaoBytlFm7JGfp7+OGa5BOczuQ//V9tJzSiyvlnG23ucSAAAAAAAAvYMZfsAOGGM045VXtGrZUp180dc0dMwYbbzplzKhoNfRkIVG5eXqt6PaZ52tjye0OhZXfSKpoOPKlVGhbavc79OEgp7PiNuex/cYs1PnD8nN0Zv77LbTz7NbQV6PrtuePNvWtwYN0KVVFVoVi6s6GlNr0lHUtH/dKvw+7ZGfp+E9nAnZ5jgan5+ncfm52qsgX+U7KBY3syxL/zVogM4ZUKa5wbA2JpLKty3tUZCnvQvymdUEuK4a77hdQ/72d0nd+3MFAAAAAACAnUPhB+zAonlzNX/6NI3ZY08dfsKJCr41VbFPPvY6FvqAYbk5KSn1+jrbsjQ2P09j83t31mOJz6f/HjSgx9eX+X06qbykFxMBfUdy3Rq1Pv6Iyv77u5TgAAAAAAAAKcCSnsB2NNdv1LsvvSTbZ+vE88+XFY+p9eEHvI4FAEDWaXv5RcWXLWVpTwAAAAAAgBSg8AO64CSTevuF57Vx3ToddtJXNXrCBLX86x9ygyzlCQDATnNdNd15m+S6XicBAAAAAADocyj8gC7MnzFDn384V6P32EMTv3qywnPnKDLrPa9jAQCQtZIb1qvl0Ye8jgEAAAAAANDnUPgB27Bh1UrNePVlFZaU6MjTTlOu36+Wf97jdSwAALJe8LVJii1dzNKeAAAAAAAAvYjCD/iSaDisN599Vm0tLdrrkEM04cCDFHjsITmNDV5HAwAg+7mumu+7W7Isr5MAAAAAAAD0GRR+wJd88Oabqlm4UCPGjdfEr56saPUyBV9/zetYAAD0GYmVKxSc8iqz/AAAAAAAAHoJhR+whTXV1Zrz9luqqKrS/hOPVHlVlVruu1tyXa+jAQDQp7Q+8ajccFiGn7EAAAAAAAC7jMIP2CQei2napEmKBIMaNnasDjrySAUnv6LE8mqvowEA0OeYcEitD/9bls3LUQAAAAAAgF3FHRZgk49mTFfN559p2JgxOuyEE6VwWK1PPup1LAAA+qzQO28pVr2UpT0BAAAAAAB2EYUfIGnjunWaPXWqikvLNHbvvTV6wgS1PPhPmXDY62gAAPRdxqj5vnskZvkBAAAAAADsEu6uoN9zkklNf3mSWhoaNGjECB1+womKLPhIkZkzvI4GAECfl1herdDUyczyAwAAAAAA2AUUfuj3PpvzgRbNn6+ho0drr4MPVlFpqVr+fZ/XsQAA6DdaH39YJhqRMcbrKAAAAAAAAFmJwg/9WqCpSTMnT1ZuXp7KKyu1/+FHKPjGFCXXrfU6GgAA/YYbDKrlkf+TZVleRwEAAAAAAMhKFH7ot4wxmvX669q4dq0Gjxih/Y6YKJ+MAk8/7nU0AAD6ndBbUxVfXsPSngAAAAAAAD1A4Yd+a+WSxVow6z0NHDZMpQMqteeBB6rt+f/IbW31OhoAAP2P66r5vrslm5enAAAAAAAAO4s7KuiX4tGoZrzyihKxuEorKnTwMcfIaW1R8OWXvI4GAEC/Fa9eqtCbU5nlBwAAAAAAsJMo/NAvfTTzPa1YvEhDRo/WwKHDNGbPPRV4/GGZeMzraAAA9Gutjz8kk0h4HQMAAAAAACCrUPih32mordX7U6equLRMuXl5+spxxym2YrnC097xOhoAAP2eGwio7cVnZVzX6ygAAAAAAABZg8IP/YoxRrOnTFZzfb0GDh2qUXvsoaoRI9T6f/+SjPE6HgAAkNQ26UWZcEiGn80AAAAAAADdQuGHfmXV0iVaOHeuqoYPk8/n06HHHKPwvA8V++wTr6MBAIBNTDSi1mee8joGAAAAAABA1qDwQ7/hOI7enzpViVhMJWXlmnDgQSoqK1frww94HQ0AAHxJ8PVX5bY0s7QnAAAAAABAN1D4od9Y8vFHqv7sMw0eOVK5eXk6YOIRCr4xRcm1a7yOBgAAviyRUOuTj8qyebkKAAAAAACwI9xBQb8Qi0T0/tSp8vl8yi8s1H5HTJRPlgJPP+F1NAAA0IXQ228qWVfLLD8AAAAAAIAdoPBDv/DpBx9oTU21Bo0YoaLSUu150EEKvvis3JZmr6MBAICuuK5aHnuIWX4AAAAAAAA7wN0T9HltLS364M03VFhcrJzcXO172GEy4bDaJr3gdTQAALADkVnvKb5qpYzjeB0FAAAAAAAgY1H4oc+bP326Nq5fp6qhw1RQVKTd9t1PwUnPy8RiXkcDAAA7YoxaH/0/WT6f10kAAAAAAAAyFoUf+rT69es1b/q7qhhYJdvn0z5fOUyKRRWc/IrX0QAAQDdF589VbMkiZvkBAAAAAAB0gcIPfZYxRh+89aYCTc2qqKpSfmGhJuy/v4KvvCQTiXgdDwAA7ISWR5jlBwAAAAAA0BUKP/RZq5ct08I5c1Q1bJgsy9JehxwiOY6Cr07yOhoAANhJ8UULFflonoyT9DoKAAAAAABAxqHwQ5/kOI7en/q6YtGISsrLlZufr70OPEihya/IDQa9jgcAAHqg9bGHZPn8XscAAAAAAADIOBR+6JOWLvhYyz79VINHjpQk7XXwwbIltb38grfBAABAjyVWLN80y4+9/AAAAAAAALZE4Yc+JxGP6/033pBt2yooLFJObq72OuhghaZOltva6nU8AACwCwLPPs1efgAAAAAAAF9C4Yc+Z+mCBVpbU6NBw4dLkiYceJD8fr8CLz7ncTIAALCr4osWKrZ0MbP8AAAAAAAAtkDhhz4lmUho3rR35fP5lJufL39OjvY55BCF35oqt7nJ63gAAKAXMMsPAAAAAACgMwo/9CnVn32q1UuXqmrYMEnS7vsfoNy8PAVe+I/HyQAAQG+JzvtQibVrZFzX6ygAAAAAAAAZgcIPfYbjOJr7zruSbSuvoEC2z6d9Dz1UoXffllNf73U8AADQW4xpn+Vn81IWAAAAAABAovBDH7J84UKtWrpEgzbP7ttvf+UXFamN2X0AAPQ54ZnTlWxslDHG6ygAAAAAAACeo/BDn+C6ruZOe1fGdZVfWChJ2ueQgxWeOUPJDes9TgcAAHqd46ht0vMShR8AAAAAAACFH/qGFYsWacXnn6tq+HBJ0vCxY1VcMUDBV1/yOBkAAEiV0Juvy8TjXscAAAAAAADwHIUfsp7rupo/fZqcZFIFRUWSpD0PPEjRmmrFly7xOB0AAEgVE4koNPU1GcfxOgoAAAAAAICnKPyQ9VYvW6rqzz5T1aa9+0rKyzV8/HiFXnvZ42QAACDV2l6ZJFmW1zEAAAAAAAA8ReGHrGaM0bzp05SIxVRYUiJJmnDgQUq2BRSZOd3jdAAAINWchnqFZ82QcZJeRwEAAAAAAPAMhR+y2prqai1b8IkGDhsqSfLn5Gj3ffZR+A329AEAoL9oe+l5WT6/1zEAAAAAAAA8Q+GHrGWM0UczpisWiai4tEySNHbPveTPy1Pw9dc8TgcAANIlUVOt2NIlMi57+QEAAAAAgP6Jwg9Za/3KlVry8ccaOHRox9ieBx6oyNw5cuo3epgMAACkW2jqa5LFS1sAAAAAANA/cVcEWWvhnA8UDgZVXNY+u2/Q8OGqGDxYwckve5wMAACkW3jmDJlY1OsYAAAAAAAAnqDwQ1YKNDXp87lzVT5woCzLkiTtedBBiq9bq9gnCzxOBwAA0s3EYgq/+7ZMMul1FAAAAAAAgLSj8ENWWvLxx2ppbFT5wIGSpILiYo3afQ+FJr8iGeNxOgAA4IXgG1Nk+f1exwAAAAAAAEg7Cj9knUQ8rgWzZ6mgqEi23f4tvMf+B8jE4wq986bH6QAAgFcSK5YrvmK5jOt6HQUAAAAAACCtKPyQdVYsWqTaVatUOXiwJMm2be2x334Kv/uWTCTicToAAOCl4OuvSpuW+wYAAAAAAOgvKPyQVYwx+vSD92WMUW5+viRp1O57qKCkRMHJr3icDgAAeC08Y5qUSHgdAwAAAAAAIK0o/JBVNq5dq5qFCzVg0+w+Sdpt330U/XyhkmvXeJgMAABkAhOJKDTjXZlk0usoAAAAAAAAaUPhh6yyaP58hdvaVFxWJkkqKCrS0NFjFH73LY+TAQCATBF6Y4osv9/rGAAAAAAAAGlD4YesEWpr02cfvK/SigpZm/bmGbPnnjKOo/DsmR6nAwAAmSK+dIkSa1bLuK7XUQAAAAAAANKCwg9ZY9knC9S4sU4VVVUdY+P33EuReXNkQkEPkwEAgEwTfP01ryMAAAAAAACkDYUfsoLjOFowe5Zyc/Pk27REV1llpQYMHarItHc8TgcAADJNaNo7kuN4HQMAAAAAACAtKPyQFVYvXaJ1NctVOWRIx9jYvfaSEwoqMu9DD5MBAIBMZEJBhWe9J5NMeh0FAAAAAAAg5Sj8kBU+mzNHyURC+YWFHWPj99xLkZkzJG7kAQCAbQi986asTSsDAAAAAAAA9GUUfsh4TRs3aumCBZ327hs0fLiKysvbl+sCAADYhthnn8gNss8vAAAAAADo+yj8kPFqFi5UW0uLSgcM6Bgbt/c+StRvVHzx5x4mAwAAGc11FZ45nWU9AQAAAABAn0fhh4zmuq4+n/eh8goKZFmWJMn2+TRmjz0UmfaOZIzHCQEAQCYLz3qPZT0BAAAAAECfR+GHjFa7erVqV63qtJzn8LHjlFtQoNB0lvMEAADbF1v4qZy2Nq9jAAAAAAAApBSFHzJazecLFQ2FVVBU1DE2bu+9FFteo+TaNR4mAwAAWcF1FZk1g2U9AQAAAABAn0bhh4yViMe1aO5cFZaWdCznmZuXpxHjxis87W2P0wEAgGwRnjmDZT0BAAAAAECfRuGHjLW2plr169erfOAXy3mO3mOCbNtW+L3pHiYDAADZJPb5Z3LaAl7HAAAAAAAASBkKP2Ss6s8+UzKRUF5+fsfY6N13V3Thp3KbmzxMBgAAsorrKjKTZT0BAAAAAEDfReGHjBQJh7Tko49UUlHeMebPydHgUaMU/fAD74IBAICsFJ71Hst6AgAAAACAPovCDxlp5eLFaqqvV3nlwI6xoaPHyOf3K0LhBwAAdhLLegIAAAAAgL6Mwg8ZaemCBZLaZ/VtNnL8eMXWrpFTV+tVLAAAkK1Y1hMAAAAAAPRhFH7IOIGmJtUsXKjyyspO4yPGjlWM2X0AAKCHwjNnsKwnAAAAAADokyj8kHGWL/pcbc3NKq2o6BgbOGSo8ouLFZk7x8NkAAAgm8UWLZQTYFlPAAAAAADQ91D4IaMYY7Ro3jz5c3Nk+3wd4yPGj1cy2Kb4kkUepgMAAFnNdRV5fybLegIAAAAAgD6Hwg8ZpWHDBq2tqVH5wIGdxkeOG6fY3A8l1/UoGQAA6AuiH81nWU8AAAAAANDnUPgho6ypXqZwMKji0rKOsaKSElUMHqzIXPbvAwAAuyb66QIZ3kAEAAAAAAD6GAo/ZJSahQvl8/tlWVbH2Ijx42WSSUU/nu9hMgAA0BeYcEjx6qUyxngdBQAAAAAAoNdQ+CFjtLW0aE1NjUoHVHQaHzFunKKLFsqEwx4lAwAAfUl0/lyWCQcAAAAAAH0KhR8yxtrlNQq2tqikrLxjzJ+ToyGjRiv6Ict5AgCA3hH9eL4sn8/rGAAAAAAAAL2Gwg8ZY9WSpZIx8vn9HWNDR4+Wz+9XhMIPAAD0knj1MrkRVg4AAAAAAAB9B4UfMkI8FlPNws9UvMXsPql9/77Y2jVy6mq9CQYAAPoe11X04/kyjuN1EgAAAAAAgF5B4YeMsGHlSrU0Nqi04kv7940eo9jcOR6lAgAAfVX0o/mSzUthAAAAAADQN3CXAxlhdU21EvG4cvPzO8ZKystVUFqq2GefeJgMAAD0RdEF82VZltcxAAAAAAAAegWFHzznuq6WffKJCgqLOo0PHjFCxnUVW/y5R8kAAEBf5dTXK1G7wesYAAAAAAAAvYLCD55rWL9eDevXb7Wc56ARIxVbtUImHPYoGQAA6Muic+fIJJNexwAAAAAAANhlFH7w3NrlNYqEQiosKek0PmT4cCUWfupRKgAA0NdFF3wky+/3OgYAAAAAAMAuo/CD52o+/1w+v7/TPjqFJSUqrqhQbOFCD5MBAIC+LPbZJzKO43UMAAAAAACAXUbhB0+1tbRoTXW1Sgd0Xs5z8PARkqTYos+8iAUAAPoBE4sptniRjDFeRwEAAAAAANglFH7w1NrlNQq2tqikrLzT+KARIxRbu0ZuIOBNMAAA0C/EPv9UYpYfAAAAAADIchR+8NS6FStkXCPfl/bPYf8+AACQDvGlS9jHDwAAAAAAZD0KP3jGGKOVixersLi403h+YaHKqqoUW8hyngAAILXiS5d4HQEAAAAAAGCXUfjBMy0N9Wqpr1dRaWmn8UHDh0ti/z4AAJB6bltAyfqNXscAAAAAAADYJRR+8Ezd2rUKB4NbzfAbNGKE4nW1chobPUoGAAD6k9jnC2XYxw8AAAAAAGQxCj94pm7NGhljZPt8ncaHDB/B/n0AACBt4ksXS5bldQwAAAAAAIAeo/CDJ4wxWrF4sfILCzuN5+TmqmLQIMU+ZzlPAACQHrGli2XZvCwGAAAAAADZizsb8ERbc7Maa2u3uX+fZduKLqTwAwAA6ZFYtVImkfA6BgAAAAAAQI9R+METdWvXKtQWUFFJSafxyiFDlGwLyKmr9SgZAADod5JJxZfXyBjjdRIAAAAAAIAeofCDJ+rWrpVxjXx+f6fxiqpBSqxY7lEqAADQX8UWfy45jtcxAAAAAAAAeoTCD55YtWSx8grytxqvHDiQwg8AAKRdfOliWV96IxIAAAAAAEC2oPBD2gVbW1W3bp2KSjrv35eTm6viAQOUWEnhBwAA0iu+dLHXEQAAAAAAAHqMwg9pt3HdWoUCARWVdi78KqqqJIkZfgAAIO2cxkY5LS1exwAAAAAAAOgRCj+kXd3atXIdR/6cnE7jFYMGyU0klFi31qNkAACgP4st/lyGffwAAAAAAEAWovBD2q1etkw5eblbjQ+oGqT42tUSN9oAAIAH4tVLvY4ApFxNTY2+853v6MADD9RRRx2lW265RfF4vFvX1tXV6ec//7mOOOII7b///jr99NM1adKkFCcGAAAAAHSH3+sA6F8i4ZA2rFq11f59kjRg4EAlF33mQSoAAAApsWaNLJ/P6xhAyrS2tuqyyy7TmDFj9Pe//111dXW6+eabFY1G9Zvf/Ga7127cuFEXX3yxxo4dq9///vcqLi7WsmXLul0WAgAAAABSi8IPadVUt1GRYFADhw7tNG5ZlsqrqhSYvMKjZAAAoL9Lrl3tdQQgpZ566imFQiHdfffdKi8vlyQ5jqPf/va3uvzyyzV48OAur7311ls1ZMgQ/fvf/5ZvUzE+ceLEdMQGAAAAAHQDS3oirZrr6xWPxZSbn99pvHTAAPlycpRYsdyjZAAAoL9L1tXKJJNexwBSZvr06Zo4cWJH2SdJp59+ulzX1cyZM7u8LhgMavLkybr00ks7yj4AAAAAQGah8ENaNW/cKMtqn9G3pQFVgyRJ8VUrPUgFAAAgyXWVrN3gdQogZZYvX65x48Z1GistLVVVVZWWL+/6jXcLFy5UIpGQ3+/Xt771Le2zzz466qijdOuttyqRSKQ6NgAAAACgG1jSE2m1YfUq+XNztxqvGFSlRP1GmVDQg1QAAADtEiuXyz90GHv5oU8KBAIqLd16L+2ysjK1trZ2eV1DQ4Mk6Ve/+pW+/vWv68orr9Qnn3yiu+66S7Zt67rrrutxJr8/s9+D6vNldj5gS3y/Av0Hf96RLfheBdKLwg9pk0wkVLd2rQqKirY6NqCqiuU8AQCA5xJr16jAGK9jABnFdV1J0pFHHqkbbrhBknTEEUcoFArpwQcf1BVXXKH8Ly3Z3x22bamiYut/GwDomdLSAq8jAADQCT+bgPSi8EPatDQ0KBIKqrS8YqtjA6oGKTbnfQ9SAQAAfCGxZo0sPy+R0TeVlpaqra1tq/HW1laVlZVt9zqpveTb0sSJE3Xfffdp1apVmjBhwk7ncV2jQCC809elk89nc6MKWSMQiMhxXK9jAEgDfj4hW/CzCdh1paUF3Z4ty90MpE1zfb2iobAGDRveaTy/sFD5xcUKrlzhUTIAAIB2ibWrvY4ApMy4ceO22quvra1N9fX1W+3tt6Xddtttu48bi8V6nCmZ5AYQ0Fscx+XPFAAgo/CzCUgvFtFF2jTVb5SMkf2lPXFKK9pn/CXWrfEiFgAAQIfkhvUyLv8gRd907LHHatasWQoEAh1jU6ZMkW3bOuqoo7q8bvjw4dpjjz00a9asTuOzZs1Sfn7+DgtBAAAAAEDqUfghberXrZO1jamnJRUVMq6rZF2tB6kAAAC2kEzK2VjndQogJS655BIVFRXpiiuu0HvvvafnnntOt9xyiy655BINHjy447zLLrtMJ598cqdrr732Wr399tv64x//qJkzZ+q+++7Tgw8+qG9/+9sqLCxM96cCAAAAAPgSlvREWhhjtGHVKhUUFm11rKS8XMmmJimR8CAZAABAZ/FVK+QbNFiWzXvj0LeUlZXp4Ycf1u9//3tdccUVKioq0kUXXaRrr72203mu68pxnE5jJ554ov7617/q3nvv1ZNPPqlBgwbpxz/+sX7wgx+k81MAAAAAAHSBwg9p0dbSokBLs/KLuij8NqzzIBUAAMDWEqtXq+CQwyQKP/RB48eP10MPPbTdcx599NFtjp9xxhk644wzUpAKAAAAALCruIuBtGiur1c0FFLBNgq/srIyObUbPEgFAACwteS6NbL8vC8OAAAAAABkDwo/pEVz/UYlE0nl5OZudaykvEJJCj8AAJAhEmtWex0BAAAAAABgp1D4IS0a6+pkWVuP5xUUKKegQMkN69MfCgAAYBuSdbVeRwAAAAAAANgpFH5Ii9rVq5WbX7DVeHFZmSRurAEAgMxhwmG5sZjXMQAAAAAAALqNwg8p5ziOmjZuVF5B/lbHiktL28+p35juWAAAAF1ym5u8jgAAAAAAANBtFH5IuVBrq2KRiHLzty78ikrL5EQicoNBD5IBAABsW5I3IwEAAAAAgCxC4YeUC7S0KB6NKm9bS3qWlirZUO9BKgAAgK459fUyjuN1DAAAAAAAgG6h8EPKtbU0KxGPKyc3d6tjRaWlcti/DwAAZBinqVEyxusYAAAAAAAA3ULhh5Rra26RZVmyLGurYyUlJezfBwAAMk6ysUHy8VIZAAAAAABkB+5iIOVam5qkrbs+SVJRWRmFHwAAyDhOY4Msi5fKAAAAAAAgO3AXAynXWLtBuXl5W43n5OYqJz9fyXr28AMAAJnFaWr0OgIAAAAAAEC3UfghpYwxaq6vV25e/lbH8gsLJUlua0uaUwEAAGyf09jgdQQAAAAAAIBuo/BDSkVCIUXDYeVsY4ZfXn6BJMltC6Q7FgAAwHa5gYBMMul1DAAAAAAAgG6h8ENKhQIBxWOxbS7pmVe4ufBrS3csAACA7TNGDqsQAAAAAACALEHhh5QKBlq7Lvw2zfBzmOEHAAAykNPAPsMAAAAAACA7UPghpUKtAbmuI5/fv9WxvIICOdGolEh4kAwAAGD7khs3yjiO1zEAAAAAAAB2iMIPKRVqC8jq4lheQT6z+wAAQMZymholY7yOAQAAAAAAsEMUfkiptpYWydp25ZeXX8D+fQAAIGO5QV6nAAAAAACA7EDhh5RqaWiQPydnm8fyCwtkAq1pTgQAANA9JhyWbF4uwxsvvvii1q5d2+XxtWvX6sUXX0xfIAAAAABARuMOBlIq1NbWZeGXl5cvN8CSngAAIDO5kbAsCj945MYbb9RHH33U5fFPPvlEN954YxoTAQAAAAAyGXcwkDLGGIWDQfn8XczwK8iXyx5+AAAgQ5lw2OsI6MfMDvaPDIfD8vl8aUoDAAAAAMh0fq8DoO9KJhKKR6Py+7f9bZZXUKA4hR8AAMhQbiTidQT0M4sXL9bixYs7Pp47d64cx9nqvEAgoKeeekpjx45NZzwAAAAAQAaj8EPKxCIROcmk8goKtnk8r6BQUZb0BAAAGcpEmOGH9HrzzTd19913S5Isy9LTTz+tp59+epvnlpaW6i9/+Us64wEAAAAAMhiFH1ImGokomUyo0F+y1TF/To5sv19OW5sHyQAAAHbMZUlPpNnXv/51HX/88TLG6Gtf+5quuuoqHXvssZ3OsSxLBQUFGjVqVJcraQAAAAAA+h/+hYiUiUejSiaS27wRkV9YKEns4QcAADKWyww/pNmgQYM0aNAgSdIjjzyi8ePHq7Ky0uNUAAAAAIBsQOGHlIlFwnKSCflycrY6lpufL0lyg8zwAwAAmckwww8eOuyww7yOAAAAAADIIhR+SJloJCLXNbJte6tjPp9PkmTi8XTHAgAA6BYTi8m4rqxtvJYB0mHGjBl69tlntWbNGgUCARljOh23LEtvvvmmR+kAAAAAAJmEwg8pE4tEZKn9RsSX2ZsKPyWT6Q0FAACwE0wsJqugwOsY6If+/e9/6/bbb1dlZaX2339/TZgwwetIAAAAAIAMRuGHlIlFo5LMNo/Z9qYZfhR+AAAgg5loRKLwgwceeeQRHXHEEbr//vuVs40l8gEAAAAA2BLrEyFlYpFIF3WfZPvav/WMQ+EHAAAylxthHz94IxAI6NRTT6XsAwAAAAB0C4UfUiYSDMq2tv0ttnmGnxIUfgAAIHO5IQo/eGO//fbTihUrvI4BAAAAAMgSFH5ImWAgIF/OtleN9W2e4ceSngAAIIO5oZDXEdBP3XTTTXrjjTf08ssvex0FAAAAAJAF2MMPKRNua5PPv+0liKzNe/ixpCcAAMhkyYTXCdBPXXPNNUomk/rZz36mm266SUOGDJFtd36/pmVZmjRpkkcJAQAAAACZhMIPKRMJh+Tz+bZ5bPMMPzlOGhMBAADsJNf1OgH6qfLycpWXl2v06NFeRwEAAAAAZAEKP6SMk3S2ehfyZrbPJ+O63EQDAAAZzRhXxhhZluV1FPQzjz76qNcRAAAAAABZhD38kDJOMinL3vbNMdu22b8PAABkPtdIxnidAgAAAAAAYLuY4YeUcF1XruvKUheFn89H4QcAADIfqxHAIx9++GG3zvvKV76S4iQAAAAAgGxA4YeUcB1HMkZWV0t62j4Z9u8DAACZzriSmOGH9Puv//qvbi0lu2jRojSkAQAAAABkOgo/pITrujLGlWV1tYefLZNMpDkVgL6s4PCJKjzhq7Lz8ryOAqAP8Y8aQ98HTzzyyCNbjTmOo3Xr1umZZ56R67q67rrrPEgGAAAAAMhEFH5ICddxZFwj29/VHn4s6QlgF/n9Kj7ldBWd8FXljBolKydXxklIiajXyQD0JTn56mKFciClDjvssC6PXXDBBbr00ks1Z84cTZw4MY2pAAAAAACZisIPKeG6rlxj5O9ySU+bPXEA7DS7tFQl51yggiOOkn/wIFk+v0ykVWblDLlr50t1iySXNxMA6D3WkT+SNepwr2MAndi2rTPPPFP//Oc/dfXVV3sdBwAAAACQASj8kBKu42xa0nPbb4l3XEeWj28/ADvmHzFSJeddpPyDDpavrFyWbcu0rpdZ9JrcdfOlxhVivT0AKdONPdQAL7S2tqqtrc3rGAAAAACADEHjgpTYvKRnl4VfMikrNzfNqQBki7wDDlLJmecob6+9ZRUWSTIy9dUyH09pn8kX3Oh1RAD9hsWSnvDE+vXrtzkeCAQ0d+5cPfDAAzr00EPTnAoAAAAAkKko/JASjutIZgeFX05OmlMByFi2raITvqqik05RzrixsnPzZZyEzIZPZT6dJ7PuYynGLAYA6dfVaxkg1U488cQuv/+MMTrwwAP129/+Ns2pAAAAAACZisIPKWFcI9cYWV3s4eckHdkUfkD/Vlio0jPPVeHRx8o/bKgsX45MLCSzZo6ctfOl2s8kJ+51SgD9nWWLKX7wwp/+9KetCj/LslRaWqpRo0Zpt9128ygZAAAAACATUfghJXa4h5+TlOX3S7YtuW6a0wHwil01WKXnX6iCQw+Tb8AAWbZPJlgvs/SN9qU6G5ZJhv34AGQQa9tvXgJS7YILLvA6AgAAAAAgi1D4ISW6s4efJFk5OTKxWDqjAUiz3Al7quSc85W37/6yi0tkWZbcxhUyn7wrd918qXWd1xEBoGv+fJb1hOeqq6u1bl37z8vhw4czuw8AAAAAsBUKP6SE4zoy293Dz5EkWTm5FH5AH1Rw9LEqPuV05e62u+z8Ahk3KVO7SGbRXLnrPpIiLV5HBIDuySnwOgH6sTfffFM333xzR9m32YgRI3TDDTfopJNO8igZAAAAACDTUPghNYxp/7WdJT0lycrNTWcqAKmSm6vi085S0XEnKGfkCFn+XJlEVGbdfLlr58us/0RKRr1OCQA7Lyff6wTop6ZNm6arrrpKw4YN07XXXqvx48dLkmpqavTMM8/oxz/+se677z4de+yxHicFAAAAAGQCCj+khM/nl2XbMl3sz7d5SU/l5KQxFYDeZJdXqOTcC1V4xET5qgbKsv0y4WaZmmly186TNi6RjON1TADYNf48rxOgn7r33ns1YcIEPf744yosLOwYP+mkk/Stb31Ll156qe655x4KPwAAAACAJAo/pIjt98u2bbldFn6blvRkhh+QVfxjxqr03AuUf+DBsktLZVm2TMsamYUvy107X2pe5XVEAOhdPgo/eGPJkiW69tprO5V9mxUWFur888/X3/72Nw+SAQAAAAAyEYUfUsLn9213hp+7eUnPHAo/INPlH3qYis84W3kTJsguKJIxrszGJTLLXm7fjy/U4HVEAEgdP69V4I28vDy1trZ2eby1tVV5eRTSAAAAAIB2FH5ICZ/PL9u25JrtL+lp5bKkJ5Bx/H4VffVUFZ34VeWOHi0rJ08mGZdZv0Du2nky6xdI8ZDXKQEg9SxLlo/XKvDG4YcfrkceeUTHHHOMDjrooE7HFixYoEcffVRHHXWUR+kAAAAAAJmGwg8p4fNv3sPPbPO442xa0pMZfkBGsItLVHzO+So88mj5Bw+W5fPLRNtkVs6Uu26+VLtIchNexwSA9GI5T3jo+uuv1yWXXKJLL71U+++/v8aOHStJWrFihT755BNVVlbqpz/9qccpAQAAAACZgsIPKeHz+WRbXS/p+cUMPwo/wCv+4cNVct6Fyj/oUPnKK9pL+kCtzOLJ7fvxNS6XtO3SHgD6BT+FH7wzcuRITZo0Sf/85z81ffp0vfbaa5KkYcOG6b//+7/1gx/8QJWVlR6nBAAAAABkCgo/pMTmGX5uF4VfMtE+U8hi3xEgrfL2O0AlZ52rvL33llVYLEkyDTUyC95oL/naaj1OCAAZhMIPHkomk8rLy9MvfvEL/eIXv9jqeDAYVDKZlN/PP+kAAAAAABR+SJGOwm/TTL4vS8Tjch1HvtKyNCcD+hnbVuFxJ6r4q6cqZ9w42Xn5Mk5CZsNnMp/Ok1n/sRQNeJ0SADIThR889Ic//EFz587VK6+8ss3j3/jGN3T44YfrV7/6VZqTAQAAAAAyEYUfUsK2bfl8PiUT8S7PiYVCssso/IBel5+vkrPOVdHRx8k/bJgsf45MPCSz9kM5a+dLGz6VnK7/bAIANvHne50A/diMGTN03nnndXn81FNP1aRJk9IXCAAAAACQ0Sj8kDL+3BxFw+Euj0fDYeWUlacvENCH2QOrVHrehSr4yuHyVVbKsn0ywQaZ6rfkrp0n1S+TzLaX2AUAdCGv2OsE6Mc2btyowYMHd3l80KBBqqurS2MiAAAAAEAmo/BDyvj9OV3u4SdJkUhEeczwA3osZ7c9VHruBcrbb3/ZJSWyLFtu00qZT6e378fXutbriACQ1az8MhljZFmW11HQD5WXl2vFihVdHq+pqVFxMaU0AAAAAKAdhR9SJic3V2Z7hV84rAFlFWlMBGS/giOPVvEpZyh3j91l5xfKuI5M3SKZJfPaS75Is9cRAaDvyC9tnx1t+bxOgn7omGOO0VNPPaWzzz5be++9d6djCxcu1DPPPKPTTjvNo3QAAAAAgExD4YeU8edsf4ZfLBKRNWxoGhMBWcjvV/HpZ6nouBOVM3KkrJxcmURUZt3HctfNk1n/iZSIeJ0SAPqm/DLJGK9ToJ+6+uqrNWPGDH3ta1/TiSeeqN12202StGzZMr3zzjsaMGCArr76ao9TAgAAAAAyBYUfUiYnN1dmO3uGRcMh+UpL05gIyA52WblKzj1fBUccJX9VlSyfXybSIrNi01KdGxdJruN1TADo+/JLJcv2OgX6qcGDB+u5557T7bffrrfeektvvPGGJKm4uFhnn322rr322u3u8QcAAAAA6F8o/JAyufn5cpJdlxLRcFj+4hLJ55Mcygv0b/5RY1R67gXKP+hg2WVlsixbpmWdzKJX20u+pq738AEApIZVUCHLpvCDdwYNGqS//OUvMsaoqalJkjRgwAD2lQQAAAAAbIXCDylTUlYuZztFXiQcliTZpaVym9l3DP1P3sGHqOSMc5S3516yCgolGZn6ZTLzX2sv+UL1XkcEgP6toNzrBIAkybIsVVZWeh0DAAAAAJDBKPyQMvlFhdree4+jmwo/X1k5hR/6B79fRSd8VUUnnaLcMWNk5ebJOHGZ9Z/IrJ0vs/5jKRb0OiUAYLP8Eq8TAAAAAAAAdAuFH1Imv7Bwu8c3F352WVk64gCesIqKVXLWuSo8+lj5hwyW5cuRiQVlVs9un8VXt1ByEl7HBAB8me2XlVPgdQoAAAAAAIBuofBDyuQXFsrIdHk8FolIap/hB/Ql/iFDVXzehSo45CvyVVTIsn0ybXUyS6bKXTtPaqyRTNd/NgAAGSC/1OsEAAAAAAAA3Ubhh5QpKCyUbdtyHEc+n2+r48lEQsl4XHZpefrDAb0sd+99VXLWecrbd1/ZRcWyLEtuw3KZBW/JXTdfCmzwOiIAYGfkswIBAAAAAADIHhR+SJn8wkL5/TlKJhLbLPwkKRYKyceSnshSBccer+JTTlfu+PGy8wpknKRM7UKZhfPkrvtIirZ6HREA0FPM8AMAAAAAAFmEwg8pk19YKH9Oe+GXl5+/zXMi4ZAKBgxIczKgh/LyVXzGWSo69gTlDB8uy58jEw/LrJsvZ+08acOnUjLmdUoAQC+wCipkjJFlWV5HAQAAAAAA2CEKP6RMfmFRR+HXlUBrQEVDhqYxFbBz7MqBKjn3QhUedrh8Awe278cXbpKpflvu2vlS/VLJOF7HBAD0tuJB7X+/W7xcBgAAAAAAmY87GEiZvIKCHRZ+bS3NGrn33mlMBexYzm67qfScC5T3/9n78/i47sLe/39/zsxIMyPNaN8tWZLlRbblVbbjJd5iJ3HibCSBQIGwtIQ29LZA7y2Xy22h9Baa/u7vUQrlltJSUihNoZQkZDfZY2f3vtuSF+37vs5yvn/IcWK8SLI1Mxrp9Xw8/JDn6HPOvCfYnuG89fl8Fi2R5fPJGEt2x1nZBx8dKfk6a2IdEQAQaclZkqxYpwAAAAAAABgTCj9EjGVZ8vp8am9uvuyYns5OuVLTZNxu2YODUUwHXMizarWSb75VCXPmyvJ4ZYdDspuPyj7+rsK1e6T+tlhHBABEkfHny1gUfgAAAAAAID5Q+CGikvx+NdfVXfb73R2dkiRnbp4Cp09FKRUgyelU8o3blLRpi1xFRTKuBNnBIdl1exWu3S27fp8U6I91SgBArCRnxjoBAAAAAADAmFH4IaJ8KamjLukpUfghOiy/X77bPyTPdWvlzMmWcThlD3TJPv3qyFKdTUekcDDWMQEAsZaQJOPyxDoFAAAAAADAmFH4IaKSU/yyw6HLfn9oYECBwUE5c/OimArTiXNGoXx33iP30mVypKTKWJbsrnrZR55SuG631HZKkh3rmACAySQ5O9YJAAAAAAAAxoXCDxHl9nolmSuO6enoUEJufnQCYVpIXLxUvltvV2L5fBlvkiRbdstJ2XufGZnJ13v5fSUBADAUfgAAAAAAIM5Q+CGiPEnJskeZPdXd1aWcPGb44RpYlpI2bVHSlhuVUFIik+CWHQrIbjgg+8C7suv2SkM9sU4JAIgXyVmywyEZyxHrJAAAAAAAAGNC4YeI8qWlyrIcCgYCcrpclxzT3dmhgrLZUU6GuOf1yr/9TnnXrpczP1fG4ZI91Ce75q2RWXyNB6XQcKxTAgDiUXK2WO4ZAAAAAADEEwo/RJQvNU2JHreGBwcvW/j1dnbKlZkpk5Age5iCBpfnyM6R78675alcKUd6uozlkN3bIvv4jpGSr/WEZHODFgBwbYwvV8biYzIAAAAAAIgf3MlARPlTU5XodmtocFBen++SY7o7OyWNlDnB2poopkM8SJhbLt/tdylxYYWsZJ+MMQq3nZK9/yWFa9+VuutjHREAMNX4cmKdAAAAAAAAYFwo/BBRCW63fKlpamtqvOyYno4OSZIzN4/CD5Ikz7r1Sr7xFiWUlclye2SHg7Ibj8g+8o7CdXukgc5YRwQATFWWS/KkxDoFAAAAAADAuFD4IeIycnNVf/r0Zb8/0Nen0PCwnLn50QuFySUhQcnbtitpwya5ZsyQcSbIDgzKrtutUM27UsMBKTgY65QAgOkgJV/GWLFOAQAAAAAAMC4Ufoi49OwchUPBK47p6eiQMy8vSokwGVhpafLdcbe8q1bLkZUpYzll93fIrnp5ZKnO5mOSHYp1TADANGNSC2XbtowxsY4CAAAAAAAwZhR+iDh/WuqoYzo7O5RTNDPyYRBTzuIS+e+4W+4lS2X5/TLGkt1ZI/vQrxWu3S11nIl1RADAdJdWJIVDkoOPyQAAAAAAIH5wJwMR50tNlbEshYJBOZyX/iPX3tSswspKyRjJtqOcEJHkrlyp5Fu2K3HuPFmeJNl2WHbzMdknfj2yH19fa6wjAgBwnkmbKVmOWMcAAAAAAAAYFwo/RJwvNU0JbreGh4bkuVzh19wkh9crR3aOQk2NUU6ICeV0KmnLTUravEUJM2fKuBJlB4dl1+9TuPZd2fX7pOG+WKcEAODS0maynCcAAAAAAIg7FH6IOF9qqhIT3RoaHJAnKemSY9qbmyVJCaVlGqDwiztWsk/Jt90l79p1cubkyDicsgd7ZJ/eqXDdbqnxiBQOxDomAABX5k6RSfDGOgUAAAAAAMC4Ufgh4hI9HiWlpKir9fJLNw7296u/u0sJpbM08PprUUyHq+UsKJDvzrvlXlopR2qajGXJ7m6UffTpkf342qolsTwrACCOpBXFOgEAAAAAAMBVofBDxBljlJmbq+ba2iuOa2tuVuassiilwtVIrFgs3/Y7lDh/vow3WZJkt1bJ3rdjpOTrYXYmACB+mdRC2eGQDHv4AQAAAACAOEPhh6hIz8lRMHDlJR3bm5uVt3BhlBJhTCxL3g2blbzlJrlKS2UlumWHArIbDso+8K7s+r3SYHesUwIAMDFSC2OdAAAAAAAA4KpQ+CEqfKmpkrnymLamJjnXrJUjI0Ohtrao5MIluN3ybb9DSes2yJmfL+N0yR7uk137tkK1u6WGA1JoONYpAQCYcCa9mNl9AAAAAAAgLlH4ISrSMjNlWQ4FAwE5Xa5LjmlvapIkuUrLKPyizMrMkv/Ou+VZsUqOjAwZyyG7r1X2yecVrn1Xajkh2eFYxwQAIHIsh+TLjXUKAAAAAACAq0Lhh6hIz86RJylJA/198qWkXnJMf2+vhnp7lVA6S4NvvxndgNOQa/Zc+e+4S4kVi2Ql+2SMpXD7adkHXhnZj6/rynsuAgAwpfjzmd0HAAAAAADiFoUfosKXliZfWqp6OjovW/hJUmtzs9JKy6IXbJrxrFmn5JtuUcLs2bLcXtnhkOymI7KPvjtS8g10xDoiAAAxYTLLZNu2jBllDXIAAAAAAIBJiMIPUWFZlgqKS7S37rUrjmtvblb2nNlRSjUNuFxKvvlWJW3YLFdhoYwrQXZgUHbdXoXr3pVdv18KDMQ6JQAAsZc5e2T5asMsPwAAAAAAEH8o/BA12QUzFAqFrjimrblJruuuk5WSqnBXZ3SCTTFWSqp8d35InlVr5MzKknE4ZQ90yj51bqnO5iNS+Mr/OwAAMN2Y7Lks6QkAAAAAAOIWhR+iJj0nR5axFAoG5XBe+o9ee1OTJI3s47fn3WjGi2vOomL577xb7iVLZaWkyBhLdmed7CNPjpR87adiHREAgMkr0SeTnBXrFAAAAAAAAFeNwg9Rk56dLXdSkgb7+5Xk919yTG9XlwIDA3KVllH4jSJxWaV8t9ymxHnlMh6vJFt2ywnZu58aKfn6WmIdEQCA+JDJcuIAAAAAACC+UfghalIyMpTk96u/r++yhZ8kNTfUK618fhSTxQmnU0mbtyhp841KKC6WSUiUHRqWXb9fdu27suv2ScO9sU4JAEDcMVllssNBGYuPxgAAAAAAID5xVwNR43A4lDdzpg699dYVxzXW1ip35SrJ4ZBG2fNvqjNJyfLddoe8a9fLmZsj43DJHuqVffb1kVl8TYekUCDWMQEAiGsma65k2L8PAAAAAADELwo/RFVuYaH279p1xTFNZ2vkWL9BCbPKNHz8WJSSTR7O3Dwl33m3PMtXyJGWJmM5ZPc0yT727EjJ11Yl2XasYwIAMDVYDim9RMaYWCcBAAAAAAC4ahR+iKr07BwZyygcDsuyrEuOaWtqVHBoSIkLF02bwi9h/kL5tt+pxIULZSUlS5LstlOy9z2vcN1uqbshxgkBAJii0mbKOPhIDAAAAAAA4ht3NxBVGTk5cnu9Guzrk9fnu+QY27bVVFur9IWL1PNfv4hywujxrN+o5Bu3KWFWmaxEt+xQUHbjIdmH3pVdt0ca7Ip1RAAApjyTOVu2HZYxl/5BJAAAAAAAgHhA4YeoSsvKUlKyTwNXKPwkqbG2RnnXXSc5nVIwGMWEEZToVvIt25W0fpNcBQUyTpfs4X7Zde8oVLtbajggBYdinRIAgGnFZM0eWSqbFT0BAAAAAEAco/BDVDmcTuUUFenY3r3KuMK4xpoaWRs2KmHWbA0fOxK1fBPNysiU74675V25So7MzJH9+PrbZZ98YWQ/vpbjkh2KdUwAAKav7HkyliPWKQAAAAAAAK4JhR+iLq+oSIfefuuKY9qbmhQYHFTiwoq4K/xcZWXy3/4hJS5aIsvnkzGW7I6zsg8+OlLyddbEOiIAAJCklAIZtz/WKQAAAAAAAK4ZhR+iLmdGoSzLUigYlMN56T+Ctm2rqa5WGQsXqeeXP49ywvHzrFqt5G3blTB7jiyPV3Y4JLv5qOzj7ypcu0fqb4t1RAAA8FtM7kL27wMAAAAAAFMChR+iLqewUEl+v3q7u5WSnn7ZcY01tcpfvXpy7uPndCr5xm1K2rRFrqIiGVeC7OCQ7Lq9Ctfull2/Twr0xzolAAC4ApO/SLLF/n0AAAAAACDuUfgh6pJTUpSdX6Da6qpRCr+zsjZuVELZHA0fPRzFhJdm+f3y3X63PKvXyJmdLeNwyh7okn361ZGlOpuOSOFJVkwCAIBLs1zn9u9jdh8AAAAAAIh/FH6IOmOMiueVq+rwoSuO62huVmBgQO6FFTEr/JwziuS76265lyyTIyVVxrJkd9XLPvKUwnW7pbZTGpkaAAAA4krWbBmHK9YpAAAAAAAAJgSFH2Iit3BkH79gICCn69I322zbVmNdrTIrFkv/+R9Ry5a4ZKl8t96uxHnzZbxJkmzZLSdl731mZCZfb3PUsgAAgMgweQtlh0MyliPWUQAAAAAAAK4ZhR9iIreoSEl+v/q6u5WSkXHZcY01tSpYuzay+/hZlpI2bVHSlhuVUFIik+CWHQrIbjgg+8C7suv2SkM9kXluAAAQEyZ/sWRYzhMAAAAAAEwNFH6IieSUFOXMKNTZEyeuXPidPStr0yYlzpuvoYP7Jy6A1yv/9jvlXbtezvxcGYdL9lCf7Jq3RmbxNR6UQsMT93wAAGDycPtlUgtjnQIAAAAAAGDCUPghZornztXJAweuOKajpVkD3d3yVK685sLPkZ0j3513y1O5Uo70dBnLIbu3RfbxHSMlX+sJyWY/PgAApjqTuyDWEQAAAAAAACYUhR9iJqewSJbDccV9/CSp5tQpFa+4TvrxP437ORLmlst3+11KXFghK9knY4zCbadk739J4dp3pe76a3kJAAAgHuVWsH8fAAAAAACYUij8EDO5hYVj2sevpuqk5ixeLGd+gYL1daNe17Nug5Jv3KaE2WWyEj2yw0HZjUdkH3lH4bo90kDnBL4KAAAQb0z+Yso+AAAAAAAwpVD4IWaSU1KUO6NQZ04cG3Ufv1AgIM+KVep57L8uHpCQoORt25W0YZNcM2bIOBNkBwZl1+1WqOZdqeGAFByM4CsBAABxI7VIxu2LdQoAAAAAAIAJReGHmCqeN1cnDlx5b75QMKiGM2eU8YHCz0pLk++Ou+VdtVqOrEwZyym7v0N21csjS3U2H5PsUDReAgAAiCOmsJLlPDGtVVVV6S//8i+1Z88eJSUl6Y477tAf//EfKyEhYczX+PGPf6xvfetb2rhxo37wgx9EMC0AAAAAYKwo/BBTY97Hr7pKBTdsUfqX/lTuikWy/H4ZY8nurJF96NcK1+6WOs5EMTkAAIhHZuYqyVixjgHERFdXl+6//34VFxfru9/9rpqamvTtb39bg4OD+rM/+7MxXaOlpUV///d/r4wrrNABAAAAAIg+Cj/EVG5hoZL9fvV2dyk1I/Oy42qrq6UbwvKuXSe7+ZjsE78e2Y+vrzWKaQEAQFzz5cr482KdAoiZRx55RH19ffre976n1NRUSVIoFNI3vvENPfDAA8rJyRn1Gn/zN3+jzZs3q76+PsJpAQAAAADjwY83I6aS/H7lFxerp7PriuMGenvV0domu+Zd2c9/S/bxHZR9AABgXEaW8wzHOgYQM6+88opWr159vuyTpG3btikcDmvnzp2jnv/OO+/oN7/5jb785S9HMCUAAAAA4GpQ+CHmShcsVGB4SLZtX3Hc6WPHpLxFkuPyS38CAABcjilaJRkT6xhAzFRXV6u0tPSCY36/X1lZWaqurr7iuaFQSN/85jf1+c9/XtnZ2ZGMCQAAAAC4CizpiZibMatUHq9XA3198iYnX3bc2RMntGz9BoVyK6S63VFMCAAA4p43QyZ9ZqxTADHV3d0tv99/0fGUlBR1dV15xY2f/exnGhgY0Kc+9akJzeR0Tu6fQXU4Jnc+4IP48wpMH/x9R7zgzyoQXRR+iLnsghnKyM1Te3PTFQu/7o4OdbY2yz9juWwKPwAAMA6msFK2HZYx/B9OYLza2tr0d3/3d/rrv/5rJSQkTNh1LcsoLS1pwq4HTHd+vyfWEQAAuADvTUB0Ufgh5hwOh2YvWqSXHnv0kt/v6epQY12NOtqblF6QpW133SMZh2SHohsUAADELVO0MtYRgJjz+/3q6em56HhXV5dSUlIue953vvMdzZ07V5WVleru7pYkBYNBBYNBdXd3y+v1yukc//+1DIdtdXf3j/u8aHI4LG5UIW50dw8oFGKvWmA64P0J8YL3JuDa+f2eMc+WpfDDpFA4a5YcDqcCw8NyOJ3qbG1WU0OtOjpaFAgMynJaSk5JUVN9jRzuZIVyyqXGg7GODQAA4oHbL2WWybB/H6a50tLSi/bq6+npUUtLy0V7+33QqVOn9Pbbb2vFihUXfW/FihX64Q9/qPXr119VpmCQG0DARAmFwvydAgBMKrw3AdFF4YdJoaCkVF5fsva/s1MDg30KhQNyuJxKyUhXVl65sgsKzy8f1NPZpqTiNbIp/AAAwBiYGctjHQGYFNavX69/+Id/uGAvv2eeeUaWZWnt2rWXPe+rX/3q+Zl97/mrv/orud1ufelLX9LcuXMjmhsAAAAAMDoKP0wKiR6PUvMydOxEnzLyc5RTMEOZufmyrIunqp46cVQLl1RKb/9YCg1HPywAAIgrpnCFZNsSM/wwzd133336yU9+ogcffFAPPPCAmpqa9NBDD+m+++5TTk7O+XH333+/6uvrtWPHDklSeXn5Rdfy+/3yer1atWpV1PIDAAAAAC5vbAt/AlGw5sZtKp47T/OXVSo7f8Ylyz5ppPCzXG6ZGcuinBAAAMQdt1/KnS9zmc8VwHSSkpKihx9+WA6HQw8++KD+7//9v7rnnnv0la985YJx4XBYoRD7ZQMAAABAPGGGHyaNGcWz5POnqqerU6npmZcd19fTpdbGOqUXr5HOvBHFhAAAIN6YmatjHQGYVGbNmqUf//jHVxzzk5/8ZNTrjGUMAAAAACB6+FFnTBrJvhTNnDVPPV2do46tPnFEJq9CSvRFPhgAAIhbZtZ6SSzlCQAAAAAApjYKP0wqJXPLFQoFFQ6HrzjubNVx2ZLMzOuiEwwAAMSf1EKZ1EIZ9u4DAAAAAABTHIUfJpUZxWVK9qWot7vriuOGhwZVf/aU7OI1UUoGAADijSlZJzvMPmQAAAAAAGDqo/DDpJKSlqEZxbPU3dk26thTJ47IkTlL8uVGIRkAAIgrxpIpXSdjOWKdBAAAAAAAIOIo/DCpGGM0e8FiBYNBhUJX/on8+jOnFBgelCleHaV0AAAgbuRVyLDXLwAAAAAAmCYo/DDplMwulz8lTT1dHVccFwoFdbb6hOzitVFKBgAA4oUpvZ7lPAEAAAAAwLRB4YdJJ9mfqtJ5C9XdMZZlPY/K4cuWMsuikAwAAMQFl1dmxjKW8wQAAAAAANMGhR8mpbLyCslYCgYCVxzXXF+j/p4umdL1UUoGAAAmOzNzlWQo+wAAAAAAwPRB4YdJqah0rtIyMtXZ0Trq2BNHDkrFaySXNwrJAADAZGdmbZBkxzoGAAAAAABA1FD4YVJyezyas3Cp+rq7Rh1bdfSAZDlkStdFIRkAAJjU/HkyGaUyho+5AAAAAABg+uBOCCat0rkL5HQlaGhw4IrjBgf6VXPqpOyyzVFKBgAAJisze7PscCjWMQAAAAAAAKKKwg+TVkFRqTJz8tXZPoZlPQ/tkyMlX8ouj0IyAAAwKTndMqUbZCz27wMAAAAAANMLhR8mLafLpflLKjXQ1yvbvvI+PM0NteruaJWZzSw/AACmK1O8RnImxjoGAAAAAABA1FH4YVIrnl0utzdJ/X29o449fviATGGl5E6JQjIAADDZmHk3SbryDwkBAAAAAABMRRR+mNSy82Yor7BYnW0to449dfywwqGQTNnGyAcDAACTS3a5jD9PxvDxFgAAAAAATD/cEcGkZozR/MWVCgSGFQqFrjg2MDykUyePSrM2SdzsAwBgWrHmbpUdvvJnBQAAAAAAgKmKVgST3qzyCqWmZ6qrvXXUsScO75eVlC7lL4l8MAAAMDl4M6QZy2QsR6yTAAAAAAAAxASFHya9ZF+K5i1aru7Odtn2lffl6WhtVltTvczszVFKBwAAYs2UbZJG+YwAAAAAAAAwlVH4IS7Mq1gmt8ergb7eUcceP7xfVv4iyZcbhWQAACCmLJfMnBuY3QcAAAAAAKY1Cj/EhbzCYhWWzFZ7a9OoY89UHdNgf6/MvJujkAwAAMSSKVohk5AU6xgAAAAAAAAxReGHuGCM0fylKxUOhRUMBq44NhwK6eiBPTKl10vulCglBAAAsWDm3SQ7HI51DAAAAAAAgJii8EPcmDVvodKzctTR2jLq2BOH9ysUCsvM3RqFZAAAICay5sqkl8hYfKQFAAAAAADTG3dHEDfcHq8WLF2p3p4u2bZ9xbGB4SEdP3JAmr1FcrqjlBAAAESTtfAO2eFQrGMAAAAAAADEHIUf4srsBUuUlOxTb0/XqGOP7d8tORJkyjZFIRkAAIiqtGKZvIUyliPWSQAAAAAAAGKOwg9xJSs3XyWz56ujtXnUsQP9vTp14qg072bJckYhHQAAiBZrwW3M7gMAAAAAADiHwg9xxRij8iWVMjIKDA+NOv7IvndkedNkildHIR0AAIgKf55UWMnsPgAAAAAAgHMo/BB3SmaXKzu/UG0tTaOO7e5sV+2pE7LLb5VkIh8OAABEnJm/XbLDsY4BAAAAAAAwaVD4Ie64EhK1eOVaDfb3KxQKjjr+8L535EjJlwqWRiEdAACIKG+GTPEaZvcBAAAAAAB8AIUf4tK8imXKyM5Ve8voe/m1NjWopaFWmn9rFJIBAIBIMuXbYh0BAAAAAABg0qHwQ1zyJvu0aMUa9fV0KRwefUmvQ3vfliNrtpQ1JwrpAABARCT6ZMo2MbsPAAAAAADgt1D4IW7NX7JC/tR0dba3jjq2/uwpdbY2SRV3RyEZAACIBDP3JslQ9gEAAAAAAPw2Cj/ErZS0DC1YtkpdHW2ybXvU8fveeV2O3HIpZ0EU0gEAgAnl8sjMvVHG4uMrAAAAAADAb+OOCeLawmXXKdnnV09Xx6hj685Uq62pXmbxPVFIBgAAJpKZd7PkTIh1DAAAAAAAgEmJwg9xLSs3X3MXLlV7a/OYxu99e6eszFlSwdIIJwMAABMm0SdTfouM4aMrAAAAAADApXDXBHFv4fLVSnR71NfbPerYproaNdWdkRbdI8lEPhwAALhmZsHtkuWMdQwAAAAAAIBJi8IPca9gZqlK58xXW3PjmMbve3uXHGmFMkUrI5wMAABcM2+GzJwbZCxHrJMAAAAAAABMWhR+iHvGGC1euU6W5dDgQP+o41ubGlR/plpadLfE0mAAAExqZtGHxKx8AAAAAACAK6PtwJQws2yeikrnqLWxfkzj9729U5Y/V6ZkbYSTAQCAq5ZSIFOyltl9AAAAAAAAo6Dww5TgcDi0bM0GSRrTLL+OthadrTomLbyLPYEAAJikrMX3SrYd6xgAAAAAAACTHoUfpoxZ8ypUPKdcLQ11Yxq//53XZbzpMrM2RDgZAAAYt4xSmRnLmN0HAAAAAAAwBhR+mDIcDoeWr9kky+HQQH/vqOO7O9t16sQRacGdkiMh8gEBAMCYWUs/KjscinUMAAAAAACAuEDhhymlZM58zZq3cMyz/A6887rsBK/M/O0RTgYAAMYsd6FM9lxm9wEAAAAAAIwRhR+mFMuytHzNRrkSEtXX2zPq+L7ebh3Zv1um/BbJmxGFhAAA4MqMrKUfYXYfAAAAAADAOFD4YcopmjVXsxcsVmtjnWzbHnX84T1vaWhoSGbpfVFIBwAArsSUrJVJm8nsPgAAAAAAgHGg8MOUY4zRstUblejxqq+na9TxwWBAu998TdbMVVLW3CgkBAAAl+TyyCz7mGw7HOskAAAAAAAAcYXCD1NSwcxSzV24VK1NjWOa5Xf6xBG1NdVLyz8uGROFhAAA4LeZirskl1fG8BEVAAAAAABgPLibginJGKPlazbKm5ysnq6OMZ3zzq6X5UifKVO6PsLpAADARfz5MnO2ylh8PAUAAAAAABgv7qhgysopKFL54kq1tzSNaZZfW3ODTh0/LC2+V3J5opAQAAC8x6r8ZKwjAAAAAAAAxC0KP0xZ7+3ll+xPVWd765jO2fvma7IdbpkFd0Q4HQAAOG9GpUzufBnLEeskAAAAAAAAcYnCD1NaVm6+Fq9cq862FoVCoVHHD/T36uCet2Tm3ij5cqOQEACAac7hklX5cdl2ONZJAAAAAAAA4haFH6a85Ws2Kjtvhlqb6sc0/uj+3Rro75VZ+tEIJwMAAKb8VsmTKmP4WAoAAAAAAHC1uLOCKS/Zn6qV67docKBfw0ODo44PhYJ69/VXZc1YKuUviXxAAACmq6RMmQW3UfYBAAAAAABcI+6uYFqYv2SFisvmqam+dkzja06dUEPNKZkV90tOd4TTAQAwPVnLPiZR9gEAAAAAAFwz7rBgWnAlJGrVhhvlcDjU19M9pnPeeuV52Qk+mcV3RzgdAADTUF6FTGGljOWIdRIAAAAAAIC4R+GHaaNkznzNW7xcLY11sm171PF9vd3a9/YumTlbpYzSKCQEAGCacCbKWvVZ2eFwrJMAAAAAAABMCRR+mDaMMVq1/kb5UtLU0dY8pnOOHdyjjtZmmZW/KzEDAQCACWEW3yu5U2UsPooCAAAAAABMBO6yYFrJys3XstUb1NXRrlAoOOp427b1xss7ZFLyZMpviUJCAACmuMzZMnO2UvYBAAAAAABMIGesAwDRtvS69Tp6YLeaG+qUN2PmqOM721p0ZP9ulVfcKfvs21JPYxRSAvGvrnNIt39/vwYC7y/Z9wcbCvSFjTOueM7W7+wd93P94Hfm6vqy1KtIeWnDobD21vTqjeouHWzoU1XLgDr7gwqFbfk9ThVnuLWs0Ke7lmZpZrp7zNcN27YO1PXq9epuHajv1cnmAbX1BTQctJXicaggNVFLC326fXGmynOTxpX5ucPteuSdJh1u6NNgIKy8lERtnJOq31uXr/Qk15iv8/s/O6aXT3Qq1ePUU3+4WKkePipgAlkuWas/J9lhyTBzHgAAAAAAYKJwFw/TjjfZp5Xrt+jJnz+socEBJbo9o55z4N3XNbO0TJ6Vn5H9/Lckjb4HIDDdff2JUxeUffFgKBjWXzx5Ws8fbVf3YOiSY1p7A2rtDeidMz364Wv1untplv70pplKSrxyefHXz57Rkwfb1NobuOT32/qCausLan9dnx5+o1Gb56bp69tLlJl85bIubNv681+f0i/3tFxw/Ez7oB5+o1FPHGjVDz8+T/PGUCC+cKxDL5/olCR98YZCyj5MOLPwDik5S8Ywuw8AAAAAAGAicScP01L5okod2feOqo4eVFHpHBljrjg+FAzqjVee1w3b71F41nrZVS9HKSkQnx7f36qdVV3XfJ11s1LGNC7dO/YZbFfSPxzSr/a2XHQ8LyVB2b4EJTqN6jqHVdc5JGmk+v/PPS063Ninf/lkuXzuy7+t/vzd5osK0Mxkl/JSEuR1OdTUM6zTbYPnv/fCsQ4dbezTTz49X3kpiZe97r++0XhB2Vea6VZGkksH6/s0EAirrS+oLzxyXI/9/qIrlpKDgbC+/cwZSVJFfpLuXpZ12bHAVUktklmwnbIPAAAAAAAgAij8MC05XS6t27JdDTWn1dneqrSM0W9sN9WdVfWxgypecp9Ut1cavPYyA5iKOvoD+utnR4qj0ky3eodCau659Ky20fzjx+dNZLRxWVSQpLuXZmv97FTl+BMu+N7hhj791dOntbum99zjfv35E6f0/79n9qjXLcvy6J5lWdowJ+2i5UDPtA/qb547qxeOdUiS6ruG9cVfnNC/f3bBJX8wYSAQ0j+8UidJchjpobvLtG1BhiSpsz+gP/j349pb26v6rmE98k6TPrs2/7K5fvhavWo7h2QZ6X/fWixrlB+EAMbFOM4t5WlL/NECAAAAAACYcPyINaat/KISLV+7SV3trQoGxlZG7H79FQXCkqn8ZITTAfHr28+eUUd/UJL09e0lclrxc3ffSLquxK+ffWa+Hvndhbp3efZFZZ8kzc9L0r/cX65Vxf7zx5451K7DDX2XvXZFQZL+4WNz9fgfLNInr8u75N5/M9Pd+t59c3Tboozzx/bX9en5ox2XvObOqq7zS4/eOD/9fNknSalel76+veT846cOtl02W03HoH60q16SdPfSbC3MT77sWOBqmPJtUmqhjMW+fQAAAAAAAJFA4YdprXLtZhWWlKmx9uyYxg8PDert116UVbRCpnhNhNMB8WdnVad+vX+kWLprSZYqZ/pHOWNySfW69KNPlmtJoW/UsS6HpT/fXnzBsd8cab/s+B/fP1/rZ6eOKcdXby6Wx/X+W/SOo5e+7uH69wvGWysyL/r+nByv5uZ4JUnHm/oVCF16T8VvPXNGQ0FbqR6nvnjDjDFlBMbMlyuz6EOjLp8NAAAAAACAq0fhh2nN7fFq7Zbtcjgd6unqHNM5Z6uP6/SJw1Ll/ZI3Y/QTgGliIBDSN544LUlK8zr137cWxjZQFBRneFSc8f5MveoP7MF3LVI8Ti0rer90PNV66eu2n5tJKUkFqZfe529G2sjxkC11DYQu+v6Lxzr00vFOSdIf31Co1AnaDxGQJBkj67rPiXU8AQAAAAAAIovCD9NeyZz5WrRirVqb6hUKXXwz/FLefu1FDQ4Ny6x+QGLGAiBJ+rsXalXbOSRJ+u9bi6ZNcZTieX873L6hsf0bMt7r9l7DdW378t8bCob17XP7LS7MT9I9y0bfzxQYD1N+q5Q5i6U8AQAAAAAAIozCD9OeMUbXbbxROfmFaq6vGdM5geEh7XrxWZnsOTLztkU4ITD5Harv00/fbJQkrSz26c4l06c4qj9XckpSepLzCiOv5bqXLk/Tve8/3wfHX3CdrpHjDiOleC4sXX74Wr1qOoZkGelrtxTL4gcYMJHSS2QW3c1SngAAAAAAAFEwcXcmgTjmS0nT6s3b9MR//Fj9fb3yJiWPek5zQ62O7HtX5Yvukd14SOo4E4WkwOQTDNv637+uVsiWXA6jP7u1ZMKu/ZVfVWlvbY9aegKSRma9lWV5tKrErzuXZCnjMkVYtOyr7VFLb+D848UFo//bMRZN3cPaX9c76nXn5yWd//2TB9u0aW7aBd8/0dyvY439kqSybK9cjvd/zqe2Y1D/vLNeknT30iwtmqDsgCTJmShr3RdinQIAAAAAAGDaYIYfcM68RctVvrhSTfU1CofDYzpn/9u71NXRJq3+vOSYHssXAr/tx7sadPRcqfS7a/NVmumZsGs/vr9VZ9uHNBAIayAQVmP3sF6r6tL//U2NtvztHv3dCzUKha+wZmWE/f3Lded/n+g02lqePiHX/YdX6vTBl3VrxaX3C10zK0XJiSOz9p491KbnDref/17XQFB/8eRpvXeZbQsuzPatZ85oKGgrxePUF2+Y+vstIrpM5SckbwZLeQIAAAAAAEQJhR9wjsPh0NottygtPUttzQ1jOiccDmnnC89IyTkySz4c4YTA5HO2fVDfP1d6zUx363PX50/o9bOSXVoyI1mrSvwqz/Uq0fn+0oBDQVv/8Gq9fv9nxxQIja2kn0iP72/Vaye7zj++rzJHWb6Ea77uO2e69Yvdzecfby1Pu2Am3wd5Exz63LqR/+YhW/rjX5zQ7d/fr/t/fFhb/naP3j3bI0nK9SfovhU55897+XiHXjzeKUn6o80zps1+i4iSwhWyStfLWHzMBAAAAAAAiBaW9AQ+ICMrV9dtvFHPPvrvGhocUKJ79JlKXR1t2vvmq1q+9iaF6vZKjYciHxSYJL7+xCkNBkfKtv99a7ESndd+g7+iIEn3LsvWhtmpFxVow8Gwdhxp19++UKu6c3vWvVbVpb96+oz+fPvELSU6muNN/frGE6fOPy5KT9QXNs245us29wzrS/958vzsvlSPU1+9ufiK53x6TZ5OtPTr1/vbJEknWwYu+H6Kx6m/+8hs+d0jb/lDwbD+6pmRJYgX5CXpw8uzz4/tHAjqn16r1wvHOtTQNSS3y6GF+Un62Iqci5YLBS7JmyHrut+VbYdlDIUfAAAAAABAtHAnBvgtFSvWaM6CJWqoOT3mpT2PHdyjxprTMtd9TkpgHyxMD/+1p0VvnOqWJG2vyNCa0pRrvmZBaqL+43cX6p5l2ZecLZfgtHRrRab+83MLteADs95+/m6zjjX1X/Pzj0Vrb0B/+B/HNRAY+fchwWH0Nx8qU1LCtS1d2D8c0h8+clyt5/YENJK+eXuJcvxXnjXosIz++q4y/f/uLtOqYr/8bocSHEaFaYn6xKpcPf4HFVqY//6/S//0Wr1qOoZkJH3tlmJZZmTWZHXrgO74/n79aFeDTrcNaihoq2sgqJ1VXXrwkeP662fZpxSjMEbWmt+XHAmUfQAAAAAAAFHGDD/gt7hcCdq47U61NNapuaFWuQVFYzrv9Zee0633fkLOlZ+W/dp3I5wSiK22voD+ZsdZSZLf7dCf3jQzqs+f4nHqOx+ZrVu/t09DQVu2pJ+91ahv3FYa0eftGQzqc/92VDUdI7MLHUZ66ENlqii4tqJ/OBTWH/38hA7U950/9pWbZuqGeWPfE/CWhRm6ZeGl9/p7T23HoP5pZ70k6e6lWVo8YyT3UDCsLzxyXC29AVlG+sSqXG2ck6rW3oD+3yt1qm4d1MNvNGpOjld3Lcm6ileI6cDM3y5lzZYxZvTBAAAAAAAAmFD8+DVwCRnZeVq3dbuCw8Pq6+0Z0zkD/b1645UdsopWyMzZGuGEQGz91dOn1TUQlCR9aUuRMpKivwdcfkqitn2g4NpV3R3R5+sfDunzPzumo40jMwlHZuCV6sb5Yy/lLiUUtvXff3lSO6ve3w/wCxsL9Inrcq/pupfyrWfPaChoy+926ItbCs8f/+XuZp1uG5Qk/cGGAv3pTTO1qiRFt1Zk6uFPzZffPTJ78Tsv1Cj43nqjwAdllMosupuyDwAAAAAAIEYo/IDLmL9kpSoqV6u5oUahUHBM59SeOqmj+9+VWfYxKbMswgmB2Nhb06OnD7VLkpbMSNa9y2I342vlTP/539d1Dmk4NLZleMfrvRlwe2p6zx/72i3FuvMaZ7uFbVv/67Fq7TjScf7YZ9bk6Q82XPt+gL/t5ROdevFYpyTpjzcXKs37fkn71MGR/f8SnUa/s/LCojEjyXV+Vl9zT0Bvn45ssYo45HTLWvugZFMGAwAAAAAAxApLegKXYVmW1m3drsa6M2qsPaOCmbPGdN6eN19VZnau0td+QfYz/1saGtsMQSBetPYFzv9+b22vFvzFW2M+9/sv1+n7L9edf7zjj5aoIDXxqrNk+S6cWdjVH7zk3n/XIhAK649/fuL8foWS9OUthfroipxrvvY3njitx/e3nn/80cps/cnWsS0jPB7DwbD+6unTkqQFeUn6cGX2+e+FwrYONYwsJTovN0kpnos/GqwuTdHDbzRKkg7U9Wr1BOzXiKnDXPd7kjddxrq2fSwBAAAAAABw9ZjhB1yBLyVN62+6Uw6HU10dbWM6xw6H9eqOJxWwEmXW/L7E8mZAxAwELpzR53ZN7Nvae8ttvnyi8/yxBzcU6LNr86/52t965ox+sbv5/OO7lmTpa7cUX/N1L+WfdzaopmNIRtLXbpkp6wP/LnUPBjUUHJmZle279NKsOf73S9TmnsAlx2B6MuW3jCxlTdkHAAAAAAAQUxR+wChK5y7QsjUb1dHarMDw8JjOGejv1WvPPyWTM19m4Z2RDQhEWYLDUqrHOeZf1gc6b7fTuuz3rkZVy8AHchn53BM3cT1s2/rqY1V67gPLbX52TZ4e3Hjty23+7fM1+smbjecf37owQ9+8vSQi+5/VdQ7ph6/VSxopFRfP8F3w/eHg+JZhDERo2VTEoZxymSUfjnUKAAAAAAAAiCU9gVEZY3TdxptVf/aUzlQdU1HpnDHdlG+qq9H+d3Zp0Yo7ZLeelBoORCEtEHnrZ6dq1/9YPubxW/52j+q7Rsryz6zN0xcmoDCTJNu29cy5vQQlaUlh8oRc9z3feOK0fr3//Zm9H1+Zoy9PwHKbP3i1Tv94roCTpK3lafrWXbMumHU3kb71zBkNBsPyux368tbCi76f7H5/ZtblZu81db//ww4TWaoijnnTZa37b5ItiYnsAAAAAAAAMccMP2AM3B6PNm67S0nJfrW3NI35vEN73lLD2dMjS3t6MyKYEJh+fvZ2k4419Z9/fMPc9Am79l8/e+Fym/cuy9b/vHnmNV/3J2806jsv1J5/vGF2qv7m7jI5r3Wq42W8cqJTLxwbmaH4R5sLlea9eMnOpASHcs4t5Xm0sU+dA8GLxrxe3XX+9yWZ7ohkRRyxnLKu/yPJ5Zax+CgJAAAAAAAwGXCXBhij/KISrd50s3p7ujQ40D/6CefsevEZDQ4HpXV/KFnMjAEu50Rzv772WLVOtQ5ccZxt2/rJG4369jNnzh/L9rl07/Lsy55T1zmk+d948/yv771Ue9mx332xVg+/8f5ym3cuydTXtxdf83Kbv9zdrG8/+37mtbNS9J0Pz1aCIzJvxcPBsP7qmdOSpPJcrz5Sefn/PqtLUyRJQ0FbP/3AUqOS1NYX0K/2tkgamch1XUlKRPIifpjlH5fSZ7JvHwAAAAAAwCRC+wCMw9Lr1qu+5pQOvvuGimbNkcMx+l+h4aFBvfLck7rxzo9Iyz4m+51/jUJSIP4Ew7b+a2+L/mtvixbkJWlViV9zc7zKSHIp0WWpeyCoI419eupgm6pbB8+fl+Aw+r/3zJbbde3F2f66Xv2/V+rOP7aM1Nw9rAf+7diYzs9Idulbd8666HhLz7D+/IlT+uBueUPBsL7wyPExZ/vHj88b81hJ+tGuBp1tH5KR9Ge3Fl9xydCPrczRY/taZUv6h1fq1DcU0sY5qWrrC+r7L9eqezAkSdo8L00FqYnjyoGpxZSulzV7c6xjAAAAAAAA4LdQ+AHj4HS5tOmWu9XR2qz6M6c0o6RsTLN+2lub9M7Ol7Ry/RaF26pkn9oZhbRA/DrU0KdDDX2jjstMdunbd83S8iLfhDzvYCB8weOwLe2q7h7z+fkpCZc8PhyyFbYvPPbOmZ5x5xurus4h/eOrI/sE3rkkS4tnXPm/z8L8ZH16TZ5+tKtBYVt6+I3GC2Y5SlJGkktfnYBlTRHH0ktkVnxKtm1f84xXAAAAAAAATCyW9ATGyZ+aphtuu1eepGS1NTeOfsI5J4/sV9XRAzIrPyNlzYlgQiA+ZSUn6NaFGcpMvnifud+WkeTS56/P12O/X6E1pSwx+du+/ewZDQbD8rsd+vKWwjGd8+UthfrCxgIlOC4uchbkJelfP1WuvBRm901bicmy1v+RZAxlHwAAAAAAwCRkbNu2Rx8G4Lft3vWSdjz2H0rPzlFSsn9M51iWpc233q3M9FTZz35d6muJbEggTjV0Delky4AauobVPRBUMGwrKcGhVK9T5Xlezcr0UDpcRtdAUD99s1G2pEUFyVo/O3Vc53f0B/TayS41dg/L7bK0MD9JS2Yk8997OjOWzKY/kckuZ98+ABMqFAqrvX30Gf2x5HRaSktL0vbt9Tp0aDjWcYBLWrAgQU88ka+Ojj4Fg+HRTwAQ93h/wmTHexMwcdLTk+RwjG3uHkt6Aldp8arr1dxQq92vv6zEYo+crtFnJYXDYb3y3K91810flWfDl6QdfyEFBqKQFogveSmJzCa7Sikepx7cOOOqz0/zunTboswJTIR4Z5b/jkzOfBnDwhAAAAAAAACTFXdugKvkcDi0/uY7NbNsnurOVGmsk2WHhwb10jOPKuzJkFn7oMQNVADAJGXmbJU1ZytlHwAAAAAAwCTH3RvgGniTknXDbfcqJS1TTfU1Yz6vu7NDr+x4QiZ3gczSj0YwIQAAVyl/kczy34l1CgAAAAAAAIwBhR9wjXILirRh2x0KBYPq6eoY83lNdWf19msvypp3k0zZ5ggmBABgnFJmyFr7hVinAAAAAAAAwBhR+AETYP6SlVq+dpPamhs1PDQ45vNOHtmvYwd2y1R+QspdEMGEAACMkTtFZuOfSA4XS3kCAAAAAADECe7iABPAGKO1N9yisvmLVXf2lEKh0JjP3f36y2qoPSuz7g8lf14EUwIAMApnoszGP5HxpMhYjlinAQAAAAAAwBhR+AETJNHt0dY7PqL8wpmqO1Ml27bHdJ5t29r5/JPq6e2T2fBlKTE5wkkBALgEY8ms/YJM6gzKPgAAAAAAgDhD4QdMoLSMLN1458fkS0lTU93ZMZ8XGB7WS888poDDK234E8npjmBKAAAuZpZ/Qia/grIPAAAAAAAgDlH4AROsYGapbth+jySpo7V5zOf19XTrhad+pbA/X+b6P5IsZ6QiAgBwAVN+q6w5N7BnHwAAAAAAQJzirg4QAXMrlmntllvV292lvp7uMZ/X0dail595XHbWXJnVn5eMiWBKAAAkU3q9rKUfiXUMAAAAAAAAXAMKPyACjDGqXHeDlq5er+bGOg0NDo753OaGWr32mydlCitlKu+PYEoAwLRXuEJm1WfHvO8sAAAAAAAAJicKPyBCHA6HNtx8p+ZVLFP92WqFgsExn1t3pkpvvrJD1uzNMovuiWBKAMC0lVcha83vy7ZHflAFAAAAAAAA8YtNwoAISnR7tPWO+9TX263aM1UqKp0z5puq1ccOKSHRrWWrb1d4qEf2sWcjnBYAMG1kzZF1/R/JtiXLwc9/AQAAAAAAxDvu8AAR5k9N0413flRpGVlqqDk9rnOP7n9Xh/a8JWv578iUrI1MQADA9JI2U2bDlxWyJcvJz34BAAAAAABMBRR+QBTkFhRpy+0fltPlUmtTw7jO3ffWazp55IDMqt+VCpZEJiAAYHrw58ts+h8Ky8jpSoh1GgAAAAAAAEwQCj8gSsrKF2nDzXdqaHBAHW0t4zr37Vd/o9oz1bLWfkHKmhuhhACAKS0pU9r8pwoZp5wJ7linAQAAAAAAwASi8AOiaMmq67Vu623q7epUT1fHmM+zbVs7n39KzU0NMhu/LGXNiVxIAMDU40mVNn9FIcstV6In1mkAAAAAAAAwwSj8gCgyxmjVhq1atfFGtbc2q6+3e8znhkMhvfTMY2ppbpLZ+CeUfgCAsUlIljb+D4UTfEpwU/YBAAAAAABMRRR+QJRZlqV1W7Zr2eoNammo00B/35jPDQWDv1X6sbwnAOAKEpOlzX+qcFImy3gCAAAAAABMYRR+QAw4XS5tuuVDWrh8tZrqzmp4aHDM575X+jU3nSv9sin9AACX4PZLm7+qcFK2HM4EGWNinQgAAAAAAAARQuEHxEhColtb7/iI5i5cqroz1QoEhsd8bigY1MvPPjayp9+GP5Gy50UwKQAg7njSpBu+qpAnXZYzQZbFRz4AAAAAAICpjLs/QAx5vEm66e7fUencBao9XaVQMDjmc0PBoF5+5nE1NzbIbPgypR8AYIQ3Q7rhqwq4/LIcLjkcjlgnAgAAAAAAQIRR+AExluxL0bZ7PqHCkjLVnj6pcDg05nNDoaBefvZxNTXWy2z8EymnPHJBAQCTX1KmdMNXNWx55HC65HS5Yp0IAAAAAAAAUUDhB0wCqemZ2nb3J5SdX6jaU1UKh8NjPjcUCuqVZ3+tpoa6kZl+OfMjmBQAMGn5cqQb/pcGbZeMM0GuhMRYJwIAAAAAAECUUPgBk0RWbr623fNxpWflnJvpN77S7+VnH1djfZ2sDV+S8ioimBQAMOn486Ub/pf6g5JxuuR2u2OdCAAAAAAAAFFE4QdMIvmFJdp+36eUkZ077tIvHArpleceV33tWVkbviQzc3UEkwIAJo3UQumGr6p3YFiWwymvNynWiQAAAAAAABBlFH7AJJNfWKJbP3z/SOl36mpKv1+r+sQRWWt/X2bujRFMCgCIufQSmc3/U929/TIOp5J8KbFOBAAAAAAAgBig8AMmofOlX874Sz/btvXmS8/p8N63ZS3/uMzieyKYFAAQM3kVMjf8T3V0dctyuuRPTY91IgAAAAAAAMQIhR8wSeUXlmj7hz91rvQ7Ma7ST5L2vvmqdu96SdaC22VWflYy/HUHgKnClKyTtf6LaqivkzPBrZS0jFhHAgAAAAAAQAzRAACTWF5hsW77yKeVmZN/VaXf0QO7teuFp6XSdTLr/pvkcEUoKQAgWsyC22St/pyqTxyRPzVdKWnM7AMAAAAAAJjuKPyASS53xkxt/8inlJlboJqrKP1Onziil595THbuQplN/0NyeSOUFAAQUcaSWfEpWYvv1cHdbyinoEi+lLRYpwIAAAAAAMAkQOEHxIH3Sr/sqyz9GmpO6zdP/FJBf6HMlq9JntTIBAUARIYjYWSm9qwNemfniyqds0DJvpRYpwIAAAAAAMAkQeEHxIncgiLd+oHSLxQKjuv8tuYGPffYzzXk8sts/TPJlxuhpACACZWYLLP5KwrnLNAbLz2n+UtWyJvsi3UqAAAAAAAATCIUfkAcyS0o0m0f/YzyC0tUU31CwUBgXOd3d7br2UcfUe+wZG78cyl3QYSSAgAmRFKWtPXPNOjJ0s4Xntay1RvkTUqOdSoAAAAAAABMMhR+QJzJzpuh2z/2WRXPnq+aUyc0PDQ4rvP7+3r17GOPqKmpWdbGP5GZfUOEkgIArklascyNf6aeYaPXX9qhVRtuktvDPqwArk1VVZU+/elPa8mSJVq7dq0eeughDQ8PX/Gc5uZmPfTQQ7rjjju0dOlSrV+/Xl/+8pdVV1cXpdQAAAAAgNFQ+AFxKC0jS7d/9NOaV7FMdWeqNdDfN67zA8PDeumZR3Xs4F5ZK+6XqbxfMo4IpQUAjJcpWiWz9WtqamnXu6+/ouu3bpfb44l1LABxrqurS/fff78CgYC++93v6otf/KJ+/vOf69vf/vYVzzt06JB27Nihbdu26fvf/76+8pWv6Pjx47r33nvV3t4epfQAAAAAgCtxxjoAgKuT7E/VrR/5lBI9Hu1/+3Vl5uYp2Zcy5vNt29bu119WV0ebVlx/g4wvV/bO70nD4ysPAQATyBiZRXfLWnC7Du15U+0tTdpw851yulyxTgZgCnjkkUfU19en733ve0pNTZUkhUIhfeMb39ADDzygnJycS563fPlyPf3003I63/+/j8uWLdPGjRv16KOP6jOf+Uw04gMAAAAAroAZfkAcc3u8uumuj2nF9TeovblJXR1t475G1dGDeuGJXyqYViJz49clf97EBwUAjM7lkVn/RZny7Xr5mUfV39urtVu2U/YBmDCvvPKKVq9efb7sk6Rt27YpHA5r586dlz3P7/dfUPZJUm5urtLT09Xc3BypuAAAAACAcaDwA+KcKyFRm2+9W2u33Kqezg61tzSN+xrNDbV6+r/+Xb1Bh8yNfy7lLoxAUgDAZflypRu/rmDGHD3+yI+UlVugynWbZVl8VAMwcaqrq1VaWnrBMb/fr6ysLFVXV4/rWqdOnVJbW5tmzZo1kREBAAAAAFeJJT2BKcDhdGrtllvl9nj1yrOPqbmhVlm5BTLGjPkafT1deubRR7Ruyy3K2/hl2bt/Jvv4jgimBgBIkvIWyaz9A3V2dum5n/9QqzbeqJLZ5bFOBWAK6u7ult/vv+h4SkqKurq6xnwd27b1l3/5l8rOztatt956TZmczsn9gw0Ox+TOB3wQf16B6YO/74gX/FkFoovCD5giLMtS5brNcnu9euGJ/1R9zSnlF5aMq/QLBob18jOPacmq61Ve+QmFUwpkv/tTKRyMYHIAmL5M+S0ySz6sqiMH9MbLO7TltnuVO2NmrGMBwBV997vf1RtvvKF/+qd/ktfrverrWJZRWlrSBCYDpje/3xPrCAAAXID3JiC6KPyAKcQYo4rlq+XxJuk3j/2HzlYf14yZs+Rwjv2vum3b2vPGK+rqaNPK62+Q0oqlnd+T+lojFxwAphtHgsyqz8oqXq3XfvOEaqpP6NZ7P6m0zOxYJwMwhfn9fvX09Fx0vKurSykpKWO6xs9//nP9/d//vf7P//k/Wr169TXlCYdtdXf3X9M1Is3hsLhRhbjR3T2gUCgc6xgAooD3J8QL3puAa+f3e8Y8W5bCD5iCysoXKdmfqud+9TOdrT6u/KISJbrH90Gw+tghdbS1aP3WW+W5+Zuy3/iBVLc3MoEBYDpJypS5/o8U9uXp0X/9BxljdNtHP6Nk39hutgPA1SotLb1or76enh61tLRctLffpezYsUNf//rX9d/+23/TPffcMyGZgkFuAAETJRQK83cKADCp8N4ERBeL6AJTVG5Bke78+AMqX7xCDTWn1ds99n1Z3tPR2qynfvkz1dfXy7HhSzJLPiwZRwTSAsA0MaNS5uZvqs9K1r/+/UPyJvt0y72fpOwDEBXr16/Xrl271N3dff7YM888I8uytHbt2iue++abb+pLX/qS7r33Xj344IORjgoAAAAAGCdm+AFTmD81Tds/cr/8qWl6d+eLGhocUEZ27riuERge0ivP/VrzFi3X0lXbpMzZsnd+XxroiFBqAJiCLJfM0vtkzd2q4wf36DeP/1yV6zZr+drNcjj4QQoA0XHffffpJz/5iR588EE98MADampq0kMPPaT77rtPOTk558fdf//9qq+v144dOyRJVVVVevDBB1VcXKw77rhDe/fuPT82PT1dRUVF0X4pAAAAAIDfQuEHTHEJiW5t3n6PUjOy9Opzj6u+5pTyZhTLGDOu6xzd/65amxp0/ZZblLjtm7J3/T+p8VCEUgPAFOLLkVn7BSmlQM/+17/p1Ikj2nrnfZo9f3GskwGYZlJSUvTwww/rm9/8ph588EElJSXpnnvu0Re/+MULxoXDYYVCofOP9+3bp56eHvX09OijH/3oBWPvuusuffvb345KfgAAAADA5Rnbtu1YhwAQHScO79Pzv/6FOlqbVVBcJqdz/J1/otujNZtvVu6MmbIPPib74KMS/4wAwCWZmaullZ9Wb2+vfv6jv5fbm6Qb77xP2XkzYh0NAGIuFAqrvb0v1jGuyOm0lJaWpO3b63Xo0HCs4wCXtGBBgp54Il8dHX3skwRME7w/YbLjvQmYOOnpSXI4xrY7HzP8gGlk9vzF8qWk6blH/1011ceVX1SiRLdnXNcYGhzQS08/qgVLV6qi8o6RJT53/T9pqCdCqQEgDjkSZJZ/XFbZRh0/uEe/fuRHmrNgmTZvv1tJPn+s0wEAAAAAAGCKGVstCGDKyC0o0l0f/5zKF69QQ81p9XSNfy8+27Z1cPebeuHJXyqQUiyz7f9IeYsikBYA4lBKgXTTN2QXr9Wzv/qZHv/3H2nlhhu17Z6PU/YBAAAAAAAgIij8gGnIl5Km7R+5X9dtulndnR1qrDurq1ndt6muRk/+8t/U1NYhx6Y/kam8X3ImRiAxAMQHU7pe5qZvqDecoB/97f/RycMHtO2eT2jdlu1yulyxjgcAAAAAAIApiiU9gWkqIdGtTbd8SLkFRXr5mUd1tuqY8otK5UpIGNd1Bvv79OJTv1LZ/EVaft16mbyFsl//gdR6MkLJAWAScvtlVnxaVuFyHTuwW4/+2z8pJ79Qt374fuUXlcQ6HQAAAAAAAKY4Cj9gGjPGaP6SFcrMydPzv/6Fqo8dVlZuvpL9KeO+1snD+9VUe1ZrNt+s9C1fk33417IPPiqFQxMfHAAmk8IVMis+rYBt9MJ//lR733xV5UsqtemWu5WSlh7rdAAAAAAAAJgGKPwAKDtvhu76xAN69blfa88bL6u/r0dZuQUyxozrOj3dnXrusf/Q/CUrVVG5XSZ/iezX/0HqqotQcgCIocRkmeWflFV8nc5UHdPjP/tnhUJBbbr1Q6pcu5klPAEAAAAAABA1FH4AJEluj1c33HbvyBKfzz6ms9XHVTCzVE7n+G5Y27atQ3veVH3NKa3dfLN8N/+F7H2/kH30WUnj3ycQACalgmUyKz+joHFp51O/1K7nn1Z+UYk23fIhFc8uj3U6AAAAAAAATDMUfgDOsyxLFZWrzy/xeabqmLLzC5WU7Bv3tTpam/X0L3+mxSvXat6yjymUv1R64x+l/rYIJAeAKHF5ZZZ/XFbpOtWePqlnf/Xvam6o1aLKtdqw7U75U9NinRAAAAAAAADTEIUfgIvkFRbrQ5/8vF559jHtfWun+nt7lJmTN+4lPkOhoHa//rLqzlRr9aYb5b7lr6S9j8g++ZKY7Qcg7uQtkln1WYUcHu36zZN6bcev5U1K1tY77tPSVdfL4eRjFQAAAAAAAGKDO1MALsmb7NPWOz+qnIIivbbjCZ2tPq78wmK5EhLHfa2m+ho9+YufaOl161W28tMKF6+R/da/SN31EUgOABPM5ZFZ+lFZZRvVUHNKLz71Lzp1/LBmlJRp8613q7BkdqwTAgAAAAAAYJqj8ANwWQ6HQ0uvW6/cgiK99PSvdOr4YaVmZCk1PXPc1woMD+utV36j0yeO6rr1W5S07ZuyDz0u+/ATUjgUgfQAcO3MzFXS0o8r7HTrrZef05svPavB/n4tvW691t98h5J9KbGOCAAAAAAAAFD4ARjde0t8vvXqb/TOay+o5tRJ5RUWy3kVy9c1N9Tqyf/8qRYsW6X5S+6Uiq6T3v4XqeX4xAcHgKvly5Wp/KSsvIWqqT6u1198ViePHJA/NU033vVRLVqxVg6HI9YpAQAAAAAAAEkUfgDGKNHt0fVbb1NRyWy99Myjqqk+ocycPPlSUsd9rVAoqP1v79TZqmNatX6LMrZ+TeGTL8ne+3NpuHfiwwPAWDlcMvNvk5l/q/r7+vTWU/+lg+++od7uTs1esEjrb7pDOfmFsU4JAAAAAAAAXIDCD8C4zCybp3s/9aB2vfC09r75qnq6OpRTUHRVM10621v13GP/oVnzKrR01To5ZlRKe34m+9RrEUgOAKPIWyRT+UnJm65De9/RnjdeUe2ZKiX7/Lrh9g9r6XXr5XIlxDolAAAAAAAAcBEKPwDj5k326Ybb7lXRrDl69dnHdbbqmHLyC+VN9o37WrZt6+SR/ao9fVLLVq9X8erPKVy6XvY7D0tddRFIDwC/xZMms/zjsopWqKnujN584l91tuqYujvbNWtehTbcfIdyZ8yMdUoAAAAAAADgsij8AFwVY4zmLFiinPwivbbj1zq4+w11d3UoO2+GLMsa9/UGB/q164VnVHXskFau26zkbX8p++SLsg/8lzTEMp8AIsA4ZOZulSo+pOFAUO/+5kmdPLJf9TWnlZTs06Zb79HyNRuUkOiOdVIAAAAAAADgiij8AFyTlLR0bbvnEyqaNUc7f/Okzpw8etWz/SSpqa5GT/7ip5qzcIkqlq2To3iNdPBR2cd/I4WDE5wewLSVVyGz5KMyKfk6fnif9r31mloa6tTV0a6SOeXacPOdyi8qiXVKAAAAAAAAYEwo/ABcM8uyVLF8tWbMnKWdzz+pw3vfVmd7q3IKCuVwjP+fmXA4pKP739Wp44dVUblas5d8RJp9g+w9j0i170bgFQCYNlILZZbcJyu/Qi0NtXrnhZ+pub5GDbVn5PYkacPNd6hy3WYluj2xTgoAAAAAAACMGYUfgAmTlpmtW+69X7PmVWjX80/pbNVxZWTnyZ+adlXXGxoc0DuvvaDjB/dq2eoNyl//Rwo3HZW9+9+kjjMTnB7AlOZJk1l0t0zpOvV1dWr3s4/pbPUJtTU3qq+3W8Vl83T9jbersKQs1kkBAAAAAACAcaPwAzChLMtS+eJKFZaU6Y2XntO+t3eqq71VuTNmypWQcFXX7O5s10tP/0p5hcVavnq9fDd/Q3b1a7L3/UIa7JrgVwBgSnG6ZcpvkcpvUSAQ0IGdL+nEkf3q7e5US0OdUtOzdOOdH9WiytXs1QcAAAAAAIC4ReEHICKS/am64bZ7Nau8Qjt/86TOVh2XLyVV6Vk5MsZc1TUbak7rydozKitfpMUrVstZtFI68qTsI09LoeEJfgUA4pqxZGZtkCo+JNuVpKMHduvw3rc00N+nprqzkowWrVyr1ZtuVkZWbqzTAgAAAAAAANeEwg9AxBhjVDK7XPmFxdr75qt6+9XndebkUWXnF8qblHxV17RtWycO79Ppk0e1cNkqzV14h0zZFunw47JPviSFAxP7IgDEn/zFMks+Kis1X6eOH9K+t3epr6dbHW3N6upo14ziWVq96WaVlS+SZVmxTgsAAAAAAABcMwo/ABGX6PZo1YYbVTp3oXa98JSO7d+tTodD2fmFcjqv7p+hwPCQ9rzxio4f2qeFy1epdNnvSOXbpUOPya5+RQoHJ/hVAJj0sstlKu6SlTNPTXVntPv5n6qjtfn8rL5kf6o2brtLy1ZvkMebFOu0AAAAAAAAwISh8AMQNVm5+brtvs9o7sKlev3FZ1V76oSS/SPLfF7tLJu+ni69+dJzOrznLVUsv04zV3xSmn/bueLvVckOTfCrADDp5MwfKfqy56qjpVH7nv6V6s+eUigUVHN9rYLBoMoXV2rNDbcoJ78w1mkBAAAAAACACUfhByCqLMvSvEXLNbNsnva/vVPv7nxJZ04eVUZ2rnwpaVe9v19PV6d2vfCMDu5+SxWVqzVz1WcUnn+bdOhR2ad2SnZ4gl8JgJjLWSBV3CVH9hy1tzRq/7miz7ZtdbQ2q6ujTTkFRVq96SbNW1Qph8MR68QAAAAAAABARFD4AYgJjzdJqzbcqDkLl+qd117Qwd1vqKO1Wdn5hde01F53Z7t2/uZJHdz9phYtv06F1/2eQvNvlzn4K9lnXpdsewJfBYCYyF04UvRlzVZ7c8MFRV9vd6damxqUkpahDdvu1JJV1yvZlxLrxAAAAAAAAEBEUfgBiKm0jCxtuf3Dmr9khd546VlVHTkgY1nKzp8hlyvhqq/b1d6qV3c8obSMLC2qXK2CNZ9XaMHtMocel33mTZb6BOJRXoXMwrtkZZWprale+5/6LzXUnJYkDfT3qrm+Vm5PkirXbVblus3KyMqNbV4AAAAAAAAgSij8AMScMUYFM0t158c/p5OH9+vNV55T7ekqJSX7lJGdd9X7+0lSR1uLXn72caVn5WjR8tXKX/N5hRd/WDr2jOyTL0nBwYl7IQAiwEj5i2UW3iErc5bamuq0/8lfqqH2jCRpeHhIzfU1kozmVizXyvVbVDCz9KqXBwYAAAAAAADiEYUfgEnD4XBobsVSFc+ep4O739Dbrz6vMyePKi0zWylpGdd0A7+9pUkvPfOoUtIzVb5omYoXf1hm4V3SyRdlH39O6m+fwFcC4Jo5EmRK1knzbpblz1Vr40jR13iu6AuFgmpprNfQ4IAKS2Zr5fotmjWvgn36AAAAAAAAMC1R+AGYdBLdHi1fs0ll5Yu1e9dLOvDu6zp94ojSs3LkT02/puKvq71Vb7z0nPa9tUtzFi7RnPmb5Zx3k+wzb8g+8pTUWTOBrwTAuHnSZObcIJXdIOPyqObUCR194UW1NjVIksLhsDpam9Xd1aGcvBlasf1ezV9SKVdCYoyDAwAAAAAAALFD4Qdg0kpJS9emWz+khcuv0763XtOhPW/p9MmjysjKkS8l7ZqKv4H+3nPXfFOz5i1UecUyeW9Zq3DDwZHir/HgBL4SAKNKmykz72aZmdcpFAzq5NGDOnZgj/p6uyWNFH2d7S3q7mhXSlqmNt96txavWCtvsi/GwQEAAAAAAIDYo/ADMOll5eZry+0f1qIVa7TnjVd0ZN87am9pUkZ2rpL9qddU/AUDAR07sEfHD+5VUekczV+8XGmb/4dCHTUyR5+WffZNKRSYwFcD4DxjpPylMvNulpUzT33dnTr6xiuqOnpIwcCwpHNFX1uLujralJKWoXVbb1NF5WqlZWTFODwAAAAAAAAweVD4AYgb2XkzdNNdH9Pileu05/WXdfTAbrU1NykjJ1fJvpRrKv5s29aZqmM6U3VM2fmFmr94ufJXf07hZb8jnX5N9okXpe76CXw1wDTm8sqUrJXm3ijLl6PWhlodee7Xqj19UrZtSzq3dGdbs7o72pWanqX1N92hhcuvo+gDAAAAAAAALoHCD0DcyS0o0s13f1xLVl2v3a+/rOMH96qtqVGZOXlK9qdc8/Wb62vUXF+jZH+KZs2rUNnctUqce5NCzcdkTr4ou+ZtZv0BVyN7rsysjTKFK2RbDtVUn9DRHc+rraXx/JALir6MLK2/+Q5VLF+t1PTMGAYHAAAAAAAAJjcKPwBxyRijvMJi3TJj5vni78ShvWptblB6Zo58Kde21Kck9XZ3ad9br+nAO7s0o7hMZeUVyl3zeYWHPiGdelX2yRel7oYJekXAFOVOkSlZJ3vWRjn8OertbNeJd97QqeOHNTjQf35YOBxWR2uzujvblZaRrQ3b7lTF8tVKScuIYXgAAAAAAAAgPlD4AYhrxhgVzCxVflGJak9Xaf/bO3Xi8H61tTQqJS1DqemZsizrmp4jHA7rbPVxna0+Lp8/VbPKKzRr7vVKnHezwk1HpZMvyq55Rwoz6w+QJBlLyqsYmc1XsOT836GTL72kloa6C4aGgkF1tDWrp6uTog8AAAAAAAC4ShR+AKYEY4wKS8o0o3iWWhrrdGjPWzq05y2dOXlMST6f0rNy5XRe+z95Pd2d2vvmq9r/9i7NKJml2eUVyln7+woP9kpn35B9+nWp9aQk+9pfFBBvkjJlZm2QStbLSkpTZ2uTTux8SadPHlVgeOiCocNDg2ptblRgaFDpWTmqXHeDFixdpZS09BiFBwAAAAAAAOIXhR+AKcUYo+y8GcrOm6Flqzfq6P53tP+dXao7XSVXQoIyc/KUkOi+5ucJh0M6W3VcZ6uOy5eSqlnzKlRStkKeOVsU7m2Vzrw+Uv511U7AqwImMbdfpnCFNPM6WdlzFRge1OkTx3Ty6JPqaG2+YKht2+rv61F7c5NkpLzCYi1esVazFyyRNyk5Ri8AAAAAAAAAiH8UfgCmrJS0dK3acKMWrVirE4f2ae9br6rh7GlJUkZO3oQVDD1dI7P+9r75qrJyC1RcNk8zZ92ghAW3KdRZJ3N6l+wzr0t9rRPyfEDMJSTLFFZKRatkcsply1Zj7VmdeeFpnT11QqFg8ILh4XBY3Z3t6mxrldvj0ewFi1VRuVols+fL6XLF6EUAAAAAAAAAUweFH4Apz+NN0qIVa1S+pFKnjh/W/rd36vTJo2puqFVqeqb8qenXvM/fe1oa69TSWKd3d72o3BkzVVw2T4UL7pBjyb0KtZyUOfO67LNvSoPdE/J8QNS4PDIzlo+UfHkLJRk11dfozKvPq+bUCQ0PDV50SigYVHtrk3q7u+RPTVfl9Zu1YMlK5ReVyBgT/dcAAAAAAAAATFEUfgCmDZcrQXMWLFFZ+SLVnanSoT1v6cShfTpbdUyJHq/SM3OU6L725T6lkRlN9WdPqf7sKTmcTs2YOUvFs+cpb9nHZC37HdlNh6W63bJr90j9bRPynMCEcybKFCwdKfnyF8k4XGppqNHpXS+ppvqEBgf6L3naQH+v2lubFRgeVmZ2nlau36p5FcuUlpkd5RcAAAAAAAAATA8UfgCmHcuyVFgyW4Uls7V60806eWS/Du5+U011ZxUKBpWaninfBM76CwWDOlN1TGeqjikh0a3C0tmaWTpb2Us/JkflJxXqqJGp2y27bo/UdkqSPSHPC1yVpEyZ/MVS/mKZnPkyzgS1NdXr9Js7dbb6uAb6ei95WigYVGd7q3q6OpTo9mjGzFlasHSVZi9YLI83KcovAgAAAAAAAJheKPwATGspaRlavmaTFq9Yp5pTJ3T0wLs6eXi/zlQdk8fjVXpWjhISJ2bWnyQNDw2q6sgBVR05IKcrQXmFMzVjZqkKyrYqYeEdCg90SXV7ZNftlRoPSqHhCXtu4JKMQ8oqk8lfIjt/iRypBQqHQ2ppqFXd26+rpvqE+novvQStbdvq7+1RR1uzQqGQ0jKytHrzNs2ev1j5RSUTVpoDAAAAAAAAuDIKPwCQ5HS5VDJnvkrmzFfnpladPHJAh3a/qca6swqHQyOz/lLSJrTACAaGVVN9QjXVJ2SMUWZOvgpmlqpw5kL5yjbKDg6fW/pzj+z6fVJ/+4Q9N6a5RN/5WXzKq5CV4NVQf69qz55W/Vu71VB7RsHA5cvmQGBYnW0t6u3ukjfJp9K5C1S+uFIlcxbIm5QcxRcCAAAAAAAAQKLwA4CLpKZnqnLtJi1ZuU5nq4/r6IHdqjqyX2erj8vlSlBqeqa8yT4ZYybsOW3bVktjnVoa67T3zVfl86eqYGapZswsVVblJ2VZDoV6mmWaDktNR0aKwMGuCXt+THEOl5QxSyanXHbeIlkZJZKkjuZG1e7bq7qz1epobb7iJWzbVm93pzraWiXZysjOVeXazZpVXqGc/MIJ/fsAAAAAAAAAYHwo/ADgMpwul0rnLlDp3AXqbG/V6RNHdOzAHtXXnFJLY70SPR6lpmfK7fFOeNnR092powd26+iB3XIlJConv1A5BYXKy18gf9lGSVKoq0Gm+b0C8Ig01DOhGRDHnIlS5myZ7Hmys+fKyiiVcbgUGBxQfd1Z1R94TvVnT2locOCKl7FtW3293epqb1MgMKykZJ/KFy3XvEXLVTx7nhLdnii9IAAAAAAAAABXQuEHAGOQmp6pJauu1+KV69TSWK8zJ4/q6IF31Vxfq6HBAXmTfUpJy1Sie+L2+3tPYHhItadPqvb0SUlSotszUgDmFyq3YIl8s2+QJIU662SaDo+Ufy3HKACnE5dXyprzfsGXXixjOTQ00Kem+lo1H39VzQ216mxvHfVStm2rv69XXe2tGh4alDfZp6LSOZqzcImKZs1RemYOs/kAAAAAAACASYbCDwDGwRij7LwCZecVaNmajWqqO6tTJ47o2IHdam2qUyAQULIvRSnpGXK5EiKSYWhwQGerj+ts9XFJksebrJz8GcrOL1ReQaWS5m6VJIV6W2XaqqX2atlt1VL7aSk4GJFMiCJjSf48mfRiKb1EdtZcWWmFMsbSYF+PGutr1Xz4BTU31Kq7s2NMl7RtWwP9ferqaNPgQL+83mTlF5VobsVSzZw1TxnZuZR8AAAAAAAAwCRG4QcAV8nhcCi/qET5RSVatX6r6s5Uqfr4YZ04tE+NtWcUCoWUlOyTLyVNiW5PxAqTgf5enT55VKdPHpUkeZN9yszJU0ZWrjKz85S2cImcrgTZdljhrkaZ9g+UgB1npXAwIrkwAYxDSsk/V+4Vy04rkUkrkuUcKZN7u9rV3Nig5v071NxQq97use/raNu2Bgf61NXRroH+Xnk8ScrJm6G5Fcs0s2yusnILKPkAAAAAAACAOEHhBwATwOlyaWbZPM0sm6c1m7ep9nSVak6dUNXRg2pvbdLw4KAS3B75U1LlTfbLsqyIZenv7dHZ3h6drRqZAWiMkT81XRnZuUrPylFm1iylzlwth8MhOxRUuLNWpuO01F0vu6tO6qqX+tsl2RHLiEtwuCT/heWelVYo43DJtsPq7WxXW2uL2k/sUntrszramhUYHh7XU4RCIfX1dKm7s0PBwLASPV5l5uRpXsUyzZw1V9n5hRH9swkAAAAAAAAgMij8AGCCJbo9mjVvoWbNW6jrt96mpvoa1Z6uUtWxg2qqq1FrU6McToeS/anypaTJ6YzsP8W2bauro01dHW2qPnZIkmRZDqVlZCk9O0cZWblKz5gnX/FaOZwuSVI4MCi7u1Gmu1bqqpfdVS9110u9zZIdjmjeKS/RN7Ikpz9f8udJ/nzZKQWyktJljCU7HFZPZ5taW5rVcew1tbc2qaOtRcFA4KqebmhwQD1dnerr7ZYkJftSNGveQpXMLld+UYmy8mbI4XBM5CsEAAAAAAAAEGUUfgAQQQ6n8/yynyuuv0Edrc2qO1Ot0yeP6mzVMdWfrVY4HFZSsk9JvhR5vElRWUYxHA6praVRbS2NOqF9548n+fxKSc2QPy1dKWkZSk0rkb+gUq4EtyTJDgUU7m6S6WmQ+tukvjbZfW3nft8qDfVEPPukZ7kkb5rkSZNJzpR8uVJytmxfnowvR1aCR5Jkh8Pq7+lUZ2eHuk6eUnfnu+rqaFdne4tCwatfZjUcDqu/t1vdXZ0aHhxQQqJbKWkZmr9khQpLZiu/qFi+lLSJerUAAAAAAAAAJgEKPwCIEmOM0rNylJ6Vo4rK1erv7VF9zSmdrT6hU8cOqauzXc31tTKWda4A9Mvt8UZ1H7W+nm719XSrvubUBcc93iT50zKUkjpSBPpSspWcWypPsv/8rEBJsoPDCvd3yPS1jpSA75WC/e3SUK803DvyNTgYtdc0oRKTJU+a5E2X8aSdL/bkTZftSZPxpslKTL7glMG+HnV3daq7uVM9J2rU092hnq5O9XR1KBwKXXMk27Y10N+nvp5uDfT1KGzbSkr2q2BmqWbNXaD8olLlFBTK5Uq45ucCAAAAAAAAMDlR+AFAjHiTfSorX6Sy8kUK3XSH2loa1VRXM1ICVh1XZ3urhgYHZFmO8wVgotsT1QLwPQP9fRro71NT3dmLvpfo9sib7FNSsk/eZP+5rz4lJ5cpKXep3Em+i86xQ0GFh/ukoT5puFdmqEca7nu/FBzuk4JDUjgoOxSQwkHpg18vdUy2ZBySZZ376pCMde7rB35//rhLSvDIuLxSglf6wFfj8shOSJLtOvc4wSuT4JGx3l/60g6HNTTQp/6+XvX19Wmgo039fWc00Ner/r7eka+9PQoGr24pzssJh8Ma6O8dKfj6+2TbtjyeJPlT0zR/yQrlFxUrv6hUqemZMfmzAgAAAAAAACD6KPwAYBJwOJ3Kzpuh7LwZqqhcrWAgoNbmhnMFYLXOVp1QR2uzhoYG5XA45E32yZuUrES3V5ZlxTT70OCAhgYH1NHafMnvW5ZDHm+SEtxuJSa6lej2KCHRrUS3+9xXjxISU+VOzlVihlsJbo9cCW6ZKL6uUDCgwNCgAsNDGh4e0tDQsAK9Qxoe7tLwULMCw0MKDA9rYKDvfKE3eK5si7RwOKT+3l719XZrcKBfsiVPUpJS0jK0qHKNcgqKlJ03Q+lZOezFBwAAAAAAAExTFH4AMAk5XS7lFhQpt6BIi1euVSAwrNbGejXV16juTLVqT1epq6NdQ4N1sm1bCQmJ8iQly5uUrIRE96Sa2RUOh9TX262+3u5xnWdZDjmcjpGvDocsh/Pc1996fG6cJNlhW+FwWLYdlh0OK2yHLzgWDp87fu7r8PCQAsNDCofDkXjp4xYOhzU0OHBuRmWvAsPDMjLyJicrPStHM2fNVW5BkbLyCpSWkR3zshcAAAAAAADA5EDhBwBxwOVKUF5hsfIKi7Vk1fUKBgLqaGtRW0uj2luaVH+mWs2NdWpvadLQ0Mj+eIluj7xJyfIkJcvlSphUJeBYhMMhhYevfY+7ySocDmtwoF+D55ZLDQaGJWOU6PbIk5Ss0jnzlVdYooysXGXnz2CJTgAAAAAAAACXReEHAHHI6XIpKzdfWbn5548NDw2qvaVJbS2Nam1qVN2ZarW3NqmloU7BwLBsjRSHiR6P3G6PEt0eOeOwCIw3tm0rGAxoaGDg/Oy9YDAgI6NEj0feJJ/KykuVW1Ck9KxcpWVmKy0zSy5XQqyjAwAAAAAAAIgTFH4AMEUkJLqVO2OmcmfMPH+sv69X7S1N6mhtVndnu5ob69TaWK+B/j51dbQpEBgpnhxOpxLdbiW6vXJ7PHIlJFIEjlM4HNLw0JCGhwbP7Ws4qGAwIElyOl0jM/e8SSqaNUc5+YVKz8xWelauUtMz5XS5YpweAAAAAAAAQDyj8AOAKcx7bl+/GcWzzh8Lh8Pq7e5Sd2e7ujra1N3RptbmRrU01qmvp1u93Z0KDA9LRpJty+F0yZWQIFdCohLOfXUlJMiyHLF7YVFm27bCoZACgWEFAsMKDo98DZz7amRkzEjpmpDoli8lTaVzC5SRnauUtHT5U9PlT81Qsj9FDsf0+e8GAAAAAAAAIDoo/ABgmrEsS/7UNPlT0y4oAm3bVn9vj7o629Td2aH+nm719faoq6NNnR2t6uns0ODAgHq6OjU8PCTZkmTLGEtOl0tOl0sOh1NOp1OO9345nHI4XbIsa9LNGLRtW+FwWOFQUKFQSKFQUMFAQMFAQIHhIQUCAYVCQRljybbDcjgccroS5HIlyJWQoPSUHKWkpSs9K0e+lLRzv1LlS0mT2+OddK8XAAAAAAAAwNRF4QcAkCQZY5Tk8yvJ51d+YclF3w8Fgxro71Vfb4/6e3vU19ut/t4e9XR3qautRX29PRro7xuZ+TYwoFAwOFKiBYMKh0MyxpybNGhLMrIcloyxzpeB5tzXkceXOmZk2/b5X7Jt2Xrv9zp3PPz+Y9kKhUIjhV4wpJFy0rzXU448thxyOEZ+WQ6nnC6X3B6vsvIKlJKWLp8/Td6kZHnOzZQ8/9WbLIeTt1AAAAAAAAAAkwN3KwEAY+JwOpXsT1WyP/WyY2zbVmD43D52Q4MaHhzZz+69x0ODgxoeGtTgQL+GBwcUDJ6bVRcMKBQMKhAcVigQHHl8rqiz7bDC4ZEi773S8MIy0DFSCFrWSHF37rHlcCjR7ZHbmySPN0mJbo9crgQlJCaOLE+amKiEhMRzS5SOPE50e5To9jA7DwAAAAAAAEBcofADAEwYY8z5feySJ+B6I0tujiy3adv2+WLPMtb5wo9yDgAAAAAAAMB0R+EHAJi0LGtkyU+nyxXrKAAAAAAAAAAwaVmxDgAAAAAAAAAAAADg6lH4AQAAAAAAAAAAAHGMwg8AAAAAAAAAAACIYxR+AAAAAAAAAAAAQByj8AMAAAAAAAAAAADiGIUfAAAAAAAAAAAAEMco/AAAAAAAAAAAAIA4RuEHAAAAAAAAAAAAxDEKPwAAAAAAAAAAACCOUfgBAAAAAAAAAAAAcYzCDwAAAAAAAAAAAIhjFH4AAAAAAAAAAABAHKPwAwAAAAAAAAAAAOIYhR8AAAAAAAAAAAAQxyj8AAAAAAAAAAAAgDhG4QcAAAAAAAAAAADEMQo/AAAAAAAAAAAAII5R+AEAAAAAAAAAAABxjMIPAAAAAAAAAAAAiGMUfgAAAAAAAAAAAEAco/ADAAAAAAAAAAAA4hiFHwAAAAAAAAAAABDHKPwAAAAAAAAAAACAOEbhBwAAAAAAAAAAAMQxCj8AAAAAAAAAAAAgjlH4AQAAAAAAAAAAAHGMwg8AAAAAAAAAAACIYxR+AAAAAAAAAAAAQByj8AMAAAAAAAAAAADiGIUfAAAAAAAAAAAAEMco/AAAAAAAAAAAAIA4RuEHAAAAAAAAAAAAxDEKPwAAAAAAAAAAACCOUfgBAAAAAAAAAAAAcYzCDwAAAAAAAAAAAIhjFH4AAAAAAAAAAABAHKPwAwAAAAAAAAAAAOIYhR8AAAAAAAAAAAAQxyj8AAAAAAAAAAAAgDhG4QcAAAAAAAAAAADEMQo/AAAAAAAAAAAAII5R+AEAAAAAAAAAAABxjMIPAAAAAAAAAAAAiGMUfgAAAAAAAAAAAEAco/ADAAAAAAAAAAAA4hiFHwAAAAAAAAAAABDHKPwAAAAAAAAAAACAOEbhBwAAAAAAAAAAAMQxCj8AAAAAAAAAAAAgjlH4AQAAAAAAAAAAAHGMwg8AAAAAAAAAAACIYxR+AAAAAAAAAAAAQByj8AMAAAAAAAAAAADiGIUfAAAAAEwTVVVV+vSnP60lS5Zo7dq1euihhzQ8PDzqebZt6x//8R+1ceNGLVq0SB/5yEe0d+/eyAcGAAAAAIwJhR8AAAAATANdXV26//77FQgE9N3vfldf/OIX9fOf/1zf/va3Rz33hz/8of7u7/5On/rUp/SDH/xAWVlZ+sxnPqOampooJAcAAAAAjMYZ6wAAAAAAgMh75JFH1NfXp+9973tKTU2VJIVCIX3jG9/QAw88oJycnEueNzQ0pB/84Af6zGc+o0996lOSpOXLl+vmm2/WP//zP+vrX/96dF4AgCtyOPiZbkxe4bCtcNiOdQwAUcZ7Eya7qfb+ROEHAAAAANPAK6+8otWrV58v+yRp27Zt+vM//3Pt3LlTH/rQhy553u7du9Xb26tt27adP5aQkKCtW7dqx44dkY4NYBRZWQ7Z4ZD8fk+sowCXFQ6H1NExMKVuqgK4PN6bEC+m2vsThR8AAAAATAPV1dW6++67Lzjm9/uVlZWl6urqK54nSaWlpRccnzVrlh5++GENDg7K7XZPfGAAY+L3WzKWQy0v/bECnSdjHQe4iCu1TFkb/1aWZabMDVUAV8Z7E+LBVHx/ovADAAAAgGmgu7tbfr//ouMpKSnq6uq64nkJCQlKTEy84Ljf75dt2+rq6rqqws+yjNLTk8Z9XjQZM/L1xz/OUTA4NW4CYOpxu0f+oKav+prscDDGaYCLGWvk9mNKikc2/5ROCN6fMNnx3oR4EC/vT5ZlxjyWwg8AAAAAEHXGGDkcY/8/r7GUmemIdQRgVA5PZqwjAFdkWezlNdF4f8Jkx3sT4sFUen+aOq8EAAAAAHBZfr9fPT09Fx3v6upSSkrKFc8bHh7W0NDQBce7u7tljLniuQAAAACA6KDwAwAAAIBpoLS09KK9+np6etTS0nLR/ny/fZ4knTp16oLj1dXVys/PZ/8+AAAAAJgEKPwAAAAAYBpYv369du3ape7u7vPHnnnmGVmWpbVr1172vGXLlik5OVlPP/30+WOBQEDPPfec1q9fH9HMAAAAAICxYQ8/AAAAAJgG7rvvPv3kJz/Rgw8+qAceeEBNTU166KGHdN999yknJ+f8uPvvv1/19fXasWOHJCkxMVEPPPCAvvvd7yo9PV1z5szRv//7v6uzs1Of/exnY/VyAAAAAAAfQOEHAAAAANNASkqKHn74YX3zm9/Ugw8+qKSkJN1zzz364he/eMG4cDisUCh0wbHf+73fk23b+tGPfqT29naVl5frn//5n1VYWBjNlwAAAAAAuAxj27Yd6xAAAAAAAAAAAAAArg57+AEAAAAAAAAAAABxjMIPAAAAAAAAAAAAiGMUfgAAAAAAAAAAAEAco/ADAAAAAAAAAAAA4hiFHwAAAAAAAAAAABDHKPwAAAAAAAAAAACAOEbhBwAAAAAAAAAAAMQxCj8AAAAAAIA4893vfldz58696Nf27dtjHQ0AMM289550/fXXKxwOX/T9++67T3PnztVXvvKVGKQDpg9nrAMAAAAAAABg/Nxutx5++OGLjgEAEG0ul0sdHR16++23tWrVqvPH6+rqtHfvXnm93himA6YHCj8AAAAAAIA4ZFmWlixZEusYAADI5XJp9erVevLJJy8o/J588knNnj1blsVig0Ck8bcMAAAAAAAAAABck+3bt+vZZ59VIBA4f+yJJ55guWkgSij8AAAAAAAA4lQwGLzgl23bsY4EAJimNm3apOHhYe3cuVOSdPLkSR07dky33HJLjJMB0wOFHwAAAAAAQBzq7+/XggULLvj1+OOPxzoWAGCa8ng82rx5s5588klJI7P7li5dqsLCwhgnA6YH9vADAAAAAACIQ263Wz/96U8vOMZNVQBALG3fvl1f/vKXNTg4qKeeekqf+MQnYh0JmDYo/AAAAAAAAOKQZVmqqKiIdQwAAM5bt26dXC6XvvOd76i2tlbbtm2LdSRg2mBJTwAAAAAAAAAAcM1cLpduvPFG/fjHP9Z1112nzMzMWEcCpg1m+AEAAAAAAAAAgAlx7733qq2tTR/+8IdjHQWYVij8AAAAAAAAAADAhFi0aJG+//3vxzoGMO2wpCcAAAAAAAAAAAAQx4xt23asQwAAAAAAAAAAAAC4OszwAwAAAAAAAAAAAOIYhR8AAAAAAAAAAAAQxyj8AAAAAAAAAAAAgDhG4QcAAAAAAAAAAADEMQo/AAAAAAAAAAAAII5R+AEAAAAAAAAAAABxjMIPAAAAAAAAAAAAiGMUfgAAAAAAAAAwBm+++abmzp2rN998M9ZRAAC4AIUfAAAAAAAAAAAAEMco/AAAAAAAAAAAAIA4RuEHAAAAAPj/2rubkCi7N47jv2nKtyShmjRSxxa9gW8QKRoamElTSikyaTW4UCPESgtyGxRBkaCZFRjiYjINilwEvW4ssCFatCgpxEZqMI2UiCYJmvtZhMNzPxo8WX+c+T/fD8zinPuac11zlnNx7gMAAOaB3++f7xIAAP8naPgBAAAAAAAACFkej0dlZWVKS0tTYWGhenp61NbWpnXr1pni+vr6VFZWpvT0dGVlZamxsVGjo6OmGJfLpeLiYg0NDcnlcikjI0N5eXnq6OiYkff9+/eqq6tTZmamcnJydPr0aX379m3WGp8/f67q6mpt3LhRGRkZ2r9/v549e2aKma55aGhIx44d06ZNm7R3797f3B0AAH5YON8FAAAAAAAAAMBsXr58qZqaGtlsNh06dEiBQEDt7e1aunSpKe7SpUtqbW2Vw+FQeXm5JiYm5Ha7tW/fPt26dUtLliwJxn769Ek1NTXatm2bHA6H7t69q3Pnzmnt2rXasmWLJGlqakpVVVUaHR2Vy+XSihUr1NfXpydPnsyocWBgQLW1tUpNTVV9fb0sFotu3rypqqoqdXd3Kz093RR/5MgR2e12NTY2yjCM/8GuAQD+i2j4AQAAAAAAAAhJ58+fl9Vq1bVr1xQfHy9Jcjgc2rFjRzDG5/Opra1NDQ0NOnjwYHC+qKhIpaWl6u7uNs2Pj4/rzJkz2r17tySpvLxcBQUFunHjRrDh19vbK6/Xq5aWFjkcDkmS0+nUrl27TPUZhqETJ04oOztbV65ckcVikSRVVFRo586damlpUWdnp+k769evV3Nz8x/aIQAAfuCVngAAAAAAAABCzvfv3zUwMKCtW7cGm32SZLfblZeXFxzfv39fgUBADodDExMTwc/y5ctlt9vl8XhM68bExJgadxEREUpLS9Pbt2+Dc/39/bLZbNq+fXtwLjo6Wk6n07TW4OCgvF6vSkpKNDk5Gczt9/uVk5Ojp0+fKhAImL5TUVHxexsDAMAsOOEHAAAAAAAAIOR8/PhRU1NTstvtM579fc7r9cowDBUVFc26zsKF5r9AExISgifxpsXFxenVq1fBsc/nk91unxG3evVq09jr9UqSmpqafvo7Pn/+rLi4uOA4MTHxp7EAAMwVDT8AAAAAAAAAYSsQCMhisaijo0NWq3XG85iYGNN4tpi5mr6D7/jx49qwYcOsMf/MHxkZ+cfyAwAwjYYfAAAAAAAAgJCzbNkyRUZGamRkZMazv88lJyfLMAwlJibOOIE3V6tWrdLr169lGIbplN+bN29McUlJSZKk2NhY5ebm/pHcAADMBXf4AQAAAAAAAAg5VqtVubm5evjwocbGxoLzIyMjevToUXBcVFQkq9WqCxcuBE/cTTMMQ5OTk7+cOz8/X+Pj47pz505w7uvXr7p+/bopLjU1VcnJyers7NSXL19mrDMxMfHLuQEAmAtO+AEAAAAAAAAISfX19Xr8+LEqKytVWVmpQCAgt9utNWvWaHBwUNKPE34NDQ1qbm6Wz+dTYWGhFi9erHfv3unBgwdyOp2qrq7+pbxOp1NXr15VU1OTXrx4IZvNpr6+PkVFRZniFixYoFOnTqm2tlbFxcUqKytTfHy8xsbG5PF4FBsbq8uXL/+x/QAA4Gdo+AEAAAAAAAAISampqero6NDZs2fV2tqqlStX6vDhwxoeHtbw8HAw7sCBA0pJSVFXV5fa29slSQkJCdq8ebMKCgp+OW90dLS6urp08uRJud1uRUVFqaSkRPn5+aqpqTHFZmdnq7e3VxcvXpTb7Zbf75fNZlN6err27NnzexsAAMC/ZDH+ec4dAAAAAAAAAEJYXV2dhoaGdO/evfkuBQCAkMAdfgAAAAAAAABC1tTUlGns9XrV39+vrKyseaoIAIDQwys9AQAAAAAAAISswsJClZaWKikpST6fTz09PVq0aNGMV2sCAPBfRsMPAAAAAAAAQMjKy8vT7du39eHDB0VERCgzM1NHjx5VSkrKfJcGAEDI4A4/AAAAAAAAAAAAIIxxhx8AAAAAAAAAAAAQxmj4AQAAAAAAAAAAAGGMhh8AAAAAAAAAAAAQxmj4AQAAAAAAAAAAAGGMhh8AAAAAAAAAAAAQxmj4AQAAAAAAAAAAAGGMhh8AAAAAAAAAAAAQxmj4AQAAAAAAAAAAAGGMhh8AAAAAAAAAAAAQxv4C2u2vPKfFwgUAAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":29},{"id":"8bc2b6a4-39b8-4083-94d8-819eb001edf6","cell_type":"code","source":"pie_bar_plot('is_fraud')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:30.870981Z","iopub.execute_input":"2026-01-17T19:34:30.871175Z","iopub.status.idle":"2026-01-17T19:34:33.816427Z","shell.execute_reply.started":"2026-01-17T19:34:30.871157Z","shell.execute_reply":"2026-01-17T19:34:33.815498Z"}},"outputs":[{"name":"stdout","text":"is_fraud\n0 1842743\n1 9651\nName: count, dtype: int64\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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6IPVatXpF1yo/Xt2a9+uGhVXTBjUvK3vvK2cggKVf+7zCu/epXDNzjgnBQAgMTL/4fOyFY3j3D4gBVRUVBxxll57e7saGxuPOHvvWK+/bdu2wx4zTVM7d+7U4sWLj+vakQg3gAFgtItGY7zeAwAwzPjVbKAfvqwsLbvwYlksVgUOHBj0vPXPPK3WlhZl/fM3ZHgH3g4UAICRLu3c8+VdchplH5Aili5dqldffVVtbW2HHnvyySdlsViGXMjV19frzTff1MyZMw+7/gcffKCamppDj7322mtqbW3Vqaeeetz5AQAAAABDQ+EHDGDizJk68YwzdKC+XqGenkHNiUYieuGRv0o+n7Ju+zJnHAEAUppz2gxlXPvZZMcAMARr1qyR1+vVLbfcoldeeUV//OMfdd9992nNmjXKz88/NO7qq6/W8uXLD33+6KOP6otf/KL++te/av369fr973+vK664QlarVddee+2hcStWrNCkSZN066236vnnn9fjjz+uO+64Q6eddppmzZqV0OcKAAAAAGBLT2BAhmHo5BVnq7a6WtXvb1FZ5RQZgyjwgoGAXnrsMZ1x0cXyfepytT30mwSkBQBgeFmzspX9la9LppnsKACGwO/36xe/+IXuuece3XLLLfJ6vbrkkkt02223HTYuFospGo0e+ry4uFgNDQ36zne+o/b2dqWnp+ukk07S5z//eZWUlBwaZ7fb9b//+7+69957dfvtt8tms2n58uW64447EvYcAQAAAAAfMUyTuzfAYOzbVaMH779fkUhE+cXFg543Y+FCzVuyVI3fuUvdb7wex4QAAAwzm015375PjoqJbOUJICGi0ZiamzuSHaNfNptFmZlenXdenTZvDiU7DgCklOnTHXr00SK1tHRwhh8AAIOQleWV1Tq4zTrZ0hMYpMLSMp12wQUKdXepvbV10PM2bdigPdu3KesLX5KtsCh+AQEAGGYZ190ox4RJlH0AAAAAAAAjHIUfMASzT16sE5adoca6OoW6uwc975UnnlBHd7ey/vkbMlyuOCYEAGB4eJedqfSzz5Vh4cdFAAAAAACAkY47OMAQWCwWnbrqfFXOnau91VWKfey8k/6EQyE9/9e/yJpfoKzPf1Hi5ikAYARzTJ6izJv/Uez8DgAAAAAAkBpoHYAhcrrdWnHZGuWXjFftzp2DvhkaOHBALz32mNwnnqSM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\n"},"metadata":{}}],"execution_count":30},{"id":"d0ad04a3-6a06-4c44-b66c-ab026c5b99b5","cell_type":"code","source":"fig,axs=plt.subplots(1,2)\nfig.suptitle(\"fraudlent Analysis\",fontsize=18,fontweight='bold')\ndf.loc[df[\"is_fraud\"]==1,'hour'].value_counts(ascending=True).plot(kind='line',ax=axs[0],marker='o',fontsize=15)\naxs[0].set_xticks(range(0,3))\ndf.loc[df['is_fraud']==1,'hour'].value_counts(ascending=True).plot(kind='bar',ax=axs[1],fontsize=15)\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:33.817535Z","iopub.execute_input":"2026-01-17T19:34:33.818165Z","iopub.status.idle":"2026-01-17T19:34:34.136288Z","shell.execute_reply.started":"2026-01-17T19:34:33.818140Z","shell.execute_reply":"2026-01-17T19:34:34.135652Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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HHty4sQJvf7660FjlSpV0tixY9W2bVsdOnRIL774on766aeLrjV37tygYzG8Xq9Gjhyprl27qkqVKtqxY4f++c9/6vDhw5KkI0eO6MUXX8z39+Bstm3r9ttv17Bhw2Sapv71r38F1Tl06JA2bdqkdu3aqW7duoG/h2cfu/LYY4+pV69egc+/PdIjFGcftXLDDTeoevXqql69uhISErRnz57Atffffz/ouJLzCWWdZxiGoSZNmqhbt25q3ry5qlevrri4OOXm5urQoUOaP3++Vq5cGbh/8eLFevTRR1WnTp1Cr/eee+7R66+/LtM0JeX9BMLOnTuDfvrgk08+CZpz8803q0qVKpKkTZs2BeZKecfcPPnkk4GfIjh27Jh++OEHbdiwQWvWrCl0X2f89q+RJP3pT39Sly5dVLlyZWVkZGjfvn3atGlTkZ4NAACA0BCSAwAAlBMxMTGKiYlRXFxcvmv169cv1DNcLpfefPPNoKCwefPmgV/fe++9uvfeewuc26xZMzVq1CjoOIq9e/fq2LFjqlmzZmGXUShLlixRbm5u0NjTTz+tvn37Sso7g7158+bq0aNHvvtCNXfu3KDPf/zjH3X//fcHPickJKhmzZoaNmxYYGzx4sV66qmnFBMTc87ntm7dWi+++GLgPO2XX35Z1113XdA9u3btUrt27eTxeM759zAuLq7Qf3/P5cSJE/riiy+Cxvr06RP49R133KF//etfgc8fffSR/vu//7tQgXwo6zyjSZMmWrRoUYHPa9y4sbp27aqOHTvq5MmTkvKORUlOTg7s8i6MWrVq6eabb9ZHH30UGJs3b57++te/Sso7zmfZsmVBc+66667Ar30+X9C1G264QTfddFPgc0JCgjp27KikpCSdPn065G9e/HZ3fXR0tIYPH66IiIjAWPPmzdW7d29JOudOfQAAABQPQnIAAIAw0qNHjwue4/3zzz/rvffe04YNG/Tzzz8rIyNDOTk557w/JSWl2EPyLVu2BH2OiorS7bffHjRWu3ZtdenSRcuXLy9ynSNHjujnn38OGvvHP/5xwV3ifr9fmzZtUteuXc95z6BBg4JeOFm9enXFxsYqLS0tMJaenl60xkP04YcfBu2KjomJUffu3QOfe/furX//+9+Bo0XOnMF+4403XvDZRV3nyZMn9d577+nLL7/UTz/9pNTUVJ06deqcx5uk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pF69euW71rVrV0VGRmrt2rXKyckJjK9atUqSdOONN+Y7UqVmzZpq27at0tPTlZycXHKNA0AJ8H+/VTnPPib/Vyvzdo/3uEURT/1droSrnG4NAAAAAACg3Cu1t7utX79e33//vXJyclS3bl116dJF11xzTYH37ty5U1LB55VHREToyiuv1LZt27R37141adIkaE6zZs0KfGazZs20fv167dq1K98xLQBQFtmnT8u3cK78q5dJkoyateUdOkquq5o63BkAAAAAAEDFUWoh+aJFi4I+v/zyy+rVq5fGjx+vKlWqBMYzMzN18uRJSVLdunULfFbdunW1bds2HT58OBCS//LLLxecI0mHDx++uIUAQCmwfvhe5swpso/9Kklyd+0pT+IgGVFRDncGAAAAAABQsZR4SH7ZZZdp3Lhx6tKli+Lj45WRkaENGzZowoQJWrp0qfx+vyZNmhS4PysrK/DrqHOEQZUqVcp3b3Z2dtC1s1WuXDnfnKLyeErvlBq32xX0Z2oAFZudm6vchW/JXP6pZNsyqtdU5PAH5WnWwunWAAAV2LZt27R27Vpt2bJFW7Zs0ZEjRyRJu3btKvD+iRMn6tVXXz3n80aMGKFHH320wGvJycmaOnWqNm/eLNM0lZCQoMGDB6tv377nfF5KSopefvllrVmzRunp6YqPj9dtt92mkSNHKjIysvALBQAAAApQ4iF5nz59gj5XrlxZvXv3VseOHdW7d28tX75c3333nVq1alXSrRQLl8tQXFyVC99YzGJiCg7/qQFUHDm7durExH/Kd/iQJKlKj56KHT5Crv//TT4AAErK5MmTtWLFipDntWnTRpdffnm+8YKOTZSkpUuX6o9//KMsy1L79u0VFxendevWady4cdq1a5fGjRuXb87+/fs1YMAApaam6qqrrlK7du20bds2TZo0SevWrdPMmTPzvZMIAAAACEWpHbdyttq1aysxMVHTpk3TmjVrAiH5b49eOX36tKKjo/PNPXXqVL57z+wUP3PtbGd2mv92TlFYlq2MjOyLekYo3G6XYmIqKSPjlPx+ixpABWSbpnIXzZe55MO83eOxcYocOlJGizZKz7GlnIv/CRgAwPnFxFQK6594a9WqlRo3bqzmzZurefPm6t69u3Jzcy84r3///kpMTCxUjbS0ND355JPy+/2aOHGievbsKUk6duyYBg0apGnT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WrlypZKSkjRixAi1b9/eG6cMoIwxa9eVefd9cg0YKs+6VXLHxcr5aZc8m9bJs2mdFBYuq2M3WZ26yaxcxdftAgBQqHr37q2goKBsy6tUyf5v3muvvabJkycrICBAnTp1UkpKiuLj47VixQqNHTtWPXv2zLbPvHnz9OSTT8rj8aht27YKDw/XypUrNWrUKO3atUujRo0qkvMCAABA2eCVkLxFixa66667tHnzZm3ZskVJSUkKDAxU48aN1adPH911110KCAjItt8LL7ygxo0ba+rUqYqPj5efn586duyokSNHKjIyMsdavXv31tSpUzVu3Dht2rRJaWlpqlevnoYOHap+/foV9akCKOMM/3KyOnaV1bGrPIcPyo6Llb1ymZR4SvZ3c2R/N0dm4+ayOnWX2bKtDD8/X7cMAMBV+/Of/6yaNWtecbv4+HhNnjxZYWFhmjZtmurUqSMp/dOiw4YN03PPPad27dplGQyTmJio559/XrZt65133lGvXr0kScePH9fdd9+tTz75RN26dWMwDAAAAArMKyF5vXr19PLLLxdo3/79+6t///752qd169b66KOPClQPAAqLWbWGzAHD5Lr9Lnk2rZUdFyvPji2Zf1S+gqwOnWVFx8isfuVgAQCAkm7ChAmSpIceeigzIJekVq1a6c4779SUKVM0c+ZM/fGPf8xcN2PGDJ09e1Y9evTIDMglqVKlSnrmmWf0yCOPaMKECYTkAAAAKDCf37gTAEo7w+WS1bqD/B9/Xv6v/kfWzXdI4RHSuTOyF32r1FeeVsobf5V7xRI5KRd83S4AAEXiwoULWrVqlSSpT58+2dZnLFu8eHGW5UuXLpWU/onRS3Xt2lXlypVTfHy8UlJSCrtlAAAAlBFeGUkOAEhnVrpG5m0D5brlDnm2bUofXb55nZw9P8q950e5p0+S1a6TrE7dZfzhWhmG4euWAQC4opkzZyoxMVGmaapOnTrq2bOnqlevnmWbffv2KTU1VREREapatWq2YzRp0kSStGvXrizLd+7cKUlq2rRptn38/f1Vv359bd26Vfv27VOjRo0K65QAAABQhhCSA4APGKYpq3krWc1byTmdKHvlUtkrFss5elj2soWyly2UUauOrE7dZbWPlhFU3tctAwCQq3HjxmV5/MYbb+ihhx7Sww8/nLksISFBknIMyCUpKChIISEhOn36tM6ePavg4GCdPXtWZ86cuex+VatW1datW5WQkHBVIbnLlfcP2VqWmeVrUfJWLc6p+NfxZi3OqWTUKm11vFmLcyo+da7mOPnd11u1OCff1Lna/QnJAcDHjNAwufr0ldX7Nnl+3J4+unz9ajm//iz3/ybIPWuqzNYd5OoUI6N+I0aXAwCKjTZt2mjAgAGKjIxU5cqVdejQIc2bN0/jxo3T2LFjFRwcrOHDh0uSkpOTJUkBAQG5Hi8wMFBJSUk6d+6cgoODde7cucx1ue0XGBgoSVm2zS/TNBQenv8L0iEhgQWuWVxrcU7Fv443a3FOJaNWaavjzVqcU/GvU1x6KI3PK+eUFSE5ABQThmHIathUVsOmcu48K/uHONlxsXIO7pdn1XKlrlouo0o1WZ1iZHXsLCMkzNctAwDKuMcffzzL47p16+pPf/qTmjVrpvvuu0/vvvuuBg8efNlgvDjweBwlJSXneXvLMhUSEqikpPOybU8Rdua9WpxT8a/jzVqcU8moVdrqeLMW51R86mQcryDy24O3anFOvqmTU62QkMA8jy4nJAeAYsgoHyxXTB9Z3XvL+XmP7LhY2WtWyDlySO7Zn8r9xf9ktmwtq1OMzCbXyzC5DzMAoPiIjo5Ws2bNtHXrVm3atEnt27dXUFCQpPQbeObm/PnzkqTy5ctn+ZqxX3Bw8BX3KSi3O///0bdtT4H2Kwhv1eKcin8db9binEpGrdJWx5u1OKfiX6e49FAan1fOKStCcgAoxgzDkFH3Opl1r5Nr4DDZa1emjy7f95M861fLs361FFFJrqhusjp1kxFRydctAwAgSapTp462bt2qY8eOSVLmjTwPHz6c4/bJyclKSkpSaGhoZhgeHBysChUq6MyZMzp8+LCuu+66bPtlHO/SG4UCAAAAecXQQwAoIYyAQLmiY1Tu2Vfl/9c3ZMXcKAWVl04el/vrmUp5/lGljh0je/1qObbb1+0CAMq406dPS/p9zvC6devK399fJ0+e1JEjR7Jtv337dklSw4YNsyzPuBnntm3bsu2Tlpam3bt3q1y5cqpbt26h9g8AAICyg5AcAEogs0Zt+Q0ernJvjJPffY/KbNhUchx5tm1S2vi3lTLqYaXN+lSeIwm+bhUAUAadPHlS69atkyQ1bdpUUvqNNzt06CBJ+u6777Lt8/3330uSunfvnmV5165dJUnz5s3Lts+SJUuUkpKiqKgolStXrvBOAAAAAGUKITkAlGCGn7+sdp3k/9Rf5P/3f8vq01cKCZPOnJY9f65S//qUUv75iuxVy+Wkpvq6XQBAKbJ+/XotXLhQtm1nWX7gwAE9/PDDSk5OVkxMjKpWrZq5bsSIEZKkcePG6eeff85cvmHDBk2bNk0hISEaMGBAluMNHDhQwcHBWrRokebPn5+5/MSJE3rzzTezHBcAAAAoCOYkB4BSwrymqsx+d8l120B5tmyUHRcrz9YNcnbvUNruHdL/JshqHy0ruofMWn/wdbsAgBLu559/1nPPPafKlSurSZMmqlChghISErRt2zalpKSofv36evXVV7PsExUVpXvuuUeTJ0/W7bffrqioKKWlpSk+Pl6O42jMmDEKCQnJsk9YWJhGjx6tJ554Qo899pjatWunsLAwrVy5UklJSRoxYoTat2/vzVMHAABAKUNIDgCljGG5ZLVsI6tlGzmnTsiOXyp7xWI5J47JXjJf9pL5Mv5wrazoGFlto2QEBvm6ZQBACdSiRQvddddd2rx5s7Zs2aKkpCQFBgaqcePG6tOnj+666y4FBARk2++FF15Q48aNNXXqVMXHx8vPz08dO3bUyJEjFRkZmWOt3r17a+rUqRo3bpw2bdqktLQ01atXT0OHDlW/fv2K+lQBAABQyhGSA0ApZoRXlOvm/rJuvF2enVvTR5dvXCPnl71y/7JX7hlTZLXpKCs6Rsa19WUYhq9bBgCUEPXq1dPLL79coH379++v/v3752uf1q1b66OPPipQPQAAAOByCMkBoAwwTFNWk+tlNblezpkk2auWy45bJOdwguz4JbLjl8ioXlNWpxhZHaJlBIdc+aAAAAAAAAClACE5AJQxRoUQuW64WVbPm+Ts+VF2XKzstSvlJByQe8Zkued8JrNlW1nRMTIbNpVhco9nAAAAAABQehGSA0AZZRiGjOsayryuoVyDh8tevUJ23GI5+/fKs3alPGtXyqh0jaxO3WVFdZURFuHrlgEAAAAAAAodITkAQEZgkFxdb5Cr6w3y7N8nO26x7NVxco4flfvLaXJ/NV1m80hZ0d1lNmslw7J83TIAAAAAAEChICQHAGRh1q4r8+66cg0YIs+6H+SOi5Xz0055Nq+TZ/M6KTRcVlRXWZ26y6xcxdftAgAAAAAAXBVCcgBAjgz/crI6dpHVsYs8hw+mjy5ftUw6fUr2d1/I/u4LmY2apc9d3rKtDD8/X7cMAAAAAACQb4TkAIArMqvWkDlgqFy33ynPprWy4xbLs2OzPDu3yrNzq1Q+WFaHzumBefVavm4XAAAAAAAgzwjJAQB5Zrhcslp3kNW6g5wTx+ResUR2/GLp1EnZi76Tveg7GdfWlxUdI6t1RxkBAb5uGQAAAAAA4LIIyQEABWJUrCy/2wbKdcsd8mzfJHt5rDyb18vZu1vuvbvlnj5ZVtsoWdExMv5wrQzD8HXLAAAAAAAA2RCSAwCuimGaspq1ktWslZzTibJXLZMdFyvn6GHZyxfJXr5IRs0/yIruLqtdtIzywb5uGQAAAAAAIBMhOQCg0BihYXL1vk1Wr1vl7N4h9/JYedb/IOfAL3L/b6Lcsz6VGdlerugYGfUbM7ocAAAAAAD4HCE5AKDQGYYho0ET+TdoIufOe2X/EJc+uvzgfnl+iFPqD3EyrqmaPnd5xy4yQsJ83TIAAAAAACijCMkBAEXKKB8sV0wfWd17y/llb/oULGvi5Rw9LPfsz+T+YprMFq1lRXeX2aSFDNP0dcsAAAAAAKAMISQHAHiFYRgy6tSTWaeeXAPvkb1upezlsXL27ZZnw2p5NqyWwivK6tRNrqhuMipW9nXLAAAAAACgDCAkBwB4nREQIFen7nJ16i7PwV9lx8XK/mG5dOqE7K9nyf5mtswm18uKjpF5fWsZLv65AgAAAAAARYPUAQDgU2aNWjIHD5er/13ybFwre/kieXZtk2fbJnm2bZIqhMrq2EVWp+4yq1b3dbsAAAAAAKCUISQHABQLhp+/rLZRstpGyXPssOwVS2THL5VOn5I9f67s+XNlXNdIrs4xMiPby/Av5+uWAQAAAABAKUBIDgAodszKVWXefqdctw6UZ+sG2XGL5dmyXs5PO5X2007pfxNltY9On46lVh1ftwsAAAAAAEowQnIAQLFlWJasFm1ktWgj59RJ2SuXyl6xWM7xo7KXzJe9ZL6M2tfK6hwjq22UjMAgX7cMAAAAAABKGEJyAECJYIRHyHVTP1l9+sqza1v63OUb18jZv1fuT/fKPWOKrNYdZHWOkXFtAxmG4euWAQAAAABACUBIDgAoUQzTlNW4uazGzeWcTZK9arnsuFg5hw6mjzRfuVRGtRqyOsXI6thZRnCIr1sGAAAAAADFGCE5AKDEMoJD5Op5s6weN8nZ+6PsuMWy166Uc+ig3DOnyD3nM5kt26bPXd6omQzT9HXLAAAAAACgmCEkBwCUeIZhyKjXUGa9hnINukf2mnjZy2Pl7N8rz7pV8qxbJaNiZVmdusuK6iYjPMLXLQMAAAAAgGKCkBwAUKoYgUFydekpV5ee8uzfJ3vFYtk/xMk5cUzur6bLPXeGzGatZHWOkdmslQzL8nXLAAAAAADAhwjJAQClllm7rszadeW6Y4g863+QO26xnN075NmyXp4t66XQcFkdu8iK7i6zclVftwsAAAAAAHyAkBwAUOoZ/uVkdegiq0MXeQ4npI8uX7lUOn1K9vdfyv7+S5kNm8rq3ENmyzYy/Px93TIAAAAAAPASQnIAQJliVq0u844hcvUdLM/mdbLjYuXZvlmeXdvk2bVNKh8sq33n9Jt91qjl63YBAAAAAEARIyQHAJRJhsslK7K9rMj26fOVxy+RvWKJdOqE7NjvZMd+J6NufVnR3WW1iZIREODrlgEAAAAAQBEgJAcAlHlGxcryu3WgXDffIc/2TbLjFsuzaZ2cfbvl3rdb7umTZbWNkhUdI6NOPRmG4euWAQAAAABAISEkBwDgN4ZpymrWSlazVnKSEmWvXCY7LlbO0cOy42Jlx8XKqFlbVqcYWe2jZZQP9nXLAAAAAADgKhGSAwCQAyMkTK7et8nqdauc3TvkjouVZ/0Pcg7sl3vaRLlnfSozsr2s6O4yGzRhdDkAAAAAACUUITkAAJdhGIaMBk3k36CJnMH3yl4dlz66/MB+eVbHybM6TsY1VWV16i6rY1cZoWG+bhkAAAAAAOQDITkAAHlklA+Wq3sfWd16y/llb/oULKtXyDl6WO45n8v95XSZ10fKio6R2bSFDNP0dcsAAAAAAOAKCMkBAMgnwzBk1Kkns049uQYMk71uZfro8r275dm4Rp6Na6TwCFlR3eXq1E1Gxcq+bhkAAAAAAOSCkBwAgKtgBATI1am7XJ26y5Pwa/ro8lXLpVMnZX8zS/a3s2U2vj597vIWbWS4+KcXAAAAAIDihP+pAwBQSMzqtWQOGi5Xv7vl2bhGdlysPDu3yrN9kzzbN0kVQmR16JIemFet4et2AQAAAACACMkBACh0hp+frLZRstpGyXPsiOwVi2XHL5VOn5K94GvZC76WcV0juaJjZLZuL8O/nK9bBgAAAACgzCIkBwCgCJmVq8i8/U65bh0oz9aN6aPLt6yX89NOpf20U5o2UVa76PTR5bXr+rpdAAAAAADKHEJyAAC8wLAsWS1ay2rRWs6pk7JXLpW9YrGc40dlL50ve+l8GbXryoqOkdWuk4zAIF+3DAAAAABAmUBIDgCAlxnhEXLd1E9Wn77y7NqWPrp84xo5+/fJ/dnHcs+cKqt1B1nRMTLqNZBhGL5uGQAAAACAUouQHAAAHzFMU1bj5rIaN5dzNkn2quWy4xbLOXQgfaT5yqUyqtWQ1SlGVofOMiqE+LplAAAAAABKHUJyAACKASM4RK6eN8vqcZOcvbtlx8XKXrtSzqGDcs+cIvecz2S2bCsrOkZmo2YyTNPXLQMAAAAAUCoQkgMAUIwYhiGjXgOZ9RrINege2WviZcfFyvllrzzrVsmzbpWMipVldeomK6qbjPCKvm4ZAAAAAIASjZAcAIBiyggMkqtLT7m69JTn159lxy2WvTpOzoljcn81Q+65M2U2aykruofM5i1lWPyzDgAAAABAfvG/aQAASgCzVh2Zd42Q644h8qz/Qe64WDm7d8izZYM8WzZIIWGyorrKiu4us3JVX7cLAAAAAECJQUgOAEAJYvj7y+rQWVaHzvIcSUgfXb5ymZSUKPv7L2V//6XMhk3T5y5v1VaGn7+vWwYAAAAAoFgjJAcAoIQyq1SXeccQufoOlmfzetkrYuXZtkmeXdvk2bVNCiqfHqhH95BZo5av2wUAAAAAoFgiJAcAoIQzXC5Zke1kRbaTc/K47BVL5F6xWDp1Qnbs97Jjv5dR9zpZ0TGy2kTJCAjwdcsAAAAAABQbhOQAAJQiRkQluW4dIOvm/vJs35w+unzjOjn7fpJ7309yT58sq22UrOgYGXXqyTAMX7cMAAAAAIBPEZIDAFAKGaYpq1lLWc1ayklKlL1yuewVsXKOHJIdFys7LlZGjdqyorvLat9ZRvlgX7cMAAAAAIBPEJIDAFDKGSFhcvW+VVavW+Ts3in3ilh51q2Sc3C/3NMmyT3rM5mR7dJv9tmgCaPLAQAAAABlCiE5AABlhGEYMho0ln+DxnIGDZe9eoXsuFg5B36RZ/UKeVavkHFNVVmdusvq2FVGaJivWwYAAAAAoMgRkgMAUAYZ5YPl6t5bVrdecn7ZK3vFYtmrV8g5eljuOZ/L/eU0mde3lhXdXWbTljJM09ctAwAAAABQJAjJAQAowwzDkFGnnsw69eS6Y6jsdavS5y7f86M8G9fIs3GNFBYhq1M3WVHdZFa6xtctAwAAAABQqAjJAQCAJMkICJCrUze5OnWTJ+FX2XGLZa9aLiWelP3NbNnfzpHZuHn63OUt2shw8WsEAAAAAKDk43+3AAAgG7N6LZmD7pGr313ybFwje8VieXZskWf7Znm2b5aCK8jq2CU9MK9aw9ftAgAAAABQYITkAAAgV4afn6y2UbLaRslz7IjsFUtkr1wiJZ6SveAb2Qu+kXFdQ7miY2S27iDDv5yvWwYAAAAAIF8IyQEAQJ6YlavIvH2wXLcOkGfrRtkrYuXZskHOT7uU9tMu6X8TZbWPTh9dXruur9sFAAAAACBPCMkBAEC+GJYlq0VrWS1ay0k8KTt+qewVi+UcPyp76QLZSxfIqF1XVnR3We2iZQQG+bplAAAAAAByRUgOAAAKzAiLkOumfrL69JVn17b0ucs3rJazf5/cn+2Te8ZUmW06yBUdI6NeQxmG4euWAQAAAADIgpAcAABcNcM0ZTVuLqtxczlnz8hetVx2XKycQwfkWblMqSuXyahaXVZ0jKwOXWRUCPF1ywAAAAAASCIkBwAAhcwIriBXz5tk9bhRzt7dslfEyl6zUs7hBLlnTpV7zucyW7aVFd1dZqPmMkzT1y0DAAAAAMowQnIAAFAkDMOQUa+BzHoN5Bp4j+w18elzl/+8R551q+RZt0qqWEmuTt1lRXWTEV4x2zEcj0ee3Tuk04lSaJjM+o0J1QEAAAAAhYqQHAAAFDkjMEiuLj3l6tJTnl9/kR0XK3t1nHTiuNxfzZB77kyZTVvK6hwjs3krGZZL9vrVSps+UTp18vcDhUfIb9C9siLbFVpvBPEAAAAAULYRkgMAAK8ya/1B5l0j5LpjiDwbVssdt0jOjzvk2bpBnq0bpJBQmdfWl2fj2uw7nzqptPFvSw8+VShBubeCeG8g7AcAAACAgiEkBwDgIt4IGktLjatl+PvLah8tq320PEcSZMctlr1ymZR0OueA/CJp0yfJbNnmqs7JXr86PXC/VCEH8VLRfz9KU9gPAAAAAN5GSA4AKDFKQ9BYWmpIhfv9MKtUl3nHELluHyz3d1/Knjvj8jucOqHUMS/IqFRZRkCQFBAoBQbKCAiUAgJlBAb99jgoy3IFBMqwLDkeT/pzdBmFEcRLRf/98GbYDwAAAAClESE5AKBEKA1BY2mpkVmnCL4fhuWSeU1V2XnY1tm/T87+ffkv4l9Ocrmk5HOX3+7UCaV9NFZG5SqSZcmwLMlySaYpZfzdsiQzY92lf1zy7Nkle+7MHI6d/v1whj0gq0Xb347pytw3r8G8N8N+AAAAACitCMkBAIWiKEd5F3Xwm6egcfzbSvP3lwxDkvHb198YFz3OXG5IxkWPHUnnzly+xgf/UlpoWNZjX1or89CXLjPkOI506sTla3z4b6VVukbGxX1ecuxs9TLO5TfO+fM51/nt+5FWsXL6SO5sx7nysSXJuXDhsudw1VJT0v/kgWfdqiJtxT3lQ7mnfFikNXTqhDy7d8hq2LRo6wAAAABACUVIDhQjJWEOYSAnRTnKO08B9v8myKhzbYHfL549P2btPTepqQU6fp45jpR4Km+bFrSGxyMdPVzw/fPixLGiPT7y73SirzsAAAAAgGKLkBwoJrjpGkqqqx3l7TiOdD5ZTlKilHRazulEOWfSv+rMaXkOHrhygH36lFKfe+SqzgPwFTOqm8zadSTbI3lsybYljy3Hzvi7R7Ldv6/3eOT89thJPCnnx+1XLhIaVtSnAQAAAAAlFiE5UAyUtpuuMSK+7MjTKO/PPkoP9M6e+T0ITzotJylRTtJpKem05E67+maMHKYlySvHSf9TVmp4gXXLAFlNW6Q/yDydnKaOyWWZDHl2bpV73lfSmdO/rwsJk6vPbTIbN//9wIaRtUbml0umwLlkmWfbJrk/+zjXc3ANfUBWs1a/Pcrheb3Cc+3Z+6PSPhx72W0kyerQucBToTgej1Kef+TyF5LCK8qs37hAxwcAAACAsoCQHPAxX9x0zbk4SMv4u+NIuujvjiTHk76Nx5Pnbe0tG+T+epaUlPh7wZBQuW7slx5qXa7OxcfPpY6T07ZyJE/Gtr8dz1GB6jiX2/Zq6vy2r5OPbX+vk8Nzkcv3JevxL79t+mNP7jVy2Ne5ZDsn+dyVR3mfSZL7oysHhQoMkhESKoWEyQgJlfHbV0/yOXkWfH3F3f2efLHIg8Zyo98p8PuwtNSwd21T2tt/v+J2ZoPGMq+tX6Aamceo9QdZPW4ssotuZtcbZFQIzeFTPBXlN2j4VV+cNMMipPCpRRpgG6Ypv0H35nyh9Td+g4ZzoRIAAAAALoOQHPAxz+4dVw4ZT51Qyv89ILlcWcPZgga53pZ0Wu5pE71fF8XHNdVk1qwlo0KYjNBQqUKojNDfw3CFhMrw889xV8fjUcra+BIfNJaWGmb9xlJ4hNdGLhumWaQ3nLQi28ls2aZIgnhvBdhWZDvpwaeKLOwHAAAAgNKOkBzIoyKbQiSvN1NLPnf1tXzNMKSg8pJpKnPahYxpEn6bXkGGIePi6RcynmPDyPpHRnr2n5qaPkevZUkBQTLMrNukH9v8fZoF05ChS4910TZZ9v2txrmz6dOB+PtLwSHp3/cc9zV/K5leR5erk2WbS5bncK75Pv7F+5qGHI8j5/gR6cIFKShIRuWqMiwrxzpGjj3mXMeTcED2V9Ov+K33G3p/gYPO0hQ0loYapXHkclEG8d4KsIsy7AcAAACA0o6QHMiDIr2pZh5vpmb2vElmeCUpNUVOWmp6OPzbVyc1RUpLy7ouNfW3v6dkbufzuYodR6oQKjM8QgoIlAICZJTL+Brw+7Is6wJlBFy0zkr/sZXb98RViDc69UYNb7DXr5a7iF6/Zos2spcvLPJRxaUpaCwNNRi5nD/eCrCLetQ9AAAAAJRWhOTAFRT1TTXzOnWB3x1DrypQcRxH9tqVcs+YIp0+9fuKCiFyde8t4w/XSqkXB+3pwbuTmjVo/z2EzxrWO2eSpLNnrtzI4YPyHD5Y4POQy09yWekjoi/12/fEbtVOZp16WQP2chnh+yXLcnlOvXkz1aK80WlRn4c3RxWXpqCxNNRg5HL+EGADAAAAQPFFSA5cRp5uqjn+baVlTFuRMS2GpMwpKn77a+YKw/h954zpK9zuyzdy/rxS/vxQ1uk4sh33khqZi3+bNiTlgnQmKfuxzyTJ/dUMKTQ8PUTOnPoko1YezsflJwUG5S0kv1rutPQ/l+HZsFqeDasLdnw/P6lcwBWnt0n7/GOpYmUZlpnP5yvrOs/2TXJ/M+eSG52GyXXLHbKat/p9WU41Ml5z2Wqkb+N4PEr734TLn0ch3BTWm6OKCRqLF74fAAAAAIDSgJAcuIw83VRTkmy7aBu5kCzlMHA6L/I8wcrpU3IuHmFeVqWlpf+5kqTTShv9XNH0kJQo92cf6wqXTgrHqRPy7N5x1UEno4oBAAAAAEBJRUgOXE5eb6oJlGSF9DpnVDEAAAAAACiJCMmBy8njTTX9nvpLsQ4H7dUrlPbxO75uAwXg9/CfZdZvlH7T04tvvOo4yvycgKOL1jmZiz17dilt/L+uXCSPr3MAAAAAAIDSiJAcuIy83lTTrN/Ye00VRB5DUOvWgTJr1ZEsK/1PxlQZFwe0jueiUDYjkHUkz++PHY8tJ+FA+rzegYEyqtaQYRhXPIaTeQwna92LtnNsW/bcGdL55NxPJDBIVu9bZRhmjseQ48jRRcszzuG3uo5ty7NsoZRymTluygXI7NA5fRbwS/u95BydzLqe38/1+FE5e3df8XuiC+dlBAZdebscmC3blo7XLwAAAADA60zTkGkaWZZZlpnl66U8HkceT54nfgWKDUJy4DIM05TfoHuVNv7tXLfxGzS82M+7nNew33VTv8I7l8j2hXOcHJjhFS//PbnnT1d9s0j72gaXr3HvyKuqYe/aprS3/37lDa9ilHdpef0CAAAAALzLNA2FhwXKtKwc14eEBOa43GPbOpV4nqAcJQ4hOXAFVmQ76cGnlDZ9YtaQObyi/AYNv+ow1htKW1jqje9JUdfw1qcUSsPrFwAAAACQLqfR3VLhj/A2TUOmZenEv99U2oFf87SPX81aqvjEMzJNg5AcJQ4hOZAHVmQ7mS3byLN7R/pNDkPDZNZvXGJCZan0haXe+J4UZQ1vXrgoDa9fAAAAAEXPW9NrFCToLeg0HqXpnK40ulsq/BHeaQd+VdrePfnaByiJSmVIfuHCBY0fP17ffvutEhISFBoaqs6dO+uJJ55QlSpVfN0eSijDNIv1zTnzorSFpd74nhRlDW9euCgNr18AAADgSrw1yragtbxVpyC1vDW9RkGD3oKEvKXtnAoyultihDeQF6UuJE9JSdHw4cO1ceNGVa5cWT169NDBgwc1e/ZsLVmyRNOnT1etWrV83SbgM4SlxUtpu3ABAAAA+Io3R9l6MxT15jl5Y3oNb07jURrPSWJ0N1AUSl1I/v7772vjxo1q1aqVPv74Y5UvX16SNGHCBL3++ut6/vnnNWXKFB93CQC/48IFAAAAcPW8Ocq2OIevBa2VwVsBrDeD3tJ4TgAKV6kKyVNTU/Xpp59Kkv76179mBuSSNGLECM2ZM0erV6/W1q1b1axZM1+1CQAAAABAmeLNOagJXwEA+VWqQvL169frzJkzql27tpo0aZJtfe/evbVr1y4tXryYkBwAAAAAUOZ546aG3pyDGgCAgihVIfnOnTslKceAXJKaNk2fzmDXrl1e6wkAAAAAgOLImzc19OZ8zQAA5FepCskPHTokSapatWqO6zOWJyQkeK0nAAAAAADyw1tTk3CzQQAA0pWqkDw5OVmSFBAQkOP6wMD0q+Dnzp27qjouV84fOSsKV/qYGzUAAAAAoPTwxdQkhNcAgLKuVIXk3mCahsLDy195w0KW28fcqAEAAACgLCvIqGvpKkZee2H+bqYmAQDAu0pVSB4UFCRJunDhQo7rz58/L0kqX77gIbfH4ygpKbnA++eXZZkKCQlUUtJ52baHGgAAAEUgJCSQT7yhzPBG0JtbnSvV8tYNIaWCzavtjfm7MzC6GwAA7ylVIXm1atUkSYcPH85xfcby6tWrX1Udt9v7Ia9te4q8bmmpAQAAABSW0hQoZ9Tx1o0avTFlSEFGXUsFG3nNCG8AAEqvUhWSN2rUSJK0ffv2HNdv27ZNktSwYUOv9QQAAACgZCptgXJGLW8EvaX5hpCM8AYAoPQpVSF5ZGSkKlSooP3792vHjh1q3LhxlvXz5s2TJHXv3t0X7QEAAAAoQUproCx5L+glUAYAACVBqQrJ/f39NWTIEP33v//VK6+8ok8++SRznvIJEyZo165dateunZo1a+bjTgEAAACUFATKAAAApVupCsklaeTIkVq5cqU2bNigXr16qU2bNkpISNCmTZsUERGh0aNH+7pFAAAAAAAAAEAxkfOdZkqwcuXKafLkyRo5cqQCAwO1cOFCJSQkqH///pozZ45q1arl6xYBAAAAAAAAAMVEqRtJLkkBAQF6/PHH9fjjj/u6FQAAAACF4MKFCxo/fry+/fZbJSQkKDQ0VJ07d9YTTzyhKlWq+Lo9AAAAlGClbiQ5AAAAgNIlJSVFw4cP1/vvv69z586pR48eqlatmmbPnq3bb79dv/6at5tdAgAAADkhJAcAAABQrL3//vvauHGjWrVqpXnz5unf//63ZsyYoWeffVYnT57U888/7+sWAQAAUIIRkgMAAAAotlJTU/Xpp59Kkv7617+qfPnymetGjBihhg0bavXq1dq6dauvWgQAAEAJR0gOAAAAoNhav369zpw5o9q1a6tJkybZ1vfu3VuStHjxYm+3BgAAgFKCkBwAAABAsbVz505JyjEgl6SmTZtKknbt2uW1ngAAAFC6EJIDAAAAKLYOHTokSapatWqO6zOWJyQkeK0nAAAAlC6G4ziOr5soSRzHkcfj3afMskzZtocaAAAARcQ0DRmG4es2kIO//OUvmj59uv70pz/pySefzLb+l19+Ua9evVSnTh3NmzevQDVy+x3fMCTTNGWfTpTjdufpWIbLJSs0TB6PR3n9n5a36nizVnGu481axbmON2sV5zrerMU5ebeON2sV5zrerFWc63izFufk3TqXq5Wf3/Fdea4GSZJhGLIs7/8HyrKKftB/aakBAAAA5MeVfse3QsPyfUzTzP/vvd6q481axbmON2sV5zrerFWc63izFufk3TrerFWc63izVnGu481anJN36xS0Vua+Bd4TAAAAAIpYUFCQJOnChQs5rj9//rwkqXz58l7rCQAAAKULITkAAACAYqtatWqSpMOHD+e4PmN59erVvdYTAAAAShdCcgAAAADFVqNGjSRJ27dvz3H9tm3bJEkNGzb0Wk8AAAAoXQjJAQAAABRbkZGRqlChgvbv368dO3ZkW59xs87u3bt7uzUAAACUEoTkAAAAAIotf39/DRkyRJL0yiuvKDk5OXPdhAkTtGvXLrVr107NmjXzVYsAAAAo4QzHcRxfNwEAAAAAuUlJSdGwYcO0adMmVa5cWW3atFFCQoI2bdqkiIgITZ8+XbVq1fJ1mwAAACihCMkBAAAAFHsXLlzQ+PHj9fXXX+vQoUMKCwtT586d9fjjj6tq1aq+bg8AAAAlGCE5AAAAAAAAAKDMYk5yAAAAAAAAAECZRUgOAAAAAAAAACizCMkBAAAAAAAAAGUWITkAAAAAAAAAoMxy+boB5OzChQsaP368vv32WyUkJCg0NFSdO3fWE088oSpVqlz18bdu3ar4+Hht3rxZmzdv1pEjRyRJu3btuupjS9L58+e1YsUKxcbGat26dUpISJBlWapdu7Z69eqlESNGqHz58oVSCwAAAAAAAAAKynAcx/F1E8gqJSVF99xzjzZu3KjKlSurTZs2OnjwoDZv3qyIiAhNnz5dtWrVuqoaI0eO1KJFi7ItL6yQfMaMGXrxxRclSfXq1VP9+vV19uxZbdiwQefOndO1116rqVOnqmLFioVSDwAAAAAAAAAKgpHkxdD777+vjRs3qlWrVvr4448zR1xPmDBBr7/+up5//nlNmTLlqmq0bNlSDRs2VPPmzdW8eXPFxMQoNTW1MNqXJLlcLg0ePFjDhw9XvXr1MpcfPXpUDz74oLZv367Ro0frrbfeKrSaAAAAAHCxEydOKCUlRdWrV/d1KwAAoBhjJHkxk5qaqqioKJ05c0Zz5sxRkyZNsqy/7bbbtGvXLs2aNUvNmjUrtLrNmzdXampqoY0kv5wNGzbozjvvlL+/v9atWyd/f/8irwkAAABAWr16tbZs2aKwsDDdcMMNCgkJkSSlpaVp1qxZWrNmjZKSklSjRg317t1bHTt29HHHV2fYsGFat26dtm/f7utW8uT9999XmzZt1K5dO5/2kZqaqk2bNunYsWMKDAxUkyZNCmXaTwDIidvtVmJiokJDQ+Xn53fZbRMTE5WcnFygi58ej0c//fST/Pz8VKdOHRmGkblu69atWrx4sU6ePKnatWvrpptuuqqfe9u3b1dsbKx+/PFHHTx4UOfOnZMklS9fXjVq1FCDBg0UExOTLfeD7zCSvJhZv369zpw5o9q1a+f4Rundu7d27dqlxYsXF2pI7k2NGjWSlP6LV2Jioq655hofdwQAAAAULzt37tTHH3+sNWvW6MSJEwoKClLTpk115513qlevXgU65jPPPKOvv/468/Gbb76piRMnqmbNmho+fLi2b9+ui8dQTZs2TYMHD9bLL798tafjU4U5LmzXrl1atGiRdu7cqYSEBJ07d06maSokJET169dXu3bt1KtXrwIPBBo7dqwMw1C1atV066236rbbbsvyydzCEhcXpypVqqh+/frZ1k2ZMkXvvvuukpKSsizv0aOH/va3vykiIqLQ+0HxlJycnCXYCwoK8nFHKG1Onjyp0aNHa8GCBUpNTZXL5VKXLl302GOPqWHDhjnu849//ENffvllvi9+Ll26VC+88IJOnDghSapTp47efvttNW7cWOPHj9d//vMfOY4jx3FkGIbGjh2r119/Xb17985XnQMHDuj555/XmjVrJOX8b9C2bds0f/58vffee2rXrp1ee+011axZM191Cmrp0qU6deqUbr/9dq/UK0kYSV7MTJw4UWPGjFGfPn30n//8J9v6JUuW6MEHH9QNN9ygd999t9DqenMk+Y8//qhbb71Vfn5+Wr9+PSPJAQAAUGIUZmj0xhtvaPLkyfr888/VvHnzzOXffPONnn32Wbnd7mz/uTYMQ4MGDdIrr7ySr1qzZ8/W888/r9DQUN12222SpK+++krVqlVTVFSUPvnkE3Xr1k033nijKlSooM2bN2vSpEm6cOGC3nrrLd10000FPs+ikNfQ4siRI0pJSVHt2rWzLJ83b16+6h05ckQvvPCCVqxYIen30MMwjCzfI8MwFB4erlGjRqlv3775qiH9PqAo41iS1KRJE/Xt21c333xzod3TqVGjRurfv79Gjx6dZfn777+vd955R47jqFmzZvrDH/6gpKQkrV27VufPn1eDBg00c+ZM/g9XjPz666+ZF9Lq1q17xVG4l3P27FnNnDlTsbGx2rVrV7YLJSEhIWrYsKFiYmI0YMAABQcHX237uYqLi9Px48dLbZD3/vvv68CBA9negwVx/vz5zAt2FSpUuKrXgDclJydrwIAB2rdvX7Z/6/z8/DRq1CgNHTo0237PPfecvvjiC+3YsSPPtX788Uf1799fbrdbtWvXlsvl0r59+1SlShX985//1NChQ9W0aVPddNNNCg8P1+rVq/XVV1/J399fc+fOzfN9AY8cOaL+/fvrxIkTatiwoXr37q2mTZuqSpUqmb8vJCcn68iRI9q2bZu+//57/fjjj6pUqZJmzZrllU/sDB48WJs3b87X8ydJu3fv1g8//CA/Pz9FRUVlPidut1tTp07VokWLdPLkSdWqVUsDBgxQz549C9SfbdvasGGDjh49qkqVKqlVq1aXfU2vX79e+/fvL5SfFYwkL2YOHTokSapatWqO6zOWJyQkeK2nwjZ58mRJUnR0NL9cAQAAoFgrytBo1apVqlKlSpaA/OjRo3rhhReUlpamPn36qH///qpRo4ZOnz6t1atXa8KECZo+fboiIyPzFcLOmjVLLpdLn3/+ua699lpJ0p133qm+fftq7969Gjx4cJbgPSYmRt26ddPdd9+tGTNmeCUkz09o9Msvv2QLqK+0fYaLP16fF6dOndLgwYN1+PBh1ahRQ5GRkQoLC9OBAwcUHx8v27b16KOPKiIiQuvXr9f8+fP17LPP6tdff9UjjzySr1qSMgPxL7/8UrGxsdq2bZu2b9+uN954Q506dVLfvn3Vo0cPlStXLt/Hvtilz92hQ4f0/vvvKyAgQO+++646deqUue7kyZN6+OGHtXHjRn3++ecaPnx4vut5K/jwRpBz7733qk2bNrrtttuyXYApTEePHtWBAwd07bXXKiwsLMu6zz77TB988IGOHDmSuSwgIEB33HGH/u///k+BgYH5qrVo0SI9//zzSkpKynxthISEZB7n/PnzmT+H1qxZo3HjxmnMmDGKiYm5upPMxfjx47V27doiDck3b96sZcuW6dixYwoKClKTJk3Uq1evq35v5cXSpUu1efPmAoXkycnJmjVrVuanWk6fPp1lfe3atdW+fXsNHDgwy78v+XX27FlNnDgxc4quAQMGqG3btpKkn3/+WWPHjs0yRVefPn30wAMP5Pm1N2HCBO3du1dNmjTRX//6VzVq1Ei//vqrJk2apFmzZum1115TQkKC/vznPxf4HDJ8/PHHcrvdeumll3TXXXdJkr744gs9++yzGjVqlDp16qTx48fL5UqPSfv376+mTZvqtdde05QpU/T888/nqc5//vMfnThxQs8++6zuvffeXLdr1KiRunbtqpEjR2rChAn6xz/+obFjx+q111676nMtCv/617/04YcfZv5scLlcevXVV3Xbbbfp0Ucf1eLFizO33bNnj5YuXap7771Xo0aNyled9evX6+mnn87MRiUpIiJCjz/+uAYNGpTjPjNmzNAXX3xBSF4aJScnS0r/xy0nGT9sMkavlDRLly7VzJkz5efnpyeeeMLX7QAAAAC5KurQ6ODBg2rZsmWWZd99950uXLig++67T88880yWdZGRkeratasGDx6sadOm5Ssk//HHH9WmTZvMgFyS6tWrp9atW2v16tW67777su3TsmVLtWzZ0mvzeecnNAoPD9fp06c1aNAg3XfffbIsK8ftnnrqKW3evFkLFy4scF/vvvuuDh8+rPvuu09PPvlkZogipY8avP/++zVlyhR9++23GjhwoJ566imNHDlS7733njp06KA2bdrkq55pmurSpYu6dOmi8+fPa968eZo7d65WrVqlpUuXatmyZQoKClKvXr102223Fdq88QsXLpTb7dZjjz2WJSCX0kOKN998UzfffLO+++67fIfk3go+vBXkrFq1Sj/88IPee+89tWzZUn379tWNN96o0NDQfB3nSv79739rzpw5WrBgQZaQ/PXXX9ekSZMyz7NixYpKSkrS+fPn9emnn2rjxo2aOnVqrrnCpTZs2KDHHntMpmlq6NChmaNfLw07z58/nzn6dfr06Xrsscf06aefqkWLFnk+p4tD/ctJS0uTlH6h4OILOvkZafv222+radOm2T55kpycrFGjRmX+XLj4kyFvvvmmxo4dm+1nc3ERHx+vp59+WqdOncr1IuEvv/yiX375RTNmzFD//v310ksv5XuA4rlz53TXXXfpp59+yqzz1Vdf6Z///KcaN26su+++W4mJiZnb7927V+PGjdOyZcv02Wef5ane/PnzFRwcrA8++ECVKlWSJNWvX1+vvvqqbrjhBj3zzDOaMGGCkpKS9Pe//z3fFzgvtmbNGtWtWzczIJek22+/XR9//LF++uknvfHGG1l+tkvSXXfdpQ8++EArV67Mc53ly5erRYsWlw3ILzVixAh9//33WrZsWZ738aYlS5Zo/PjxCgoK0k033SSXy6XvvvtOf/3rX5WamqrFixdr6NCh6tu3b+Yo/H/+85+aOHGievToked/Aw8cOKAHHnhA586dU4UKFVSnTh0lJCToxIkTeumllxQXF6d//vOfRTrYlpAcXrNnzx4988wzchxHzzzzTJaPEgIAAADFiTdCowsXLmQbef7zzz/LMIwcP2IuSY0bN1arVq20ZcuWfJ3P+fPnc5xLOmP6jtzuE3TNNddo8+bN+arlDd99951ef/11TZs2TevXr9crr7yiyMjIbNtl/Ge6Ro0aBa61ePFi1a1bN9tFCyk9sPvb3/6mu+66S3PnztWQIUNUuXJlvfPOO+rVq5cmTZqU75D8YoGBgbr99tt1++2369ixY/r666/11VdfaceOHZozZ46++OILValSRbfeeqtuvfVWNWjQoMC1Ml57uU1lU7NmTTVt2lQ//fRTvo7rreDDW0FOhrCwMJ07d04bNmzQxo0b9dprr6lr167q27evunXrVihTXqxbt04NGjTIMlfxzp07NWnSJAUEBOiZZ55R//79FRAQIMdxtGHDBo0ePVrbtm3TJ598opEjR+apzrhx42QYhqZOnXrZn12BgYFq06aN2rRpo5tvvlnDhg3T+++/r/Hjx+f5nLp27ZqvsLNr166ZfzcMI18X7T744AP169cv22v62Wefzbzw0L9/f9WpU0enT5/WggULtHnzZj344IOaO3dunu6fljHvdH6dPXs23/vs3LlTDz74oGzb1s0336z27dsrPDxcBw4c0OzZs7V371698MIL6tSpk9avX69PP/1Us2bN0rFjx/TBBx/kq9Ynn3yi3bt3q2XLlrr//vslSR9++KFef/11tWrVShcuXNCzzz6rPn36KDg4WFu2bMl87U2aNEkPPPDAFWvs379fbdq0yQzIL9a1a1d9/vnneuCBBzRr1iydOXNGb731VrYgO6+OHTum7t27Z1t+7bXX6qeffspx/nOXy6UGDRpow4YNea5z+vTpzNH2+VG9evV8T3/SuHHjfNeRlDnnel599tlnMgxDEydO1PXXXy8p/QJCv379NHr0aA0ZMkQvvvhi5vY1a9ZUlSpVdN999+l///tfnn+2fvjhhzp37lzmhZ1y5crJcRzNnTtXY8aM0YIFC3Tfffdp3LhxRTbVEyF5MZMxR9GFCxdyXH/+/HlJ6fMfliRHjhzRAw88oNOnT2vEiBEF+ngeAAAA4C3eCI2qVaumH3/8McuyjI/5X24EaEYglh/h4eFZphzJ8PPPP0uSfvrpJzVr1izb+j179qhChQr5quWN0CgsLEyvv/66+vbtq7/+9a8aOnSo7rjjDj399NOFPpo3t3AlQ0a4snv37sxlVatWVevWrfMVrlxJ5cqVNWLECI0YMUJ79uzRl19+qa+//loJCQn68MMP9fHHH1/VqH+PxyMp/XWZm+rVq+f7oom3gg9vBTkZunXrpueff17fffedvvrqK61bt04LFy7UokWLFBISoj59+ujWW2+9qoskR48eVefOnbMsW7RokSTpL3/5i/r375+53DAMRUZG6oMPPtBNN92kb7/9Ns8h+aZNm9SxY8d8jQhv1aqVoqKitHHjxjzvc3GvuU0xm+H48eNKS0u77OuxIDJumFi1alXNmDFDlStXzlz3wAMP6K9//aumT5+uSZMm5Xhh7FLDhg0r0Ajn/AaVUvqUVLZt65133lGPHj2yrLv33nv1xBNPaMyYMfr6668zL669+OKLmjVrlubMmaN+/frludaCBQsUGhqqjz76KPN92b59e/Xo0UMLFizQ888/r2HDhmVu37FjR3300Ue66aab9N133+UpJLdt+7Lv+Xr16unzzz/XH//4R82fP18jR47UO++8k+dzuFhuU+hkZHC59REeHp75qYa8qFatWuY9HPI67cz58+e1du3afL/WM34PyO8FxvycjyRt3bpVLVq0yPy5KqX/u9eqVSutX78+y+j8DJ06ddK1116br58P8fHxqlq1ql555ZXMi4yGYei2225T27Zt9cgjj2jNmjW655579NFHHxXJTaQJyYuZjDfF4cOHc1yfsbx69epe6+lqJSYm6o9//KMOHjyo/v375/ujbAAAAIC3eSM06t69uyZOnKglS5aoW7duktKDhokTJ2revHm68847s+1z7NgxbdiwQfXq1ctzX1L6VC3z58/Xt99+mzm/+Ndff63t27erVq1aevPNN/Xf//43y3/qP//8c+3evVvR0dH5quXN0Khjx476+uuv9c4772jixIlatGiR/vznPxfqPMahoaHas2dPruszRlZfemEjIiIi21zBhaVevXp66qmn9NRTT2nt2rX68ssvNX/+/HwdIzk5Ocu9rjKm8zh69GiWkcsXO3PmTL4vQngr+PBWkHOxChUqaNCgQRo0aJAOHTqkr776SnPnztVPP/2kadOmafr06apevbr69u2r2267TXXq1MnX8U3TzLYsY7qSS0PSDBEREWrVqpXi4+PzXCc1NbVA83D7+fkpNTU1X/t06NBBq1at0rXXXquXXnop1xsiDhs2TGvXrlVsbGy++7qcZcuWyTAMPfPMM1kC8gzPPvus5s+fr2XLluUpJM/4mRUVFZWvn1+bNm3K92jytWvX6vrrr8/1e//YY4/p+++/1zfffKOHHnpIUvrFlAULFmjWrFn5Csn379+vDh06ZAmPK1SooMjISC1dujTHT5xUqVJFLVu2zPPFwerVq2e5uJiTKlWq6LPPPtP999+v5cuX6/777882P39eVKxYMcepfq677jp16NAh1/0SExMVHh6e5zo33XSTxo0bp/vuuy9znvXL2blzp/72t7/p+PHjeb6olaFKlSo6evSoFi9enK+bOmfcuDOvMuacv1RGfpnbfRnq1KmTebPrvDh8+LC6d++e46dwqlWrpqlTp+qxxx7T8uXLNXToUE2YMKHQb3RKSF7MZLyBchsBsG3bNknK8aMgxdG5c+f0wAMP6KefflKvXr306quvXtU8UgAAAIA3eCM0euCBBzR79mw9+eSTGjVqlPr376+uXbuqR48eGjNmjJKTk9WvX7/MkWxr1qzRP/7xD505c0aDBw/OV1/333+/Fi5cqP/7v//Tu+++K0nat2+fQkND9e6772rgwIG68cYb1blzZwUHB2vr1q1au3atDMPIMay/HG+GRlL6CMGnn35at9xyi1588UU999xzmjNnjl5++eV8Hysn7du317fffqt333032404ExMT9be//U2GYahVq1ZZ1h07dqxAYU5+ZXyS4S9/+Uu+9ps/f36OwfqGDRtyDMk9Ho+2bdt2xRHAl/JW8OGtICc3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\n"},"metadata":{}}],"execution_count":31},{"id":"333e4605-a16d-45dc-9a34-21ec8f2b318f","cell_type":"code","source":"df.loc[df['is_fraud']==1,['gender']].value_counts()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:34.137220Z","iopub.execute_input":"2026-01-17T19:34:34.137735Z","iopub.status.idle":"2026-01-17T19:34:34.160651Z","shell.execute_reply.started":"2026-01-17T19:34:34.137696Z","shell.execute_reply":"2026-01-17T19:34:34.160027Z"}},"outputs":[{"execution_count":32,"output_type":"execute_result","data":{"text/plain":"gender\nF 4899\nM 4752\nName: count, dtype: int64"},"metadata":{}}],"execution_count":32},{"id":"1c3c908d-36b8-47ed-bf2f-2d43d53b4a7b","cell_type":"code","source":"from scipy.stats import ttest_ind\nsns.barplot(data=df,x='is_fraud',y='city_pop',hue='is_fraud',palette=['blue','orange'],ci=None)\nplt.legend(loc='upper right')\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:34.161565Z","iopub.execute_input":"2026-01-17T19:34:34.161959Z","iopub.status.idle":"2026-01-17T19:34:36.885320Z","shell.execute_reply.started":"2026-01-17T19:34:34.161936Z","shell.execute_reply":"2026-01-17T19:34:36.884734Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAABdwAAAKwCAYAAACCpL3LAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAARQlJREFUeJzt3X2clmWB9//vDDCI6CAYkSQqaJoaBOatsiD5VAg+tW0pVj4EPty7PgSr951ZmpapuaWGTwmilaamudXPRG5L2Uhjc03R1FqTQcNnV3QGEJxh5vr94YvJabRwOGBm4P1+vXrBnOdxHedxXWGvsw+nx1VVqVQqAQAAAAAA1kp1Zy8AAAAAAAA2BII7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABPTt7ARuzSqWSlpZKZy8DAAAAAIB3UF1dlaqqqjUaK7h3opaWSpYsWd7ZywAAAAAA4B0MGNA3PXqsWXC3pQwAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAU0LOzFwAAAAAAQNfQ0tKS5uZVnb2M9apHj56pri7zbLrgDgAAAACwkatUKmloWJIVK5Z19lI6RZ8+m6W2dkCqqqrWah7BHQAAAABgI7c6tm+2Wf/U1PRe6/DcXVQqlTQ2vpFly15NkvTrt+VazSe4AwAAAABsxFpamltj+2ab1Xb2cta7mpreSZJly17N5pv3X6vtZXxpKgAAAADARqy5uTnJX8Lzxmj1e1/b/esFdwAAAAAANpptZN5OqfcuuAMAAAAAQAH2cAcAAAAA4G1VV1elurpznnxvaamkpaXyrl/39NNP5ZJLLsqjjz6STTftmwMPnJjjj/+X9OrVax2ssi3BHQAAAACAdqqrq9KvX9/07Nk5wX3Vqkrq65e/q+je0NCQU0/93xkyZJt84xv/lpdffimXX35JVq5cmX/91y+uw9W+SXAHAAAAAKCd6uqq9OxZlalTX86TTzat12vvsEOvXHrpwFRXV72r4P6zn92W119fnvPP/7fU1vZL8uaXwl588Tdz9NGT8573DFxXS04iuAMAAAAA8Dc8+WRTHnussbOXsUb+8z9/k91336M1tifJfvt9LN/61gW5//7/zMSJh6zT6/vSVAAAAAAANghPP/1UttlmuzbHNt9882y55Xvy9NNPrfPrC+4AAAAAAGwQli5tyGabbd7u+Oabb56GhoZ1fn3BHQAAAAAAChDcAQAAAADYIGy+eW2WL1/W7vjSpUtTW1u7zq8vuAMAAAAAsEHYdtvt2u3VvmzZsrzyyv9k2223W+fXF9wBAAAAANgg7LXXP+SBB+7P0qVLW4/NnfvLVFdXZ4899lrn1xfcAQAAAADYIBx22D9l0003zZe+dFruv/8/c8cd/1+uuOI7OeywT+Y97xm4zq/fc51fAQAAAACAbmuHHXp1m2vW1tbmO9+5Kpdc8m/50pdOy6ab9s0hh3wiJ5zwL4VX+PaqKpVKZb1ciXaam1uyZMnyzl4GAAAAALARa2pqzCuvPJ8tt9wqvXrVtB6vrq5Kv35907NnVaesa9WqSurrl6elZd0n7Hf6DJJkwIC+6dFjzTaL8YQ7AAAAAADttLS8GbyrqzsnuLe0VNZLbC9JcAcAAFgPqqurOu3/rAIA/C0tLe98j9Ido3dnEtwBAADWserqqvTv3yfV1T06eykAAO2sXNkj//M/1enRoyo9e1anUnlzO2zePcEdAABgHXvz6fYeefk/pqbptSc7ezkAAG2s6vmeNA86Nk1LG1Nds0l6bj6ks5fUbQnuAAAA60nTa0+m8ZXHOnsZAABtNPcenMrAxlRWrUxLD1vgrY01+2pVAAAAAADgbxLcAQAAAACgAMEdAAAAAAAKENwBAAAAAKAAX5oKAAAAAMAG45lnFuemm67PY489mkWLFmabbbbN9dffsl6uLbjT5VRXV6W62rchAwBdX0tLJS0tlc5eBgAArDOd2eo6er+9aNHCzJ9/X3bZZddUKi1paWlZB6t7e4I7XUp1dVX69eubnj0FdwCg61u1qpL6+uWiOwAAG6Tq6qr0798n1dU9OuX6LS3NefXVFe/6fnvMmHHZe+99kiTf+MY5+eMfH18Hq3t7gjtdSnV1VXr2rMrUqS/nySebOns5AADvaIcdeuXSSwemurpKcAcAYIP05tPtPfLyf0xN02tPrtdr99pihwzc59IO3W9XV3feV5cK7nRJTz7ZlMcea+zsZQAAAADARq/ptSfT+Mpjnb2MbqHzUj8AAAAAAGxABHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAnp29gIAAAAAAKCUlStXZv78e5MkL7zwfJYvX565c3+ZJBk58iPp37//Oru24A4AAAAAwDvqtcUO3eqar766JGeddUabY6t/nj79u+nff/e1WtvfIrgDAAAAANBOS0slLS3NGbjPpZ10/ea0tFTe9eu22mpw7r33gXWwor9PcAcAAAAAoJ2WlkpefXVFqqurOu36HQnunUlwBwAAAADgbXXH6N2Zqjt7AQAAAAAAsCEQ3AEAAAAAoADBHQAAAAAAChDcAQAAAAA2avZor1TKfAaCOwAAAADARqyq6bWkpSlNzVWdvZRO09j4RpKkR4+eazXP2r0aAAAAAIBurbplRXq9MjdLe0xMetQkjSvT3NzZq1o/KpVKGhvfyLJlr6ZPn81SXb12z6gL7gAAAAAAG7k+L/57kmRZxmdFc++0tLR08orWrz59Nktt7YC1nkdwBwAAAADYyFWlkk1fvC09m+vynvE3pr7+9TQ3bxx7u/fo0XOtn2xfTXAHAAAAACBJUl1pzCabbJIVK5qzatXG9ZR7Cb40FQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKAAwR0AAAAAAAoQ3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKAAwR0AAAAAAAoQ3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKAAwR0AAAAAAAoQ3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKAAwR0AAAAAAAoQ3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKAAwR0AAAAAAArocsH97rvvzqc//emMGjUqY8eOzRe+8IUsXry43bhbb70148ePz/Dhw3PooYdm7ty57cYsXbo0Z555ZvbYY4+MGjUqp556al566aV24x588MEcccQRGTFiRPbdd9/MmDEjlUqlzZhKpZIZM2Zkn332yYgRI3LEEUdkwYIFxd43AAAAAADdW5cK7r/97W9z8sknZ4cddsgVV1yRM888M3/84x8zefLkrFy5snXcHXfckbPOOisTJkzIzJkzM3LkyJx88sntAvjUqVNz33335Zxzzsm3vvWtLFq0KMcff3xWrVrVOubpp5/OlClTMnDgwFx99dU55phjMn369Fx77bVt5po5c2amT5+eY489NldffXUGDhyYyZMnv+1fBgAAAAAAsPHp2dkLeKs77rgjgwcPzvnnn5+qqqokyYABA3LMMcfk0Ucfze67754kmT59eg466KBMnTo1SbLXXnvliSeeyBVXXJGZM2cmSR566KHce++9mTVrVsaOHZskGTp0aCZOnJi77rorEydOTJLMmjUr/fv3z8UXX5yampqMHj06S5YsyXe/+90cddRRqampyRtvvJGrr746kydPzrHHHpsk+chHPpIDDzwws2bNyjnnnLP+PiQAAAAAALqkLvWE+6pVq9K3b9/W2J4km2++eZK0bvGyePHiPPXUU5kwYUKb106cODHz589PY2NjkmTevHmpra3NmDFjWscMGzYsO++8c+bNm9d6bN68edl///1TU1PTZq6GhoY89NBDSd7ccmbZsmVtrllTU5OPfexjbeYCAAAAAGDj1aWecP/kJz+Zn/3sZ/nhD3+YQw89NK+99louvvji7LLLLtltt92SJHV1dUnefFr9rbbffvs0NTVl8eLF2X777VNXV5ehQ4e2iffJm9F99Ryvv/56nn/++QwbNqzdmKqqqtTV1WXPPfdsHf/X47bffvt8//vfz8qVK7PJJpt06D337Nml/s6j0/Xo4fMAALoX9y+sCX9OAIDuxv1Lx3Sp4L777rvn8ssvz2mnnZavfe1rSZKdd94511xzTXr06JEkqa+vT5LU1ta2ee3qn1efb2hoaH06/q369euXRx99NMmbX6r6dnPV1NSkT58+beaqqalJ7969212zUqmkvr6+Q8G9uroq/fv3fdevAwCg66it7dPZSwAAgOLc53ZMlwruDz74YP7v//2/Ofzww7PPPvvktddey5VXXpkTTjghN954Y4efIu+qWloqaWh4vbOX0aX06FHtH2YAoFtpaFiR5uaWzl4GXZz7XACgu3Gf+xe1tX3W+In/LhXczzvvvOy1114544wzWo+NHDky++yzT372s5/liCOOSL9+/ZK8+XT6wIEDW8c1NDQkSev52travPDCC+2uUV9f3zpm9RPwq590X62xsTErVqxoM1djY2PeeOONNk+5NzQ0pKqqqnVcR6xa5Q8tAEB31tzc4p4OAIANjvvcjulSG/EsXLgwH/zgB9sce9/73pf+/fvnz3/+c5K/7KO+el/11erq6tKrV68MGTKkddyiRYtav2x1tUWLFrXOsemmm2arrbZqN9fq160et/rXRYsWtbvm4MGDN7gn7wEAAAAAePe6VHAfPHhwHn/88TbHnn322bz66qt5//vfnyQZMmRItttuu8yZM6fNuNmzZ2f06NGpqalJkowbNy719fWZP39+65hFixbl8ccfz7hx41qPjRs3LnfffXeamprazFVbW5tRo0YlSXbbbbdsttlmufPOO1vHNDU15a677mozFwAAAAAAG68utaXMpEmTcv755+e8887Lfvvtl9deey1XXXVVttxyy0yYMKF13CmnnJLTTz8922yzTfbcc8/Mnj07jzzySG644YbWMaNGjcrYsWNz5pln5otf/GJ69+6dSy65JDvttFM+/vGPt46bMmVKbr/99px22mk58sgj88QTT2TWrFmZNm1aa7zv3bt3TjzxxFx22WUZMGBAdtxxx9x000157bXXMmXKlPX3AQEAAAAA0GV1qeB+9NFHp6amJjfddFNuu+229O3bNyNHjsyll16a/v37t447+OCDs2LFisycOTMzZszI0KFDc/nll7c+kb7apZdemgsuuCBnn312Vq1albFjx+YrX/lKevb8y9vedtttM2vWrFx44YU54YQTMmDAgJx66qmZPHlym7mOP/74VCqVXHvttVmyZEl23nnnzJo1q3ULGwAAAAAANm5Vlb/e5Jz1prm5JUuWLO/sZXQpPXtWp3//vjn44Ofy2GONnb0cAIB3tOuuNfn5zwfn1VeX+zIp/q7V97nP/fTgNL7yWGcvBwDgHdVsuWsGf+Ln7nPfYsCAvunRY812Z+9Se7gDAAAAAEB3JbgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABTQJYP7T37yk3ziE5/I8OHDs+eee+a4447LypUrW8/fc889OfTQQzN8+PCMHz8+t912W7s5Ghsb881vfjNjxozJyJEj8/nPfz51dXXtxi1cuDCf//znM3LkyIwZMyYXXXRRGhsb24279dZbM378+AwfPjyHHnpo5s6dW/ZNAwAAAADQrXW54H7VVVfl61//eiZOnJhZs2bla1/7Wrbeeus0NzcnSR544IGcfPLJGTlyZGbOnJkJEybky1/+cubMmdNmnvPOOy+33nprpk2blssuuyyNjY059thjs3Tp0tYx9fX1OeaYY9LU1JTLLrss06ZNyy233JILL7ywzVx33HFHzjrrrEyYMCEzZ87MyJEjc/LJJ2fBggXr/PMAAAAAAKB76NnZC3irurq6XH755bnyyivz0Y9+tPX4+PHjW39/1VVXZcSIEfna176WJNlrr72yePHiTJ8+PQceeGCS5IUXXsiPf/zjfPWrX82nPvWpJMnw4cOz77775uabb87xxx+fJLn55puzfPnyXH755dliiy2SJM3NzTn33HNz4oknZtCgQUmS6dOn56CDDsrUqVNbr/nEE0/kiiuuyMyZM9fpZwIAAAAAQPfQpZ5w//d///dsvfXWbWL7WzU2Nua3v/1ta1hfbeLEiVm4cGGeeeaZJMm9996blpaWNuO22GKLjBkzJvPmzWs9Nm/evIwePbo1tifJhAkT0tLSkvvuuy9Jsnjx4jz11FOZMGFCu2vOnz//bbefAQAAAABg49OlgvvDDz+cHXfcMVdeeWVGjx6dD33oQ5k0aVIefvjhJMmf//znNDU1ZdiwYW1et/322ydJ6x7tdXV12XLLLdOvX7924966j3tdXV27uWprazNw4MA2cyXJ0KFD283V1NSUxYsXr+3bBgAAAABgA9CltpR5+eWX8+ijj+aJJ57IV7/61fTp0yff/e53M3ny5Nx1112pr69P8mYUf6vVP68+39DQkM0337zd/LW1ta1jVo/767mSpF+/fq3j1vSaHdWzZ5f6O49O16OHzwMA6F7cv7Am/DkBALob9y8d06WCe6VSyeuvv57vfOc7+eAHP5gk+fCHP5z99tsvN9xwQ8aOHdvJKyyruroq/fv37exlAACwFmpr+3T2EgAAoDj3uR3TpYJ7bW1ttthii9bYnry59/ouu+ySJ598MgcddFCSZOnSpW1e19DQkCStW8jU1tZm2bJl7eZvaGhos81MbW1tu7mSN59aXz1u9a9Lly7NwIED3/GaHdHSUklDw+sdfv2GqEePav8wAwDdSkPDijQ3t3T2Muji3OcCAN2N+9y/qK3ts8ZP/Hep4L7DDjvkz3/+89uee+ONN7LNNtukV69eqaury9577916bvU+66v3Yx82bFj+53/+p004Xz3urXu2Dxs2rM2e7smbYf3ll19uM9fbvbauri69evXKkCFD1uYtZ9Uqf2gBALqz5uYW93QAAGxw3Od2TJfa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L+ecc06+9a1vZdGiRTn++OOzatWq1jFPP/10pkyZkoEDB+bqq6/OMccck+nTp+faa69tM9fMmTMzffr0HHvssbn66qszcODATJ48OYsXL16nnwcAAAAAAN1Hz85ewFtdddVVGTBgQOvPo0ePzmuvvZbrrrsu//Iv/5Lq6upMnz49Bx10UKZOnZok2WuvvfLEE0/kiiuuyMyZM5MkDz30UO69997MmjUrY8eOTZIMHTo0EydOzF133ZWJEycmSWbNmpX+/fvn4osvTk1NTUaPHp0lS5bku9/9bo466qjU1NTkjTfeyNVXX53Jkyfn2GOPTZJ85CMfyYEHHphZs2blnHPOWW+fDwAAAAAAXVeXesL9rbF9tZ133jnLli3L66+/nsWLF+epp57KhAkT2oyZOHFi5s+fn8bGxiTJvHnzUltbmzFjxrSOGTZsWHbeeefMmzev9di8efOy//77p6amps1cDQ0Neeihh5K8ueXMsmXL2lyzpqYmH/vYx9rMBQAAAADAxq1LBfe387vf/S6DBg3KZpttlrq6uiRvPq3+Vttvv32amppat3ipq6vL0KFDU1VV1WbcsGHDWud4/fXX8/zzz2fYsGHtxlRVVbWOW/3rX4/bfvvt89xzz2XlypWF3ikAAAAAAN1Zl9pS5q898MADmT17dr74xS8mSerr65MktbW1bcat/nn1+YaGhmy++ebt5uvXr18effTRJG9+qerbzVVTU5M+ffq0maumpia9e/dud81KpZL6+vpssskmHX6PPXt2+b/zWK969PB5AADdi/sX1oQ/JwBAd+P+pWO6bHB/4YUXMm3atOy55545+uijO3s560R1dVX69+/b2csAAGAt1Nb26ewlAABAce5zO6ZLBveGhoYcf/zx2WKLLXLZZZeluvrNv03p169fkjefTh84cGCb8W89X1tbmxdeeKHdvPX19a1jVj8Bv/pJ99UaGxuzYsWKNnM1NjbmjTfeaPOUe0NDQ6qqqlrHdURLSyUNDa93+PUboh49qv3DDAB0Kw0NK9Lc3NLZy6CLc58LAHQ37nP/ora2zxo/8d/lgvvKlStz4oknZunSpfnRj37UZmuY1fuo19XVtdlTva6uLr169cqQIUNax82fPz+VSqXNPu6LFi3KjjvumCTZdNNNs9VWW7Xu0f7WMZVKpXX+1b8uWrQoH/zgB9tcc/DgwWu1nUySrFrlDy0AQHfW3Nzing4AgA2O+9yO6VIb8axatSpTp05NXV1drrnmmgwaNKjN+SFDhmS77bbLnDlz2hyfPXt2Ro8enZqamiTJuHHjUl9fn/nz57eOWbRoUR5//PGMGzeu9di4ceNy9913p6mpqc1ctbW1GTVqVJJkt912y2abbZY777yzdUxTU1PuuuuuNnMBAAAAALBx61JPuJ977rmZO3duzjjjjCxbtiwLFixoPbfLLrukpqYmp5xySk4//fRss8022XPPPTN79uw88sgjueGGG1rHjho1KmPHjs2ZZ56ZL37xi+ndu3cuueSS7LTTTvn4xz/eOm7KlCm5/fbbc9ppp+XII4/ME088kVmzZmXatGmt8b5379458cQTc9lll2XAgAHZcccdc9NNN+W1117LlClT1ttnAwAAAABA19algvt9992XJLnwwgvbnbv77ruz9dZb5+CDD86KFSsyc+bMzJgxI0OHDs3ll1/e+kT6apdeemkuuOCCnH322Vm1alXGjh2br3zlK+nZ8y9vedttt82sWbNy4YUX5oQTTsiAAQNy6qmnZvLkyW3mOv7441OpVHLttddmyZIl2XnnnTNr1qzWLWwAAAAAAKCqUqlUOnsRG6vm5pYsWbK8s5fRpfTsWZ3+/fvm4IOfy2OPNXb2cgAA3tGuu9bk5z8fnFdfXW5vS/6u1fe5z/304DS+8lhnLwcA4B3VbLlrBn/i5+5z32LAgL5r/KWpXWoPdwAAAAAA6K4EdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgT3NbRw4cJ8/vOfz8iRIzNmzJhcdNFFaWxs7OxlAQAAAADQRfTs7AV0B/X19TnmmGOy3Xbb5bLLLsuLL76YCy+8MCtXrszZZ5/d2csDAAAAAKALENzXwM0335zly5fn8ssvzxZbbJEkaW5uzrnnnpsTTzwxgwYN6twFAgAAAADQ6WwpswbmzZuX0aNHt8b2JJkwYUJaWlpy3333dd7CAAAAAADoMgT3NVBXV5dhw4a1OVZbW5uBAwemrq6uk1YFAAAAAEBXYkuZNdDQ0JDa2tp2x/v165f6+voOz1tdXZUBA/quzdI2OFVVb/76ve8NyqpVlc5dDADA39Cz55s3Lv369UnFbQt/x+r73EHjv5dKy6rOXQwAwN9QVf1mMnaf+xfV1VVrPFZw70RVVVXp0WPN/8vamLznPT06ewkAAGukutq/NMqa69HnPZ29BACANeI+t2N8amugtrY2S5cubXe8vr4+/fr164QVAQAAAADQ1Qjua2DYsGHt9mpfunRpXn755XZ7uwMAAAAAsHES3NfAuHHj8pvf/CYNDQ2tx+bMmZPq6uqMGTOmE1cGAAAAAEBXUVWp2Pr+76mvr89BBx2UoUOH5sQTT8yLL76YCy+8MIccckjOPvvszl4eAAAAAABdgOC+hhYuXJivf/3reeihh9K3b98cdthhmTZtWmpqajp7aQAAAAAAdAGCOwAAAAAAFGAPdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwA2WAsXLsznP//5jBw5MmPGjMlFF12UxsbGzl4WAAB02NNPP52zzz47hx12WHbZZZccfPDBnb0kAN6iZ2cvAADWhfr6+hxzzDHZbrvtctlll+XFF1/MhRdemJUrV+bss8/u7OUBAECH/OlPf8qvfvWrfPjDH05LS0sqlUpnLwmAtxDcAdgg3XzzzVm+fHkuv/zybLHFFkmS5ubmnHvuuTnxxBMzaNCgzl0gAAB0wH777ZcDDjggSXLGGWfk0Ucf7eQVAfBWtpQBYIM0b968jB49ujW2J8mECRPS0tKS++67r/MWBgAAa6G6WsoB6Mr8rzQAG6S6uroMGzaszbHa2toMHDgwdXV1nbQqAAAAYEMmuAOwQWpoaEhtbW274/369Ut9fX0nrAgAAADY0AnuAAAAAABQgOAOwAaptrY2S5cubXe8vr4+/fr164QVAQAAABs6wR2ADdKwYcPa7dW+dOnSvPzyy+32dgcAAAAoQXAHYIM0bty4/OY3v0lDQ0PrsTlz5qS6ujpjxozpxJUBAAAAG6qenb0AAFgXJk2alOuvvz4nnXRSTjzxxLz44ou56KKLMmnSpAwaNKizlwcAAB2yYsWK/OpXv0qSPPvss1m2bFnmzJmTJNljjz0yYMCAzlwewEavqlKpVDp7EQCwLixcuDBf//rX89BDD6Vv37457LDDMm3atNTU1HT20gAAoEOeeeaZ7L///m977gc/+EH23HPP9bwiAN5KcAcAAAAAgALs4Q4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAG6B///d/z0477ZRnnnmm6Lw//elPc+CBB2bXXXfN7rvvXnTutbGu3i8AALwbPTt7AQAAQPewcOHCfOlLX8ree++dE044IZtssklnLwkAALoUwR0AADZAhx12WA466KDU1NQUm/P+++9PS0tLvvzlL2fbbbctNi8AAGwobCkDAAAboB49eqR3796pqqoqNucrr7ySJNl8883/5rhKpZKVK1cWuy4AAHQXgjsAAGyA/npP89///veZMmVK9txzz4wYMSL77bdfvvSlL63xfPvtt18uu+yyJMno0aOz0047tf6833775cQTT8yvf/3rfPKTn8yIESNy8803J0luu+22HH300Rk9enQ+9KEPZeLEibnxxhvbzf/W+f76umeccUabY3/6059y9NFHZ8SIERk3blyuvPLKtLS0rPF7AQCAdcWWMgAAsIF75ZVXMmXKlPTv3z8nnHBCamtr88wzz+QXv/jFGs9x5pln5qc//Wl+8Ytf5Jxzzsmmm26anXbaqfX8okWLctppp+WII47I4YcfnqFDhyZJbrrppnzgAx/Ifvvtl549e2bu3Lk599xzU6lU8tnPfvZdv5eXX345Rx99dJqbm3PCCSekT58+ueWWW9K7d+93PRcAAJQmuAMAwAbuoYceSn19fWbNmpXhw4e3Hp82bdoaz3HAAQfkD3/4Q37xi19k/PjxGTBgQJvzTz/9dK655prsvffebY7fcMMNbb5c9XOf+1ymTJmS6667rkPBfebMmVmyZEluvfXWjBgxIknyj//4j/n4xz/+rucCAIDSbCkDAAAbuNV7rv/Hf/xHmpqa1sk1tt5663axPUmb2L506dIsWbIke+yxRxYvXpylS5e+6+v86le/ysiRI1tje5IMGDAghxxySMcWDgAABXnCHQAANnB77LFHxo8fn8svvzzf+973sscee+SAAw7IIYcckpqamiLX2Hrrrd/2+O9+97tcdtllWbBgQVasWNHm3NKlS//uF7D+teeeey4f/vCH2x1fvYUNAAB0JsEdAAA2cFVVVZk+fXoWLFiQuXPn5te//nXOPPPMXHfddfnRj36Uvn37rvU13vok+2p//vOfc+yxx2bYsGE544wzstVWW6VXr1751a9+le9973tr9EWnzc3Na702AABYXwR3AADYSIwcOTIjR47MtGnTcvvtt+f000/P7Nmz8+lPf3qdXO+ee+5JY2NjrrrqqgwePLj1+G9/+9t2Y/v165eGhoY2xxobG/Pyyy+3OTZ48OA8/fTT7V6/aNGiQqsGAICOs4c7AABs4Orr61OpVNoc23nnnZO8GbXXlR49eiRJm2svXbo0t912W7uxQ4YMyQMPPNDm2C233NLuCfePfvSjWbBgQR555JHWY0uWLMntt99ecukAANAhnnAHAIAN3E9+8pPcdNNNOeCAA7LNNttk+fLlueWWW7LZZptl3Lhx6+y6Y8aMSa9evfK///f/zqRJk7J8+fLceuut2XLLLds9uf7pT386X/3qV3PKKafkH/7hH/LHP/4x9957b/r3799m3HHHHZef/exnOe6443L00UenT58+ueWWWzJ48OD893//9zp7LwAAsCY84Q4AABu4PfbYIx/60Icye/bsnHfeebnmmmuy3Xbb5fvf/36GDBmyzq47bNiwTJ8+PVVVVfnmN7+Zm2++OYcffniOPvrodmMPP/zwHH/88fmv//qvfPOb38wzzzyT6667Lptuummbce9973vzgx/8IDvttFNmzJiR73//+znssMPedk4AAFjfqip//e+WAgAAAAAA75on3AEAAAAAoAB7uAMAwEbutddeS1NT0zue79GjRwYMGLAeVwQAAN2TLWUAAGAjd9RRR+X+++9/x/Pvf//7c88996zHFQEAQPckuAMAwEbu0UcfTUNDwzue7927dz7ykY+sxxUBAED3JLgDAAAAAEABvjQVAAAAAAAKENwBAAAAAKAAwR0AAAAAAAoQ3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKCA/x+DeIFGBUsDPwAAAABJRU5ErkJggg==\n"},"metadata":{}}],"execution_count":33},{"id":"d2295e93-20cd-428f-b0e8-84bc37300637","cell_type":"code","source":"f_pop=df[df['is_fraud']==1]['city_pop']\nna_f_pop=df[df['is_fraud']==1]['city_pop']\nt_stat,p_value=ttest_ind(f_pop,na_f_pop)\nprint(f'T-test: t-statistic = {round(t_stat,3)}, p-value = {round(p_value,2)}, p-value<0.05? = {p_value<0.05}')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:36.886911Z","iopub.execute_input":"2026-01-17T19:34:36.887494Z","iopub.status.idle":"2026-01-17T19:34:36.912842Z","shell.execute_reply.started":"2026-01-17T19:34:36.887470Z","shell.execute_reply":"2026-01-17T19:34:36.912233Z"}},"outputs":[{"name":"stdout","text":"T-test: t-statistic = 0.0, p-value = 1.0, p-value<0.05? = False\n","output_type":"stream"}],"execution_count":34},{"id":"9a192cb9-21db-4eee-947e-c76f6c643037","cell_type":"code","source":"sns.histplot(data=df,x='amt',bins=30,kde=True)\nplt.ylabel('Frequency')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:36.913639Z","iopub.execute_input":"2026-01-17T19:34:36.914153Z","iopub.status.idle":"2026-01-17T19:34:43.491943Z","shell.execute_reply.started":"2026-01-17T19:34:36.914131Z","shell.execute_reply":"2026-01-17T19:34:43.491313Z"}},"outputs":[{"execution_count":35,"output_type":"execute_result","data":{"text/plain":"Text(0, 0.5, 'Frequency')"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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7733jltvvTU2bdoUvXv3jlWrVrXaJ5PJxLBhw4rnKEVtbZf63URF1NRkWzwCHUOvQWXoNagMvQaVodegMvQaVEZX6rUuHaj/9re/jUWLFsU3vvGNt9ynoaEhevbsGb169WqxPZfLRZIkUV9fH717946Ghobo379/q+MHDBgQ9fX1JdWZzWZi0KC+JZ2jO8vl+nR2CVAV9BpUhl6DytBrUBl6DSpDr0FldIVe67KB+l/+8peYMWNGjBs3Lk4//fTOLudtFQpJNDTsfCRNmtXUZCOX6xMNDRsjny90djmQWnoNKkOvQWXoNagMvQaVodegMsrVa7lcn5JXuXfJQL2hoSHOOeecGDhwYMyZM2enNyNtlsvlYsuWLbF58+YWq9QbGhoik8nEgAEDivs1Nja2Or6+vj523XXXkmveurX6/tLc+tSTsWX3oZEf9L6qfP9Qafl8Qa9BBeg1qAy9BpWh16Ay9BpURlfotc4fOvMmmzZtimnTpsWGDRvipptu2umYlh01z0VfvXp1i+2rVq2K3XbbLXr37l3c782z0pMkidWrV7earc47SxobYtM/fTf+es1VnV0KAAAAAEBFdKlAfevWrfHVr341Vq1aFTfddFMMHTr0HY858MADo1+/fnHvvfcWtzU1NcX9998fEydOLG6bOHFiPPvss/Hcc88Vtz388MOxfv36OPzww8v6PqpBsmlTRJJEoaGhs0sBAAAAAKiILjXy5Yorrohf//rXcfHFF0djY2M88cQTxddGjhwZPXv2jClTpsTLL78cS5YsiYiIXr16xbRp02LOnDlRV1cX++67b/z0pz+N9evXx9SpU4vHH3PMMTF37tw4//zzY+bMmbFx48aYPXt2HHHEETF69OhKv9VuL7N9DE9SyHdyJQAAAAAAldGlAvWHHnooIiKuueaaVq898MADsccee0ShUIh8vmWIe84550SSJHHzzTfH2rVrY7/99ov58+fHnnvuWdynR48ecdNNN8WsWbNi5syZUVtbG5MmTYpLL720Y99UWjXPtS+YDwYAAAAAVIdMkiRJZxfR3eXzhVi79vXOLqOikob1sfn/nBcREf3m39npNwOANKutzcagQX1j3brX9Rp0IL0GlaHXoDL0GlSGXoPKKFev1dX1jZqa0qagd6kZ6nQj2b/96CRWqQMAAAAAVUCgTvtkdvjREagDAAAAAFVA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+1jMmzcvkiTpsPcIneH555+Pyy67LE444YQYOXJkHH/88Tvdr9K9lSRJzJs3L4444ogYPXp0nHrqqfHEE0+U5T1DZ2hLr33xi1/c6WfdypUrW+yn12Dn7r333vjSl74UEydOjLFjx8YJJ5wQv/jFL1r93PtMg9K0pdd8pkHpli5dGl/4whfisMMOiw9/+MNx1FFHxdVXXx0bNmxosd9//Md/xKc+9akYNWpUHHPMMfHLX/6y1bm2bNkS3/ve92LChAkxduzYOPPMM2PVqlWt9mtrVtmWz9K2EKjzrtTX18eUKVOiqakp5syZEzNmzIg777wzrrnmms4uDbq0m266Ke64447if5///OeLr91zzz3x7W9/OyZPnhw33nhjjB07Nr7yla+0+p+or371q/HQQw/F5ZdfHv/4j/8Yq1evjnPOOSe2bt1a3Of555+PqVOnxuDBg2Pu3LkxZcqU+MEPfhA333xzpd4qVMSKFSti6dKl8YEPfCD23nvvne7TGb114403xg9+8IM444wzYu7cuTF48OA466yz4sUXXyz79wAqoS29FhFx4IEHtvicu+OOO2KPPfZosY9eg5275ZZbok+fPnHxxRfHDTfcEBMnToxvf/vb8cMf/rC4j880KF1bei3CZxqUav369TF69Oi44oorYv78+XHmmWfG3XffHRdeeGFxn9/+9rfxla98JcaOHRs33nhjTJ48Ob75zW/G4sWLW5xr1qxZ8fOf/zxmzJgRc+bMiS1btsQZZ5zRIpxva1bZ1s/SNkngXfjRj36UjB07Nlm3bl1x289+9rNkv/32S/7yl790XmHQRf3yl79M9t133+S11157y30+/vGPJzNnzmyx7dRTT03OPvvs4vPHHnss2XfffZP//M//LG5buXJlMmLEiOSee+4pbvv2t7+dfOxjH0s2b95c3HbttdcmBx98cItt0N3l8/ni19/4xjeS4447rtU+le6tTZs2JQceeGBy7bXXFvfZvHlz8rGPfSz5h3/4h/a/WehEbem1L3zhC8m55577tufRa/DWdvb/id/61reSAw88sNiDPtOgdG3pNZ9p0DHuuOOOZN999y1mh2eddVZy6qmntthn5syZyeTJk4vP//znPyf77bdf8rOf/ay4bd26dcnYsWOTefPmFbe1Natsy2dpW1mhzruybNmyGD9+fAwcOLC4bfLkyVEoFOKhhx7qvMKgm3rxxRfjueeei8mTJ7fYfuyxx8bDDz9c/CdKy5Yti1wuFxMmTCjuM3z48Nhvv/1i2bJlxW3Lli2Lo446Knr27NniXA0NDfH444938LuByslm3/5/YTqjtx577LFobGxscc2ePXvGpEmTWpwLupN36rW20mvw1urq6lpt22+//aKxsTHeeOMNn2lQJu/Ua22l1+Dda84Rm5qaYsuWLfHoo4/GJz7xiRb7HHvssbFy5cr405/+FBERDz74YBQKhRb7DRw4MCZMmNCq194pq2zrZ2lbCdR5V1atWhXDhw9vsS2Xy8XgwYN3OsMI2Ob444+P/fbbL4466qiYO3du5PP5iIhi3wwbNqzF/nvvvXc0NTUV/5nfqlWrYtiwYZHJZFrsN3z48OI53njjjfjzn//cqkeHDx8emUxGj1JVOqO3mh/fvN/ee+8dL7/8cmzatKlM7w66nv/6r/+KsWPHxqhRo+ILX/hC/Pd//3eL1/UavDu/+93vYujQodGvXz+fadCBduy1Zj7ToDzy+Xxs3rw5nn766fjhD38YRx55ZOyxxx7xwgsvRFNT005/7iOiRX+85z3viQEDBrTab8d8oy1ZZVs/S9uq9l3tTdVraGiIXC7XavuAAQOivr6+EyqCrm3w4MFx/vnnx5gxYyKTycR//Md/xD/90z/FmjVr4rLLLiv2zZv7qvl58+sNDQ3Rv3//VucfMGBAPPXUUxERxRlibz5Xz549o0+fPnqUqtIZvdXQ0BA9e/aMXr16tbpmkiRRX18fvXv3LvWtQZdzyCGHxAknnBB77bVXvPLKK8VZmbfffnsccMABEaHX4N347W9/G4sWLYpvfOMbEeEzDTrKm3stwmcalNPHPvaxWLNmTUREfPSjH41rr702Ikr/XMvlci3yjbZklW29ZlsJ1AE60Ec/+tH46Ec/Wnz+kY98JHr16hW33nprnHfeeZ1YGQCUxwUXXNDi+RFHHBHHH398/PM//3PceOONnVQVdE9/+ctfYsaMGTFu3Lg4/fTTO7scSK236jWfaVA+8+bNi40bN8Yf//jHuOGGG+K8886LH//4x51dVlkY+cK7ksvlWtxJt1l9fX2rf4IB7NzkyZMjn8/H73//+2LfvLmvGhoaIiKKr+dyuWhsbGx1rh17r/k3t28+15YtW2Ljxo16lKrSGb2Vy+Viy5YtsXnz5lbXzGQyepCqscsuu8Thhx8eTz/9dHGbXoN31tDQEOecc04MHDgw5syZU7yHgc80KK+36rWd8ZkG7fehD30oDjjggDjllFPin//5n+PRRx+NJUuWlPy51tDQ0KI32pJVtvWabSVQ513ZcSZYsw0bNsSrr77aal4R8M6a++bNfbVq1aro0aNH7LnnnsX9Vq9eHUmStNhv9erVxXPssssuseuuu7Y6V/NxepRq0hm91fy4evXqVtfcbbfd/HNdqppeg7e3adOmmDZtWmzYsCFuuummFv/E3WcalM/b9Vpb6TV490aMGBE9evSIF154Id7//vdHjx49dvq5FhEt+uOvf/1rq3Esb56Z3passq2fpW0lUOddmThxYvzmN78p/gYnImLx4sWRzWZb3OEaeGuLFi2KmpqaGDlyZOy5556x1157xeLFi1vtM378+OId4SdOnBj19fXx8MMPF/dZvXp1PPPMMzFx4sTitokTJ8YDDzwQTU1NLc6Vy+WKM/+gGnRGbx144IHRr1+/uPfee4v7NDU1xf3339/iXJB2b7zxRvx//9//F6NGjSpu02vw1rZu3Rpf/epXY9WqVXHTTTfF0KFDW7zuMw3K4516bWd8pkF5PPnkk9HU1BR77LFH9OzZM8aNGxf33Xdfi30WLVoUe++9d+yxxx4RsW1kbjabjfvvv7+4T319fTz44IOteu2dssq2fpa2lRnqvCunnXZa3H777TF9+vSYNm1arFmzJmbPnh2nnXZamz6MoNpMnTo1xo0bFyNGjIiIiAceeCDuvPPOOP3002Pw4MEREXH++efHRRddFO9///tj3LhxsWjRoli+fHn8y7/8S/E8BxxwQHzkIx+JSy+9NL7xjW9Er1694rrrrosRI0bExz/+8RbXW7BgQXzta1+Lz372s/G///u/MX/+/JgxY8a7/oCArmzjxo2xdOnSiIh46aWXorGxsfg/R4ceemjU1dVVvLd69eoV06ZNizlz5kRdXV3su+++8dOf/jTWr18fU6dOreB3B8rnnXqtOZSYNGlS7L777vHKK6/Ej3/843j11Vfj+9//fvE8eg3e2hVXXBG//vWv4+KLL47GxsZ44okniq+NHDkyevbs6TMNyuCdem358uU+06AMvvKVr8SHP/zhGDFiRPTu3TueffbZmD9/fowYMSKOPvroiIj40pe+FKeffnpcfvnlMXny5Hj00Udj4cKFcd111xXP8773vS9OPvnkmD17dmSz2Rg6dGjMnTs3+vfvH6eddlpxv7ZmlW35LG2rTPLmf6MC72DlypVx1VVXxeOPPx59+/aNE044QVgHb2HWrFnxn//5n/GXv/wlCoVC7LXXXnHKKafEF7/4xchkMsX9fv7zn8eNN94YL7/8cgwbNixmzpwZH/vYx1qca8OGDXH11VfHkiVLYuvWrfGRj3wkvvWtb7X6ZdZjjz0W11xzTfz+97+Purq6+PznPx/nnHNOi+tBd/enP/0pjjrqqJ2+dtttt8W4ceMiovK9lSRJzJs3L37yk5/E2rVrY7/99otLLrnEvxCh23qnXnvf+94XV155ZfzhD3+I9evXR58+feKAAw6Ir3zlKzF69OgW++s12LkjjzwyXnrppZ2+9sADDxRX6vlMg9K8U6/l83mfaVAG8+bNi0WLFsULL7wQSZLE7rvvHpMmTYqpU6dGv379ivs98MAD8U//9E+xevXq2G233eLcc8+Nk08+ucW5tmzZEtddd1386le/itdffz0OPPDA+Na3vhV77713i/3amlW25bO0LQTqAAAAAADQBmaoAwAAAABAGwjUAQAAAACgDQTqAAAAAADQBgJ1AAAAAABoA4E6AAAAAAC0gUAdAAAAAADaQKAOAAAAAABtIFAHAAAAAIA2EKgDAAAAAEAbCNQBAICSbNy4MebMmROPPvpoZ5cCAAAdSqAOAACUZOPGjXH99dfHf/3Xf3V2KQAA0KEE6gAAAAAA0AYCdQAASKmXXnopLr/88jjmmGNi9OjRMW7cuLjgggviT3/6U4v97rrrrhgxYkT89re/jVmzZsVhhx0WBx98cFx22WWxZcuWaGhoiK9//etxyCGHxCGHHBKzZ8+OJEkiIuJPf/pTjB8/PiIirr/++hgxYkSMGDEi5syZU/H3CwAAHa22swsAAAA6xv/8z//E448/Hscdd1y8733vi5deeil++tOfxumnnx733HNP9OnTp8X+s2bNive+971x/vnnx5NPPhl33HFH9O/fPx5//PHYddddY8aMGbFs2bKYP39+7LvvvnHiiSdGXV1dXH755XH55ZfHpEmTYtKkSRERMWLEiM54ywAA0KEySfPSEgAAIFU2bdoUvXv3brHtiSeeiFNPPTW+973vxYknnhgR21aoX3LJJfGRj3wkbrrppshkMhERcdpppxX3v+KKKyIiIp/Px5FHHhnvf//74/bbb4+IiLVr18b48ePjK1/5Spx//vmVe4MAAFBhRr4AAEBK7RimNzU1xbp16+L9739/5HK5eOaZZ1rtf/LJJxfD9IiI0aNHR5IkcfLJJxe31dTUxIc//OF48cUXO7Z4AADogox8AQCAlNq0aVPMnTs37rrrrlizZk3s+I9TN2zY0Gr/3XbbrcXz/v37R0TErrvu2mp7fX19B1QMAABdm0AdAABS6qqrroq77rorpkyZEmPHjo3+/ftHJpOJGTNmxM4mP2azO/8HrG+1HQAAqo1AHQAAUuq+++6LE088MS6++OLits2bN+90dXopdhwTAwAAaWapCQAApFRNTU2rbbfffnvk8/myXqdPnz4REdHQ0FDW8wIAQFdjhToAAKTUEUccEb/61a+iX79+8cEPfjCeeOKJ+M1vfhMDBw4s63V69+4dH/zgB+Pee++NvfbaKwYOHBj77LNP7LvvvmW9DgAAdDaBOgAApNQ3v/nNyGazsWDBgti8eXMceOCB8eMf/zjOPvvssl9r1qxZcdVVV8XVV18dTU1N8ZWvfEWgDgBA6mSSnd2NCAAAAAAAaMEMdQAAAAAAaAOBOgAAAAAAtIFAHQAAAAAA2kCgDgAAAAAAbSBQBwAAAACANhCoAwAAAABAGwjUAQAAAACgDQTqAAAAAADQBgJ1AAAAAABoA4E6AAAAAAC0gUAdAAAAAADaQKAOAAAAAABt8P8Dm+OYD+VZVP4AAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":35},{"id":"45f7a9c7-60e1-46bc-bd24-878d6703ef50","cell_type":"code","source":"df['gender_bin'] = df['gender'].map({'F': 0, 'M': 1})","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:43.492793Z","iopub.execute_input":"2026-01-17T19:34:43.493062Z","iopub.status.idle":"2026-01-17T19:34:43.571399Z","shell.execute_reply.started":"2026-01-17T19:34:43.493041Z","shell.execute_reply":"2026-01-17T19:34:43.570672Z"}},"outputs":[],"execution_count":36},{"id":"e6c944cd-1e73-4bc5-a0c0-e3990f121137","cell_type":"code","source":"#we will get the time between transactions for each card\n#Time=0 for every first transaction and time will be represented in hours.\ndf.sort_values(['cc_num','trans_date_trans_time'],inplace=True)\ndf['hours_diff_bet_trans']=((df.groupby('cc_num')[['trans_date_trans_time']].diff())/np.timedelta64(1,'h'))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:43.572362Z","iopub.execute_input":"2026-01-17T19:34:43.572636Z","iopub.status.idle":"2026-01-17T19:34:44.989667Z","shell.execute_reply.started":"2026-01-17T19:34:43.572613Z","shell.execute_reply":"2026-01-17T19:34:44.988924Z"}},"outputs":[],"execution_count":37},{"id":"8be40a04-70b2-4add-b6e5-05a4d6ebdbef","cell_type":"code","source":"df.loc[df['hours_diff_bet_trans'].isna(),'hours_diff_bet_trans']=0\ndf['hours_diff_bet_trans']=df['hours_diff_bet_trans'].astype(int)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:44.990594Z","iopub.execute_input":"2026-01-17T19:34:44.990867Z","iopub.status.idle":"2026-01-17T19:34:45.006349Z","shell.execute_reply.started":"2026-01-17T19:34:44.990843Z","shell.execute_reply":"2026-01-17T19:34:45.005514Z"}},"outputs":[],"execution_count":38},{"id":"afe6e6b3-795f-4a53-a810-77f3d01eb4a1","cell_type":"code","source":"from scipy import stats\n\nt,p=stats.ttest_ind(df[df['is_fraud']==0]['hours_diff_bet_trans'],df[df['is_fraud']==1]['hours_diff_bet_trans'],alternative='two-sided')\nprint(t,p)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:45.007477Z","iopub.execute_input":"2026-01-17T19:34:45.007746Z","iopub.status.idle":"2026-01-17T19:34:45.323884Z","shell.execute_reply.started":"2026-01-17T19:34:45.007715Z","shell.execute_reply":"2026-01-17T19:34:45.323174Z"}},"outputs":[{"name":"stdout","text":"21.308600246531245 9.715494713957777e-101\n","output_type":"stream"}],"execution_count":39},{"id":"94986001-efff-4b09-9004-26894053aec9","cell_type":"code","source":"df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:45.324792Z","iopub.execute_input":"2026-01-17T19:34:45.325145Z","iopub.status.idle":"2026-01-17T19:34:45.339400Z","shell.execute_reply.started":"2026-01-17T19:34:45.325121Z","shell.execute_reply":"2026-01-17T19:34:45.338722Z"}},"outputs":[{"execution_count":40,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time cc_num merchant \\\n1017 2019-01-01 12:47:15 60416207185 fraud_Jones, Sawayn and Romaguera \n2724 2019-01-02 08:44:57 60416207185 fraud_Berge LLC \n2726 2019-01-02 08:47:36 60416207185 fraud_Luettgen PLC \n2882 2019-01-02 12:38:14 60416207185 fraud_Daugherty LLC \n2907 2019-01-02 13:10:46 60416207185 fraud_Beier and Sons \n\n category amt gender city zip city_pop \\\n1017 misc_net 7.27 F Fort Washakie 82514 1645 \n2724 gas_transport 52.94 F Fort Washakie 82514 1645 \n2726 gas_transport 82.08 F Fort Washakie 82514 1645 \n2882 kids_pets 34.79 F Fort Washakie 82514 1645 \n2907 home 27.18 F Fort Washakie 82514 1645 \n\n job unix_time is_fraud split day_of_week \\\n1017 Information systems manager 1325422035 0 train 1 \n2724 Information systems manager 1325493897 0 train 2 \n2726 Information systems manager 1325494056 0 train 2 \n2882 Information systems manager 1325507894 0 train 2 \n2907 Information systems manager 1325509846 0 train 2 \n\n day_sin day_cos hour age distance_km gender_bin \\\n1017 0.781831 0.623490 12 33 127.61 0 \n2724 0.974928 -0.222521 8 33 110.31 0 \n2726 0.974928 -0.222521 8 33 21.79 0 \n2882 0.974928 -0.222521 12 33 87.20 0 \n2907 0.974928 -0.222521 13 33 74.21 0 \n\n hours_diff_bet_trans \n1017 0 \n2724 19 \n2726 0 \n2882 3 \n2907 0 ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timecc_nummerchantcategoryamtgendercityzipcity_popjobunix_timeis_fraudsplitday_of_weekday_sinday_coshouragedistance_kmgender_binhours_diff_bet_trans
10172019-01-01 12:47:1560416207185fraud_Jones, Sawayn and Romagueramisc_net7.27FFort Washakie825141645Information systems manager13254220350train10.7818310.6234901233127.6100
27242019-01-02 08:44:5760416207185fraud_Berge LLCgas_transport52.94FFort Washakie825141645Information systems manager13254938970train20.974928-0.222521833110.31019
27262019-01-02 08:47:3660416207185fraud_Luettgen PLCgas_transport82.08FFort Washakie825141645Information systems manager13254940560train20.974928-0.22252183321.7900
28822019-01-02 12:38:1460416207185fraud_Daugherty LLCkids_pets34.79FFort Washakie825141645Information systems manager13255078940train20.974928-0.222521123387.2003
29072019-01-02 13:10:4660416207185fraud_Beier and Sonshome27.18FFort Washakie825141645Information systems manager13255098460train20.974928-0.222521133374.2100
\n
"},"metadata":{}}],"execution_count":40},{"id":"ad947c99-d2c2-4f6e-b0d4-c54422131c2e","cell_type":"code","source":"sns.barplot(data=df,x='is_fraud',y='hours_diff_bet_trans',ci=None)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:45.340368Z","iopub.execute_input":"2026-01-17T19:34:45.340615Z","iopub.status.idle":"2026-01-17T19:34:47.822970Z","shell.execute_reply.started":"2026-01-17T19:34:45.340584Z","shell.execute_reply":"2026-01-17T19:34:47.822302Z"}},"outputs":[{"execution_count":41,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"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AAAA/6fGUfu+++6L8ePHR0REJpOJm266KW666aaPfG8ul4srrrgirwEBAAAAAOB9NY7affv2jSZNmkQul4tbbrklTj/99Ojatet278lkMtG4cePo2rVrHHnkkXU2LAAAAAAA+7caR+2jjjoqjjrqqIiI2LRpU5x00knx2c9+dre+tqqqKt55551o3bp1NGjQoKZLAwAAAACwn8vrUxxHjBix20E7ImL16tXRv3//+OMf/5jPsgAAAAAA7Kfyitq1kcvl9vaSAAAAAADsI/Z61AYAAAAAgNoStQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGTkFbVfeumlWL169U7Pr169Ol566aXq102aNIkRI0ZEx44d81kWAAAAAID9VF5Ru7y8PGbPnr3T87///e+jvLy8+vX7UbtDhw75LAsAAAAAwH4qr6idy+U+9vyWLVuipKQknyUAAAAAAKBavZp+wfLly+Ptt9+ufr148eLtthh5X0VFRUyePDnatWuX34QAAAAAAPB/ahy1H3/88Rg3blxkMpnIZDJxxx13xB133LHD+3K5XJSUlMSoUaPqZFAAAAAAAKhx1D711FPj0EMPjVwuF1dccUUMGTIkevbsud17MplMNG7cOA477LBo3bp1nQ0LAAAAAMD+rcZR+zOf+Ux85jOfiYiI0aNHR8+ePaNjx451PhgAAAAAAHxYjaP2Bw0aNKj61//4xz9i9erV8elPfzqaNGmS92AAAAAAAPBh2Xwv8Nxzz8Upp5wSJ5xwQgwaNCjmzp0bERGrV6+Os846K5577rm8hwQAAAAAgIg8o/bMmTPjsssui5YtW8all14auVyu+lxZWVm0bds2HnvssbyHBAAAAACAiDyj9vjx46Nnz54xadKkOP/883c436NHj5g/f34+SwAAAAAAQLW8ovbChQvj1FNP3en51q1bx6pVq/JZAgAAAAAAquUVtRs3bhybNm3a6fmlS5dGixYt8lkCAAAAAACq5RW1e/fuHU8++WRs27Zth3MrV66MKVOmxLHHHpvPEgAAAAAAUC2vqH3FFVfEO++8E//xH/8RjzzySGQymfjtb38b//3f/x0DBw6MXC4Xl156aV3NCgAAAADAfi6vqN2pU6d4+OGHo0WLFvGTn/wkcrlc3HPPPfGzn/0sPvvZz8bDDz8cHTp0qKtZAQAAAADYz9XL9wKHHnpo3HfffbF27dpYsmRJ5HK56NixY5SVldXFfAAAAAAAUC3vqP2+5s2bR7du3erqcgAAAAAAsIO8o/bq1avjrrvuilmzZsXbb78dERHt27ePE044IYYOHRqtW7fOe0gAAAAAAIjIc0/thQsXxsCBA2PChAnRrFmzOOWUU+KUU06JZs2axYQJE+KLX/xi/PWvf62rWQEAAAAA2M/l9aT2D37wg6isrIwpU6bssPXIq6++GhdffHHccMMN8cADD+Q1JAAAAAAAROT5pParr74a5eXlH7mXdrdu3aK8vDxeffXVfJYAAAAAAIBqeUXtVq1aRcOGDXd6vmHDhtGqVat8lgAAAAAAgGp5Re3y8vKYNGlSrFy5codzK1asiEmTJkV5eXk+SwAAAAAAQLUa7ak9YcKEHY41adIkTjrppBgwYEAceOCBERHx97//PWbMmBGf/vSn62ZKAAAAAACIGkbtm2++eafnnn766R2OvfHGG3HzzTfHhRdeWOPBAAAAAADgw2oUtWfMmLGn5gAAAAAAgF2qUdRu3759Xott3Lgx7r333jjrrLOiQ4cOeV0LAAAAAID9T14fFFlTGzdujPHjx8fSpUv35rIAAAAAAOwj9mrUjojI5XJ7e0kAAAAAAPYRez1qAwAAAABAbYnaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASEaNovaMGTNixYoVe2oWAAAAAAD4WDWK2iNGjIg5c+ZUv+7fv3/MmDFjt7++rKwsZsyYEUcffXRNlgUAAAAAgIiIqFeTNzdt2jQqKiqqX7/99tuxcePG3f76bDYb7du3r8mSAAAAAABQrUZRu1u3bnHHHXfEqlWrolmzZhERMWvWrPjnP/+506/JZDJx4YUX5jUkAAAAAABE1DBqX3/99fGd73wnbrvttoj4V7CeOnVqTJ06dadfI2oDAAAAAFBXahS1DzzwwJg8eXK89957sWrVqujXr19ce+210b9//z01HwAAAAAAVKtR1L7//vvjuOOOi4MPPjjatWsXI0aMiGOOOcY+2QAAAAAA7BXZmrx59OjRMW/evOrX48ePjzfeeKPOhwIAAAAAgI9So6hdWloaq1atqn6dy+XqfCAAAAAAANiZGm0/0rt37xg7dmzMnz8/mjVrFhERTz75ZMydO/djv+573/terYbbsGFDnHrqqbFixYr4+c9/HkceeWStrgMAAAAAwL6hRlH7+uuvj5tuuilmz54dq1atikwmE7Nnz47Zs2fv9GsymUyto/Ztt90WlZWVtfpaAAAAAAD2PTWK2q1atYpbb721+nWXLl3illtuiYEDB9b5YIsWLYqHH344vvOd78T1119f59cHAAAAACA9NdpT+8NGjx4dRx11VF3Nsp0bb7wxzj333Dj44IP3yPUBAAAAAEhPXlF70KBB0aFDh7qapdr06dPjr3/9a1x66aV1fm0AAAAAANJVo+1HhgwZEtlsNu65556oV69elJeX7/JrMplMTJw4cbfX2LRpU4wZMyauvPLKOOCAA2oy3seqVy+vfr/PKSnx/QAA0uL+hV3xMwIApMb9S+3UKGpHRFRVVVX/OpfL7fL9u/OeD7r99tujVatW8eUvf7mmo+1UNpuJli2b1tn1AADY+0pLGxd6BAAAqFPucWunRlH7gQce+NjX+Xr77bfj3nvvjfHjx8e6desiImLjxo3V/71hw4Zo2rTmcbqqKhcVFRvrdNbUlZRk/aEBAJJSUbEpKiurdv1G9lvucQGA1LjH3V5paePdenq9xk9q70nLli2LrVu3xrBhw3Y4V15eHt27d48pU6bU6trbtvnhAABIWWVllXs6AAD2Ke5xa6dGUXv58uW1WqRdu3a79b7DDjss7r///u2OzZ8/P0aPHh2jRo2KI488slbrAwAAAACwb6hR1O7Xr19kMpkaLzJ//vzdel9paWn07t37I8917do1unbtWuO1AQAAAADYd9Qoat90003bRe2qqqq4//77Y/ny5TFw4MA4+OCDIyJi8eLFMXXq1Gjfvn0MGTKkbicGAAAAAGC/VaOo/aUvfWm717fffnu899578cwzz0TLli23O3fZZZfFeeedF//85z/zGrB3797xxhtv5HUNAAAAAAD2Dbv+KMmPMXny5DjnnHN2CNoREWVlZXH22WfHpEmT8lkCAAAAAACq5RW116xZE5s2bdrp+U2bNsWaNWvyWQIAAAAAAKrlFbW7d+8eEydOjHnz5u1w7i9/+Us88MAD0a1bt3yWAAAAAACAajXaU/vDRo4cGUOGDInBgwdH9+7d46CDDoqIiL///e8xd+7caN68eVx33XV1MScAAAAAAOQXtQ855JB4+umn484774znn38+pk2bFhER7dq1i/Ly8rjo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NrF48eICTQUAAADsq0RtAPJSUVERpaWlOxxv3rx5rF27tgATAQAAAPsyURsAAAAAgGSI2gDkpbS0NNatW7fD8bVr10bz5s0LMBEAAACwLxO1AchLp06ddtg7e926dbFy5cod9toGAAAAyJeoDUBejj/++HjxxRejoqKi+tj06dMjm81G3759CzgZAAAAsC+qV+gBAEjbueeeGw888EBceumlcckll8SKFSvihz/8YZx77rnRtm3bQo8HAAC1smnTppg1a1ZERLz99tuxfv36mD59ekRE9OrVK8rKygo5HsB+LZPL5XKFHgKAtC1atChuuOGG+POf/xxNmzaNM888M6688spo0KBBoUcDAIBaWbZsWfTv3/8jz91///3Ru3fvvTwRAO8TtQEAAAAASIY9tQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAKCWHn/88ejcuXMsW7asTq/75JNPximnnBJdu3aNnj171um187Gnfr8AAFAT9Qo9AAAA8P9btGhRXHPNNXHcccfFsGHDolGjRoUeCQAAioqoDQAAtXTmmWfG6aefHg0aNKiza86ZMyeqqqriu9/9bhx44IF1dl0AANhX2H4EAABqqaSkJBo2bBiZTKbOrrlq1aqIiGjWrNnHvi+Xy8XmzZvrbF0AAEiFqA0AALX04T2m//KXv8TQoUOjd+/e0a1bt+jXr19cc801u329fv36xdixYyMiok+fPtG5c+fq1/369YtLLrkkXnjhhfjSl74U3bp1i8mTJ0dExGOPPRbl5eXRp0+fOOKII+K0006Lhx9+eIfrf/B6H1736quv3u7YwoULo7y8PLp16xbHH3983HbbbVFVVbXbvxcAANhTbD8CAAB1YNWqVTF06NBo2bJlDBs2LEpLS2PZsmXx7LPP7vY1rr322njyySfj2Wefje9///vRpEmT6Ny5c/X5v/3tb3HVVVfFOeecE2effXYcfPDBERExadKkOPTQQ6Nfv35Rr169+PWvfx2jRo2KXC4X559/fo1/LytXrozy8vKorKyMYcOGRePGjWPKlCnRsGHDGl8LAADqmqgNAAB14M9//nOsXbs27rnnnjjyyCOrj1955ZW7fY0BAwbE/Pnz49lnn42TTz45ysrKtju/ZMmSuPvuu+O4447b7viDDz643QdKfuUrX4mhQ4fGhAkTahW177rrrli9enU8+uij0a1bt4iIGDRoUJx00kk1vhYAANQ1248AAEAdeH8P7N/85jexdevWPbJGhw4ddgjaEbFd0F63bl2sXr06evXqFUuXLo1169bVeJ1Zs2ZFjx49qoN2RERZWVkMHDiwdoMDAEAd8qQ2AADUgV69esXJJ58c48aNi/vuuy969eoVAwYMiIEDB0aDBg3qZI0OHTp85PE//vGPMXbs2HjllVdi06ZN251bt27dLj908sOWL18e3bt33+H4+9udAABAIYnaAABQBzKZTPz0pz+NV155JX7961/HCy+8ENdee21MmDAhHnnkkWjatGnea3zwiez3vfXWW3HhhRdGp06d4uqrr45PfepTUb9+/Zg1a1bcd999u/XhjpWVlXnPBgAAe4uoDQAAdahHjx7Ro0ePuPLKK+Ppp5+Ob33rWzFt2rQYPHjwHllv5syZsWXLlrj99tujXbt21cf/8Ic/7PDe5s2bR0VFxXbHtmzZEitXrtzuWLt27WLJkiU7fP3f/va3OpoaAABqz57aAABQB9auXRu5XG67Y4cddlhE/Csc7yklJSUREdutvW7dunjsscd2eG/Hjh3j5Zdf3u7YlClTdnhS+4QTTohXXnklXn311epjq1evjqeffrouRwcAgFrxpDYAANSBJ554IiZNmhQDBgyIT3/607Fhw4aYMmVKHHDAAXH88cfvsXX79u0b9evXj+HDh8e5554bGzZsiEcffTRatWq1wxPYgwcPjuuvvz4uu+yy+NznPhcLFiyI3/72t9GyZcvt3nfRRRfFU089FRdddFGUl5dH48aNY8qUKdGuXbt444039tjvBQAAdocntQEAoA706tUrjjjiiJg2bVrceOONcffdd8dBBx0UEydOjI4dO+6xdTt16hQ//elPI5PJxM033xyTJ0+Os88+O8rLy3d479lnnx0XX3xxvPTSS3HzzTfHsmXLYsKECdGkSZPt3veJT3wi7r///ujcuXPceeedMXHixDjzzDM/8poAALC3ZXIf/jeSAAAAAABQpDypDQAAAABAMuypDQAAe8GaNWti69atOz1fUlISZWVle3EiAABIk+1HAABgLxgyZEjMmTNnp+fbt28fM2fO3IsTAQBAmkRtAADYC+bNmxcVFRU7Pd+wYcM4+uij9+JEAACQJlEbAAAAAIBk+KBIAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDL+P1VmZhX7dNhSAAAAAElFTkSuQmCC\n"},"metadata":{}}],"execution_count":41},{"id":"d57eb25a-a006-4383-b64e-de89fa1d5763","cell_type":"code","source":"\ndf = df.sort_values(['cc_num', 'trans_date_trans_time'])\ndf = df.set_index('trans_date_trans_time')\n\n# 1. Transaction Velocity (Rolling Count)\n# Identifies sudden bursts in card usage\ndf['trans_count_24h'] = df.groupby('cc_num')['amt'].rolling('24h').count().shift(1).reset_index(0, drop=True).fillna(0)\n\n# 2. Recent Spending Baseline (Rolling Mean)\n# Needed for the 24h ratio calculation\ndf['avg_amt_24h'] = df.groupby('cc_num')['amt'].rolling('24h').mean().shift(1).reset_index(0, drop=True).fillna(df['amt'])\n\n# 3. All-time Spending Profile (Expanding Mean)\n# Captures long-term user behavior\ndf['user_avg_amt_all_time'] = df.groupby('cc_num')['amt'].transform(lambda x: x.expanding().mean().shift(1)).fillna(df['amt'])\n\n# Reset index to restore dataframe structure\ndf = df.reset_index()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:47.823835Z","iopub.execute_input":"2026-01-17T19:34:47.824101Z","iopub.status.idle":"2026-01-17T19:34:52.484471Z","shell.execute_reply.started":"2026-01-17T19:34:47.824068Z","shell.execute_reply":"2026-01-17T19:34:52.483920Z"}},"outputs":[],"execution_count":42},{"id":"64ef62c8-690c-498d-84b0-650c6b444292","cell_type":"code","source":"# Identifies spikes relative to recent 24-hour activity (Burst Detection)\ndf['amt_to_avg_ratio_24h'] = df['amt'] / df['avg_amt_24h']\n\n# Identifies spikes relative to long-term behavior (Anomaly Detection)\ndf['amt_relative_to_all_time'] = df['amt'] / df['user_avg_amt_all_time']","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:52.485402Z","iopub.execute_input":"2026-01-17T19:34:52.485654Z","iopub.status.idle":"2026-01-17T19:34:52.500265Z","shell.execute_reply.started":"2026-01-17T19:34:52.485628Z","shell.execute_reply":"2026-01-17T19:34:52.499733Z"}},"outputs":[],"execution_count":43},{"id":"c0012e88-b382-47a5-b99c-1ac4bc67646a","cell_type":"code","source":"# Apply cyclical encoding\ndf['hour_sin'] = np.sin(2 * np.pi * df['hour'] / 24)\ndf['hour_cos'] = np.cos(2 * np.pi * df['hour'] / 24)\n\ndf.drop(['hour'], axis=1, inplace=True)\n\ndf.drop('day_of_week', axis=1, inplace=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:52.501208Z","iopub.execute_input":"2026-01-17T19:34:52.501477Z","iopub.status.idle":"2026-01-17T19:34:53.025508Z","shell.execute_reply.started":"2026-01-17T19:34:52.501451Z","shell.execute_reply":"2026-01-17T19:34:53.024737Z"}},"outputs":[],"execution_count":44},{"id":"2cc84b00-6180-4a34-ab9b-d0b759f17283","cell_type":"code","source":"df = df.sort_values('trans_date_trans_time')\ndf['hours_diff_bet_trans_log'] = np.log1p(df['hours_diff_bet_trans'])\ndf.drop('hours_diff_bet_trans', axis=1, inplace=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:53.026430Z","iopub.execute_input":"2026-01-17T19:34:53.026724Z","iopub.status.idle":"2026-01-17T19:34:53.982407Z","shell.execute_reply.started":"2026-01-17T19:34:53.026694Z","shell.execute_reply":"2026-01-17T19:34:53.981592Z"}},"outputs":[],"execution_count":45},{"id":"f8e14132-cd90-4756-a8d4-e23d73b1216d","cell_type":"code","source":"df","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:53.983347Z","iopub.execute_input":"2026-01-17T19:34:53.983600Z","iopub.status.idle":"2026-01-17T19:34:54.004904Z","shell.execute_reply.started":"2026-01-17T19:34:53.983569Z","shell.execute_reply":"2026-01-17T19:34:54.004273Z"}},"outputs":[{"execution_count":46,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time cc_num \\\n839573 2019-01-01 00:00:18 2703186189652095 \n68160 2019-01-01 00:00:44 630423337322 \n443631 2019-01-01 00:00:51 38859492057661 \n974884 2019-01-01 00:01:16 3534093764340240 \n702664 2019-01-01 00:03:06 375534208663984 \n... ... ... \n394614 2020-12-31 23:59:07 30560609640617 \n1038657 2020-12-31 23:59:09 3556613125071656 \n1608607 2020-12-31 23:59:15 6011724471098086 \n146463 2020-12-31 23:59:24 4079773899158 \n1258129 2020-12-31 23:59:34 4170689372027579 \n\n merchant category amt gender \\\n839573 fraud_Rippin, Kub and Mann misc_net 4.97 F \n68160 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 F \n443631 fraud_Lind-Buckridge entertainment 220.11 M \n974884 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 M \n702664 fraud_Keeling-Crist misc_pos 41.96 M \n... ... ... ... ... \n394614 fraud_Reilly and Sons health_fitness 43.77 M \n1038657 fraud_Hoppe-Parisian kids_pets 111.84 M \n1608607 fraud_Rau-Robel kids_pets 86.88 F \n146463 fraud_Breitenberg LLC travel 7.99 M \n1258129 fraud_Dare-Marvin entertainment 38.13 M \n\n city zip city_pop job \\\n839573 Moravian Falls 28654 3495 Psychologist, counselling \n68160 Orient 99160 149 Special educational needs teacher \n443631 Malad City 83252 4154 Nature conservation officer \n974884 Boulder 59632 1939 Patent attorney \n702664 Doe Hill 24433 99 Dance movement psychotherapist \n... ... ... ... ... \n394614 Luray 63453 519 Town planner \n1038657 Lake Jackson 77566 28739 Futures trader \n1608607 Burbank 99323 3684 Musician \n146463 Mesa 83643 129 Cartographer \n1258129 Edmond 73034 116001 Media buyer \n\n unix_time is_fraud split day_sin day_cos age distance_km \\\n839573 1325376018 0 train 0.781831 0.623490 31 78.60 \n68160 1325376044 0 train 0.781831 0.623490 41 30.21 \n443631 1325376051 0 train 0.781831 0.623490 57 108.21 \n974884 1325376076 0 train 0.781831 0.623490 52 95.67 \n702664 1325376186 0 train 0.781831 0.623490 33 77.56 \n... ... ... ... ... ... ... ... \n394614 1388534347 0 test 0.433884 -0.900969 54 77.03 \n1038657 1388534349 0 test 0.433884 -0.900969 21 100.07 \n1608607 1388534355 0 test 0.433884 -0.900969 39 80.76 \n146463 1388534364 0 test 0.433884 -0.900969 55 52.93 \n1258129 1388534374 0 test 0.433884 -0.900969 27 72.44 \n\n gender_bin trans_count_24h avg_amt_24h user_avg_amt_all_time \\\n839573 0 6.0 95.641667 4.970000 \n68160 0 1.0 12.110000 107.230000 \n443631 1 5.0 445.778000 220.110000 \n974884 1 5.0 42.454000 45.000000 \n702664 1 6.0 78.120000 41.960000 \n... ... ... ... ... \n394614 1 4.0 66.842500 62.356436 \n1038657 1 8.0 50.592500 50.435516 \n1608607 0 8.0 94.298750 88.704797 \n146463 1 3.0 71.220000 61.016205 \n1258129 1 10.0 24.518000 61.744192 \n\n amt_to_avg_ratio_24h amt_relative_to_all_time hour_sin hour_cos \\\n839573 0.051965 1.000000 0.000000 1.000000 \n68160 8.854666 1.000000 0.000000 1.000000 \n443631 0.493766 1.000000 0.000000 1.000000 \n974884 1.059971 1.000000 0.000000 1.000000 \n702664 0.537122 1.000000 0.000000 1.000000 \n... ... ... ... ... \n394614 0.654823 0.701932 -0.258819 0.965926 \n1038657 2.210604 2.217485 -0.258819 0.965926 \n1608607 0.921327 0.979428 -0.258819 0.965926 \n146463 0.112188 0.130949 -0.258819 0.965926 \n1258129 1.555184 0.617548 -0.258819 0.965926 \n\n hours_diff_bet_trans_log \n839573 0.000000 \n68160 0.000000 \n443631 0.000000 \n974884 0.000000 \n702664 0.000000 \n... ... \n394614 1.609438 \n1038657 1.098612 \n1608607 0.000000 \n146463 1.386294 \n1258129 0.693147 \n\n[1852394 rows x 26 columns]","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timecc_nummerchantcategoryamtgendercityzipcity_popjobunix_timeis_fraudsplitday_sinday_cosagedistance_kmgender_bintrans_count_24havg_amt_24huser_avg_amt_all_timeamt_to_avg_ratio_24hamt_relative_to_all_timehour_sinhour_coshours_diff_bet_trans_log
8395732019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls286543495Psychologist, counselling13253760180train0.7818310.6234903178.6006.095.6416674.9700000.0519651.0000000.0000001.0000000.000000
681602019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient99160149Special educational needs teacher13253760440train0.7818310.6234904130.2101.012.110000107.2300008.8546661.0000000.0000001.0000000.000000
4436312019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City832524154Nature conservation officer13253760510train0.7818310.62349057108.2115.0445.778000220.1100000.4937661.0000000.0000001.0000000.000000
9748842019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder596321939Patent attorney13253760760train0.7818310.6234905295.6715.042.45400045.0000001.0599711.0000000.0000001.0000000.000000
7026642019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443399Dance movement psychotherapist13253761860train0.7818310.6234903377.5616.078.12000041.9600000.5371221.0000000.0000001.0000000.000000
.................................................................................
3946142020-12-31 23:59:0730560609640617fraud_Reilly and Sonshealth_fitness43.77MLuray63453519Town planner13885343470test0.433884-0.9009695477.0314.066.84250062.3564360.6548230.701932-0.2588190.9659261.609438
10386572020-12-31 23:59:093556613125071656fraud_Hoppe-Parisiankids_pets111.84MLake Jackson7756628739Futures trader13885343490test0.433884-0.90096921100.0718.050.59250050.4355162.2106042.217485-0.2588190.9659261.098612
16086072020-12-31 23:59:156011724471098086fraud_Rau-Robelkids_pets86.88FBurbank993233684Musician13885343550test0.433884-0.9009693980.7608.094.29875088.7047970.9213270.979428-0.2588190.9659260.000000
1464632020-12-31 23:59:244079773899158fraud_Breitenberg LLCtravel7.99MMesa83643129Cartographer13885343640test0.433884-0.9009695552.9313.071.22000061.0162050.1121880.130949-0.2588190.9659261.386294
12581292020-12-31 23:59:344170689372027579fraud_Dare-Marvinentertainment38.13MEdmond73034116001Media buyer13885343740test0.433884-0.9009692772.44110.024.51800061.7441921.5551840.617548-0.2588190.9659260.693147
\n

1852394 rows Γ— 26 columns

\n
"},"metadata":{}}],"execution_count":46},{"id":"d348f8c3-37c4-431c-8fd1-b84fa31c3d93","cell_type":"code","source":"df.drop(columns=['cc_num','city_pop','unix_time','zip','merchant','gender'],inplace=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:54.005907Z","iopub.execute_input":"2026-01-17T19:34:54.006237Z","iopub.status.idle":"2026-01-17T19:34:54.187708Z","shell.execute_reply.started":"2026-01-17T19:34:54.006215Z","shell.execute_reply":"2026-01-17T19:34:54.187077Z"}},"outputs":[],"execution_count":47},{"id":"b25bace2-88f2-4bd3-9742-ad87a27b2206","cell_type":"code","source":"df.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:54.188524Z","iopub.execute_input":"2026-01-17T19:34:54.188795Z","iopub.status.idle":"2026-01-17T19:34:54.193852Z","shell.execute_reply.started":"2026-01-17T19:34:54.188762Z","shell.execute_reply":"2026-01-17T19:34:54.193113Z"}},"outputs":[{"execution_count":48,"output_type":"execute_result","data":{"text/plain":"Index(['trans_date_trans_time', 'category', 'amt', 'city', 'job', 'is_fraud',\n 'split', 'day_sin', 'day_cos', 'age', 'distance_km', 'gender_bin',\n 'trans_count_24h', 'avg_amt_24h', 'user_avg_amt_all_time',\n 'amt_to_avg_ratio_24h', 'amt_relative_to_all_time', 'hour_sin',\n 'hour_cos', 'hours_diff_bet_trans_log'],\n dtype='object')"},"metadata":{}}],"execution_count":48},{"id":"ee50676a-a865-4d70-ac11-20fa4f6f37cd","cell_type":"code","source":"df=df[['trans_date_trans_time','job','age','gender_bin','category','distance_km','hour_sin','hour_cos','day_sin','day_cos','hours_diff_bet_trans_log','amt','trans_count_24h','amt_to_avg_ratio_24h','amt_relative_to_all_time','is_fraud','split']]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:54.194772Z","iopub.execute_input":"2026-01-17T19:34:54.195044Z","iopub.status.idle":"2026-01-17T19:34:54.320015Z","shell.execute_reply.started":"2026-01-17T19:34:54.195016Z","shell.execute_reply":"2026-01-17T19:34:54.319208Z"}},"outputs":[],"execution_count":49},{"id":"5b66a6d4-589c-475f-a35d-45b7b5c594f8","cell_type":"code","source":"df.to_csv('cleaned.csv',index=False)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:34:54.320980Z","iopub.execute_input":"2026-01-17T19:34:54.321221Z","iopub.status.idle":"2026-01-17T19:35:20.252225Z","shell.execute_reply.started":"2026-01-17T19:34:54.321201Z","shell.execute_reply":"2026-01-17T19:35:20.251388Z"}},"outputs":[],"execution_count":50},{"id":"8d07c254-908a-4b38-a816-39dc8a6f84de","cell_type":"code","source":"df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:35:20.253484Z","iopub.execute_input":"2026-01-17T19:35:20.253806Z","iopub.status.idle":"2026-01-17T19:35:20.269107Z","shell.execute_reply.started":"2026-01-17T19:35:20.253770Z","shell.execute_reply":"2026-01-17T19:35:20.268431Z"}},"outputs":[{"execution_count":51,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time job age \\\n839573 2019-01-01 00:00:18 Psychologist, counselling 31 \n68160 2019-01-01 00:00:44 Special educational needs teacher 41 \n443631 2019-01-01 00:00:51 Nature conservation officer 57 \n974884 2019-01-01 00:01:16 Patent attorney 52 \n702664 2019-01-01 00:03:06 Dance movement psychotherapist 33 \n\n gender_bin category distance_km hour_sin hour_cos day_sin \\\n839573 0 misc_net 78.60 0.0 1.0 0.781831 \n68160 0 grocery_pos 30.21 0.0 1.0 0.781831 \n443631 1 entertainment 108.21 0.0 1.0 0.781831 \n974884 1 gas_transport 95.67 0.0 1.0 0.781831 \n702664 1 misc_pos 77.56 0.0 1.0 0.781831 \n\n day_cos hours_diff_bet_trans_log amt trans_count_24h \\\n839573 0.62349 0.0 4.97 6.0 \n68160 0.62349 0.0 107.23 1.0 \n443631 0.62349 0.0 220.11 5.0 \n974884 0.62349 0.0 45.00 5.0 \n702664 0.62349 0.0 41.96 6.0 \n\n amt_to_avg_ratio_24h amt_relative_to_all_time is_fraud split \n839573 0.051965 1.0 0 train \n68160 8.854666 1.0 0 train \n443631 0.493766 1.0 0 train \n974884 1.059971 1.0 0 train \n702664 0.537122 1.0 0 train ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timejobagegender_bincategorydistance_kmhour_sinhour_cosday_sinday_coshours_diff_bet_trans_logamttrans_count_24hamt_to_avg_ratio_24hamt_relative_to_all_timeis_fraudsplit
8395732019-01-01 00:00:18Psychologist, counselling310misc_net78.600.01.00.7818310.623490.04.976.00.0519651.00train
681602019-01-01 00:00:44Special educational needs teacher410grocery_pos30.210.01.00.7818310.623490.0107.231.08.8546661.00train
4436312019-01-01 00:00:51Nature conservation officer571entertainment108.210.01.00.7818310.623490.0220.115.00.4937661.00train
9748842019-01-01 00:01:16Patent attorney521gas_transport95.670.01.00.7818310.623490.045.005.01.0599711.00train
7026642019-01-01 00:03:06Dance movement psychotherapist331misc_pos77.560.01.00.7818310.623490.041.966.00.5371221.00train
\n
"},"metadata":{}}],"execution_count":51},{"id":"a9889db4-937c-490d-8050-1789bda4e0ee","cell_type":"code","source":"df['job'].unique()","metadata":{"scrolled":true,"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:35:20.270066Z","iopub.execute_input":"2026-01-17T19:35:20.271020Z","iopub.status.idle":"2026-01-17T19:35:20.416026Z","shell.execute_reply.started":"2026-01-17T19:35:20.270994Z","shell.execute_reply":"2026-01-17T19:35:20.415442Z"}},"outputs":[{"execution_count":52,"output_type":"execute_result","data":{"text/plain":"array(['Psychologist, counselling', 'Special educational needs teacher',\n 'Nature conservation officer', 'Patent attorney',\n 'Dance movement psychotherapist', 'Transport planner',\n 'Arboriculturist', 'Designer, multimedia',\n 'Public affairs consultant', 'Pathologist', 'IT trainer',\n 'Systems developer', 'Engineer, land', 'Systems analyst',\n 'Naval architect', 'Radiographer, diagnostic',\n 'Programme researcher, broadcasting/film/video', 'Energy engineer',\n 'Event organiser', 'Operational researcher', 'Market researcher',\n 'Probation officer', 'Leisure centre manager',\n 'Corporate investment banker', 'Therapist, occupational',\n 'Call centre manager', 'Police officer',\n 'Education officer, museum', 'Physiotherapist', 'Network engineer',\n 'Forensic psychologist', 'Geochemist',\n 'Armed forces training and education officer',\n 'Designer, furniture', 'Optician, dispensing',\n 'Psychologist, forensic', 'Librarian, public', 'Fine artist',\n 'Scientist, research (maths)', 'Research officer, trade union',\n 'Tourism officer', 'Human resources officer', 'Surveyor, minerals',\n 'Applications developer', 'Video editor', 'Curator',\n 'Research officer, political party', 'Engineer, mining',\n 'Education officer, community', 'Physicist, medical',\n 'Amenity horticulturist', 'Electrical engineer',\n 'Television camera operator', 'Higher education careers adviser',\n 'Ambulance person', 'Dealer', 'Paediatric nurse',\n 'Trading standards officer', 'Engineer, technical sales',\n 'Designer, jewellery', 'Clinical biochemist',\n 'Engineer, electronics', 'Water engineer', 'Science writer',\n 'Film/video editor', 'Solicitor, Scotland',\n 'Product/process development scientist', 'Tree surgeon',\n 'Careers information officer', 'Geologist, engineering',\n 'Counsellor', 'Freight forwarder',\n 'Senior tax professional/tax inspector',\n 'Engineer, broadcasting (operations)',\n 'English as a second language teacher', 'Economist',\n 'Child psychotherapist', 'Claims inspector/assessor',\n 'Tourist information centre manager',\n 'Exhibitions officer, museum/gallery', 'Location manager',\n 'Engineer, biomedical', 'Research scientist (physical sciences)',\n 'Purchasing manager', 'Editor, magazine features',\n 'Operations geologist', 'Interpreter', 'Engineering geologist',\n 'Agricultural consultant', 'Paramedic', 'Financial adviser',\n 'Administrator, education', 'Educational psychologist',\n 'Financial trader', 'Audiological scientist',\n 'Scientist, audiological',\n 'Administrator, charities/voluntary organisations',\n 'Health service manager', 'Retail merchandiser',\n 'Telecommunications researcher', 'Exercise physiologist',\n 'Accounting technician', 'Product designer',\n 'Waste management officer', 'Mining engineer', 'Surgeon',\n 'Therapist, horticultural', 'Environmental consultant',\n 'Broadcast presenter', 'Producer, radio',\n 'Engineer, communications',\n 'Historic buildings inspector/conservation officer',\n 'Materials engineer', 'Teacher, English as a foreign language',\n 'Health visitor', 'Medical secretary', 'Theatre director',\n 'Technical brewer', 'Land/geomatics surveyor',\n 'Engineer, structural', 'Diagnostic radiographer',\n 'Television production assistant', 'Medical sales representative',\n 'Building control surveyor', 'Therapist, sports',\n 'Structural engineer', 'Commercial/residential surveyor',\n 'Database administrator', 'Exhibition designer',\n 'Training and development officer', 'Mechanical engineer',\n 'Medical physicist', 'Administrator', 'Mudlogger',\n 'Fisheries officer', 'Conservator, museum/gallery',\n 'Programmer, multimedia', 'Cytogeneticist',\n 'Multimedia programmer', 'Counselling psychologist', 'Chiropodist',\n 'Teacher, early years/pre', 'Cartographer', 'Pensions consultant',\n 'Primary school teacher', 'Electronics engineer',\n 'Museum/gallery exhibitions officer', 'Air broker',\n 'Advertising account executive', 'Chemical engineer',\n 'Advertising account planner',\n 'Chartered legal executive (England and Wales)',\n 'Psychiatric nurse', 'Secondary school teacher',\n 'Librarian, academic', 'Embryologist, clinical', 'Immunologist',\n 'Television floor manager', 'Contractor', 'Health physicist',\n 'Copy', 'Bookseller', 'Land', 'Chartered loss adjuster',\n 'Occupational psychologist', 'Facilities manager',\n 'Further education lecturer', 'Archivist', 'Investment analyst',\n 'Engineer, building services', 'Psychologist, sport and exercise',\n 'Journalist, newspaper', 'Doctor, hospital', 'Phytotherapist',\n 'Pharmacologist', 'Horticultural therapist', 'Hydrologist',\n 'Community arts worker', 'Public house manager', 'Architect',\n 'Lexicographer', 'Psychotherapist, child',\n 'Teacher, secondary school', 'Toxicologist',\n 'Commercial horticulturist', 'Podiatrist', 'Building surveyor',\n 'Architectural technologist', 'Editor, film/video',\n 'Social researcher', 'Wellsite geologist', 'Minerals surveyor',\n 'Designer, ceramics/pottery', 'Mental health nurse',\n 'Volunteer coordinator', 'Chief Technology Officer',\n 'Camera operator', 'Copywriter, advertising', 'Surveyor, mining',\n 'Product manager', \"Nurse, children's\", 'Pension scheme manager',\n 'Archaeologist', 'Sub', 'Designer, interior/spatial',\n 'Futures trader', 'Chief Financial Officer',\n 'Museum education officer', 'Quantity surveyor',\n 'Physiological scientist', 'Loss adjuster, chartered',\n 'Pilot, airline', 'Production assistant, radio',\n 'Immigration officer', 'Retail banker',\n 'Health and safety adviser', 'Teacher, special educational needs',\n 'Jewellery designer', 'Community pharmacist',\n 'Control and instrumentation engineer', 'Make',\n 'Early years teacher', 'Sales professional, IT',\n 'Scientist, marine', 'Intelligence analyst',\n 'Clinical research associate', 'Administrator, local government',\n 'Barrister', 'Engineer, control and instrumentation',\n 'Clothing/textile technologist', 'Development worker, community',\n 'Art therapist', 'Sales executive',\n 'Armed forces logistics/support/administrative officer',\n 'Optometrist', 'Insurance underwriter', 'Charity officer',\n 'Civil Service fast streamer', 'Retail buyer',\n 'Magazine features editor', 'Equities trader',\n 'Trade mark attorney', 'Research scientist (life sciences)',\n 'Psychotherapist', 'Pharmacist, community', 'Risk analyst',\n 'Engineer, maintenance', 'Logistics and distribution manager',\n 'Water quality scientist', 'Lecturer, further education',\n 'Production assistant, television', 'Tour manager',\n 'Music therapist', 'Surveyor, land/geomatics',\n 'Engineer, production', 'Acupuncturist', 'Hospital doctor',\n 'Teacher, primary school', 'Accountant, chartered public finance',\n 'Illustrator', 'Scientist, physiological',\n 'Scientist, research (physical sciences)', 'Buyer, industrial',\n 'Radio producer', 'Manufacturing engineer', 'Animal technologist',\n 'Production engineer', 'Biochemist, clinical',\n 'Engineer, manufacturing', 'Comptroller',\n 'General practice doctor', 'Designer, industrial/product',\n 'Prison officer', 'Merchandiser, retail', 'Engineer, drilling',\n 'Engineer, petroleum', 'Cabin crew', 'Commissioning editor',\n 'Accountant, chartered certified', 'Local government officer',\n 'Professor Emeritus', 'Press sub',\n 'Chartered public finance accountant', 'Writer',\n 'Chief Executive Officer', 'Occupational hygienist',\n 'Doctor, general practice', 'Community education officer',\n 'Landscape architect', 'Occupational therapist',\n 'Special effects artist', 'Civil engineer, contracting',\n \"Barrister's clerk\", 'Travel agency manager',\n 'Associate Professor', 'Neurosurgeon', 'Plant breeder/geneticist',\n 'Radio broadcast assistant', 'Field seismologist',\n 'Industrial/product designer', 'Metallurgist',\n \"Politician's assistant\", 'Insurance claims handler',\n 'Theme park manager', 'Gaffer', 'Chief Strategy Officer',\n 'Heritage manager', 'Ceramics designer', 'Animator',\n 'Oceanographer', 'Colour technologist', 'Engineer, agricultural',\n 'Therapist, drama', 'Orthoptist', 'Learning mentor',\n 'Arts development officer', 'Biomedical engineer',\n 'Race relations officer', 'Therapist, music', 'Retail manager',\n 'Furniture designer', 'Building services engineer',\n 'Maintenance engineer', 'Aid worker', 'Editor, commissioning',\n 'Private music teacher', 'Scientist, biomedical',\n 'Public relations account executive', 'Dispensing optician',\n 'Advice worker', 'Hydrographic surveyor', 'Geoscientist',\n 'Environmental health practitioner', 'Learning disability nurse',\n 'Chief Operating Officer', 'Scientific laboratory technician',\n 'Records manager', 'Barista', 'Marketing executive',\n 'Tax inspector', 'Musician', 'Therapist, art',\n 'Engineer, automotive', 'Clinical psychologist', 'Warden/ranger',\n 'Surveyor, rural practice', 'Sport and exercise psychologist',\n 'Education administrator', 'Chief of Staff',\n 'Nurse, mental health', 'Music tutor',\n 'Planning and development surveyor',\n 'Teaching laboratory technician', 'Chief Marketing Officer',\n 'Theatre manager', 'Quarry manager',\n 'Interior and spatial designer', 'Lecturer, higher education',\n 'Regulatory affairs officer', 'Secretary/administrator',\n 'Chemist, analytical', 'Designer, exhibition/display',\n 'Pharmacist, hospital', 'Site engineer',\n 'Equality and diversity officer', 'Public librarian',\n 'Town planner', 'Chartered accountant', 'Programmer, applications',\n 'Manufacturing systems engineer', 'Web designer',\n 'Community development worker', 'Animal nutritionist',\n 'Petroleum engineer', 'Information systems manager',\n 'Press photographer', 'Insurance risk surveyor', 'Soil scientist',\n 'Buyer, retail', 'Public relations officer',\n 'Health promotion specialist', 'Psychiatrist',\n 'Visual merchandiser', 'Rural practice surveyor', 'Hotel manager',\n 'Communications engineer', 'Insurance broker',\n 'Radiographer, therapeutic', 'Set designer', 'Tax adviser',\n 'Drilling engineer', 'Fitness centre manager', 'Farm manager',\n 'Management consultant', 'Energy manager',\n 'Museum/gallery conservator', 'Herbalist', 'Osteopath',\n 'Statistician', 'Hospital pharmacist', 'Estate manager/land agent',\n 'Sports development officer', 'Investment banker, corporate',\n 'Biomedical scientist', 'Television/film/video producer',\n 'Nutritional therapist', 'Company secretary', 'Production manager',\n 'Magazine journalist', 'Media buyer', 'Data scientist',\n 'Engineer, civil (contracting)', 'Herpetologist',\n 'Garment/textile technologist', 'Scientist, research (medical)',\n 'Civil Service administrator', 'Airline pilot', 'Textile designer',\n 'Environmental manager', 'Furniture conservator/restorer',\n 'Horticultural consultant', 'Firefighter',\n 'Geophysicist/field seismologist', 'Psychologist, clinical',\n 'Development worker, international aid', 'Sports administrator',\n 'IT consultant', 'Presenter, broadcasting',\n 'Outdoor activities/education manager', 'Field trials officer',\n 'Social research officer, government',\n 'English as a foreign language teacher',\n 'Restaurant manager, fast food', 'Hydrogeologist',\n 'Research scientist (medical)', 'Designer, television/film set',\n 'Geneticist, molecular', 'Designer, textile',\n 'Licensed conveyancer', 'Emergency planning/management officer',\n 'Geologist, wellsite', 'Air cabin crew', 'Seismic interpreter',\n 'Surveyor, hydrographic', 'Charity fundraiser', 'Stage manager',\n 'Aeronautical engineer', 'Glass blower/designer', 'Ecologist',\n 'Horticulturist, commercial', 'Research scientist (maths)',\n 'Engineer, aeronautical',\n 'Conservation officer, historic buildings', 'Art gallery manager',\n 'Advertising copywriter', 'Engineer, civil (consulting)',\n 'Oncologist', 'Engineer, materials',\n 'Scientist, clinical (histocompatibility and immunogenetics)',\n 'Investment banker, operational', 'Medical technical officer',\n 'Academic librarian', 'Artist', 'Clinical cytogeneticist',\n 'TEFL teacher', 'Administrator, arts', 'Teacher, adult education',\n 'Catering manager', 'Environmental education officer',\n 'Conservator, furniture', 'Analytical chemist',\n 'Broadcast engineer', 'Media planner', 'Lawyer',\n 'Producer, television/film/video',\n 'Armed forces technical officer', 'Engineer, site',\n 'Contracting civil engineer', 'Veterinary surgeon',\n 'Sales promotion account executive', 'Broadcast journalist',\n 'Dancer', 'Forest/woodland manager', 'Personnel officer',\n 'Industrial buyer', 'Accountant, chartered',\n 'Air traffic controller', 'Careers adviser', 'Information officer',\n 'Ship broker', 'Legal secretary', 'Homeopath', 'Solicitor',\n 'Warehouse manager', 'Engineer, water',\n 'Operational investment banker', 'Software engineer'], dtype=object)"},"metadata":{}}],"execution_count":52},{"id":"54e0b6c7-3472-4db6-8f5b-f1b99bf8a68d","cell_type":"code","source":"df['category'].unique()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:35:20.416881Z","iopub.execute_input":"2026-01-17T19:35:20.417102Z","iopub.status.idle":"2026-01-17T19:35:20.526115Z","shell.execute_reply.started":"2026-01-17T19:35:20.417083Z","shell.execute_reply":"2026-01-17T19:35:20.525410Z"}},"outputs":[{"execution_count":53,"output_type":"execute_result","data":{"text/plain":"array(['misc_net', 'grocery_pos', 'entertainment', 'gas_transport',\n 'misc_pos', 'grocery_net', 'shopping_net', 'shopping_pos',\n 'food_dining', 'personal_care', 'health_fitness', 'travel',\n 'kids_pets', 'home'], dtype=object)"},"metadata":{}}],"execution_count":53},{"id":"f70ae496-67f7-4a72-9835-6265da78bf1d","cell_type":"code","source":"df=pd.read_csv('cleaned.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:35:20.527154Z","iopub.execute_input":"2026-01-17T19:35:20.527739Z","iopub.status.idle":"2026-01-17T19:35:25.233505Z","shell.execute_reply.started":"2026-01-17T19:35:20.527715Z","shell.execute_reply":"2026-01-17T19:35:25.232920Z"}},"outputs":[],"execution_count":54},{"id":"b9e0ed84-3438-4b15-989c-bf43106671f0","cell_type":"code","source":"df.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:35:25.234345Z","iopub.execute_input":"2026-01-17T19:35:25.234586Z","iopub.status.idle":"2026-01-17T19:35:25.249219Z","shell.execute_reply.started":"2026-01-17T19:35:25.234563Z","shell.execute_reply":"2026-01-17T19:35:25.248614Z"}},"outputs":[{"execution_count":55,"output_type":"execute_result","data":{"text/plain":" trans_date_trans_time job age gender_bin \\\n0 2019-01-01 00:00:18 Psychologist, counselling 31 0 \n1 2019-01-01 00:00:44 Special educational needs teacher 41 0 \n2 2019-01-01 00:00:51 Nature conservation officer 57 1 \n3 2019-01-01 00:01:16 Patent attorney 52 1 \n4 2019-01-01 00:03:06 Dance movement psychotherapist 33 1 \n\n category distance_km hour_sin hour_cos day_sin day_cos \\\n0 misc_net 78.60 0.0 1.0 0.781831 0.62349 \n1 grocery_pos 30.21 0.0 1.0 0.781831 0.62349 \n2 entertainment 108.21 0.0 1.0 0.781831 0.62349 \n3 gas_transport 95.67 0.0 1.0 0.781831 0.62349 \n4 misc_pos 77.56 0.0 1.0 0.781831 0.62349 \n\n hours_diff_bet_trans_log amt trans_count_24h amt_to_avg_ratio_24h \\\n0 0.0 4.97 6.0 0.051965 \n1 0.0 107.23 1.0 8.854666 \n2 0.0 220.11 5.0 0.493766 \n3 0.0 45.00 5.0 1.059971 \n4 0.0 41.96 6.0 0.537122 \n\n amt_relative_to_all_time is_fraud split \n0 1.0 0 train \n1 1.0 0 train \n2 1.0 0 train \n3 1.0 0 train \n4 1.0 0 train ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
trans_date_trans_timejobagegender_bincategorydistance_kmhour_sinhour_cosday_sinday_coshours_diff_bet_trans_logamttrans_count_24hamt_to_avg_ratio_24hamt_relative_to_all_timeis_fraudsplit
02019-01-01 00:00:18Psychologist, counselling310misc_net78.600.01.00.7818310.623490.04.976.00.0519651.00train
12019-01-01 00:00:44Special educational needs teacher410grocery_pos30.210.01.00.7818310.623490.0107.231.08.8546661.00train
22019-01-01 00:00:51Nature conservation officer571entertainment108.210.01.00.7818310.623490.0220.115.00.4937661.00train
32019-01-01 00:01:16Patent attorney521gas_transport95.670.01.00.7818310.623490.045.005.01.0599711.00train
42019-01-01 00:03:06Dance movement psychotherapist331misc_pos77.560.01.00.7818310.623490.041.966.00.5371221.00train
\n
"},"metadata":{}}],"execution_count":55},{"id":"4d6896f6-e65d-4987-9001-25d45eb4e856","cell_type":"code","source":"from category_encoders import WOEEncoder\nfrom xgboost import XGBClassifier\ndf['amt_log'] = np.log1p(df['amt'])\n# 4. TEMPORAL SPLIT (75% Train, 25% Test)\ntrain_size = int(len(df) * 0.75)\ntrain_df = df.iloc[:train_size].copy()\ntest_df = df.iloc[train_size:].copy()\n\n# 5. Weight of Evidence Encoding (Fit on Train ONLY to prevent leakage)\nwoe_cols = ['job', 'category']\nencoder = WOEEncoder(cols=woe_cols)\n\n# Fit on training data and target\nencoder.fit(train_df[woe_cols], train_df['is_fraud'])\n\n# Transform both sets\ntrain_encoded = encoder.transform(train_df[woe_cols]).add_suffix('_woe')\ntest_encoded = encoder.transform(test_df[woe_cols]).add_suffix('_woe')\n\ntrain_df = pd.concat([train_df, train_encoded], axis=1)\ntest_df = pd.concat([test_df, test_encoded], axis=1)\n\n# 6. Final Feature Selection\nfeatures = [\n 'amt_log', # Normalized transaction value\n 'age', # User demographic\n 'gender_bin', # Binary demographic\n 'distance_km', # Spatial anomaly indicator\n 'hours_diff_bet_trans_log', # Log-transformed velocity signal\n 'hour_sin', 'hour_cos', # Cyclical daily time\n 'day_sin', 'day_cos', # Cyclical weekly time (ADD THESE)\n 'job_woe', # Risk-encoded profession\n 'category_woe', # Risk-encoded category\n 'trans_count_24h', # Recent transaction burst count\n 'amt_to_avg_ratio_24h', # Deviation from 24h spending norm\n 'amt_relative_to_all_time' # Deviation from long-term spending norm\n]\n\nX_train, y_train = train_df[features], train_df['is_fraud']\nX_test, y_test = test_df[features], test_df['is_fraud']\n\n# 7. MODEL TRAINING: COST-SENSITIVE XGBOOST\n# Calculate scale_pos_weight to handle 0.5% imbalance\nimbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:35:25.249975Z","iopub.execute_input":"2026-01-17T19:35:25.250262Z","iopub.status.idle":"2026-01-17T19:35:27.958927Z","shell.execute_reply.started":"2026-01-17T19:35:25.250242Z","shell.execute_reply":"2026-01-17T19:35:27.958063Z"}},"outputs":[],"execution_count":56},{"id":"b0c0a6f9-4027-4fef-9f8d-408354d830f5","cell_type":"code","source":"from sklearn.model_selection import GridSearchCV\nimport warnings\nwarnings.filterwarnings('ignore', category=UserWarning, module='xgboost') #\n# 1. Define Parameter Grid for Optimization\nparam_grid = {\n 'max_depth': [4, 6, 8],\n 'learning_rate': [0.01, 0.05, 0.1],\n 'n_estimators': [100, 500],\n 'subsample': [0.8],\n 'colsample_bytree': [0.8]\n}\n\n# 2. Setup TimeSeriesSplit\n# This ensures each fold uses a training set that precedes the validation set in time\ntscv = TimeSeriesSplit(n_splits=5)\n\n# 3. Run GridSearchCV\n# Scoring is set to 'average_precision' (PR-AUC) as it is more robust than ROC-AUC for fraud\ngrid_search = GridSearchCV(\n estimator=XGBClassifier(\n scale_pos_weight=imbalance_ratio, \n tree_method='hist', \n device='cuda',\n random_state=42\n \n ),\n param_grid=param_grid,\n cv=tscv,\n scoring='average_precision', \n verbose=1,\n n_jobs=-1\n)\n\n\ngrid_search.fit(X_train, y_train)\n\n# 4. Extract Best Parameters\nprint(f\"Best Parameters: {grid_search.best_params_}\")\nbest_model = grid_search.best_estimator_\n\n# 5. Final Training\n# Train on the entire 75% training set using optimized parameters\nbest_model.fit(X_train, y_train)\n\n# 6. Final Evaluation on 25% Unseen Test Set\ny_pred_proba = best_model.predict_proba(X_test)[:, 1]\n\n# Precision-Recall Analysis\nprecision, recall, thresholds = precision_recall_curve(y_test, y_pred_proba)\n\nprint(f\"Final Test PR-AUC: {roc_auc_score(y_test, y_pred_proba):.4f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:40:03.702353Z","iopub.execute_input":"2026-01-17T19:40:03.702733Z","iopub.status.idle":"2026-01-17T19:42:40.616720Z","shell.execute_reply.started":"2026-01-17T19:40:03.702698Z","shell.execute_reply":"2026-01-17T19:42:40.615746Z"}},"outputs":[{"name":"stdout","text":"Fitting 5 folds for each of 18 candidates, totalling 90 fits\n","output_type":"stream"},{"name":"stderr","text":"/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:06] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\nPotential solutions:\n- Use a data structure that matches the device ordinal in the booster.\n- Set the device for booster before call to inplace_predict.\n\nThis warning will only be shown once.\n\n return func(**kwargs)\n/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:07] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\nPotential solutions:\n- Use a data structure that matches the device ordinal in the booster.\n- Set the device for booster before call to inplace_predict.\n\nThis warning will only be shown once.\n\n return func(**kwargs)\n/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:08] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\nPotential solutions:\n- Use a data structure that matches the device ordinal in the booster.\n- Set the device for booster before call to inplace_predict.\n\nThis warning will only be shown once.\n\n return func(**kwargs)\n/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:09] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\nPotential solutions:\n- Use a data structure that matches the device ordinal in the booster.\n- Set the device for booster before call to inplace_predict.\n\nThis warning will only be shown once.\n\n return func(**kwargs)\n","output_type":"stream"},{"name":"stdout","text":"Best Parameters: {'colsample_bytree': 0.8, 'learning_rate': 0.1, 'max_depth': 8, 'n_estimators': 500, 'subsample': 0.8}\nFinal Test PR-AUC: 0.9978\n","output_type":"stream"}],"execution_count":58},{"id":"e6cbf870-6ac9-48f8-a7c0-481fb7354caa","cell_type":"code","source":"# Select threshold where recall is at least 80% while maximizing precision\nidx = np.where(recall >= 0.80)[0][-1]\noptimal_threshold = thresholds[idx]\n\ny_final_pred = (y_pred_proba >= optimal_threshold).astype(int)\nprint(f\"Optimal Threshold: {optimal_threshold}\")\nprint(classification_report(y_test, y_final_pred))","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:48:41.919274Z","iopub.execute_input":"2026-01-17T19:48:41.919632Z","iopub.status.idle":"2026-01-17T19:48:41.993176Z","shell.execute_reply.started":"2026-01-17T19:48:41.919606Z","shell.execute_reply":"2026-01-17T19:48:41.992463Z"}},"outputs":[{"name":"stdout","text":"Optimal Threshold: 0.9016819596290588\n precision recall f1-score support\n\n 0 1.00 1.00 1.00 461339\n 1 0.96 0.80 0.87 1760\n\n accuracy 1.00 463099\n macro avg 0.98 0.90 0.94 463099\nweighted avg 1.00 1.00 1.00 463099\n\n","output_type":"stream"}],"execution_count":60},{"id":"3491c88c-3d12-4753-bdbf-5523f0954f2d","cell_type":"code","source":"import matplotlib.pyplot as plt\nfrom sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score\n\n# Calculate ROC data\nfpr, tpr, roc_thresholds = roc_curve(y_test, y_pred_proba)\nroc_auc = auc(fpr, tpr)\n\n# Calculate PR data\nprecision_vals, recall_vals, pr_thresholds = precision_recall_curve(y_test, y_pred_proba)\npr_auc = average_precision_score(y_test, y_pred_proba)\n\n# Plotting\nfig, ax = plt.subplots(1, 2, figsize=(16, 6))\n\n# ROC Curve\nax[0].plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (area = {roc_auc:.4f})')\nax[0].plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')\nax[0].set_xlabel('False Positive Rate (Friction)')\nax[0].set_ylabel('True Positive Rate (Fraud Caught)')\nax[0].set_title('ROC Curve')\nax[0].legend(loc=\"lower right\")\n\n# Precision-Recall Curve\nax[1].plot(recall_vals, precision_vals, color='blue', lw=2, label=f'PR curve (area = {pr_auc:.4f})')\nax[1].set_xlabel('Recall (Fraud Caught)')\nax[1].set_ylabel('Precision (Flag Accuracy)')\nax[1].set_title('Precision-Recall Curve')\nax[1].legend(loc=\"lower left\")\n\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:48:48.619211Z","iopub.execute_input":"2026-01-17T19:48:48.619810Z","iopub.status.idle":"2026-01-17T19:48:49.127976Z","shell.execute_reply.started":"2026-01-17T19:48:48.619783Z","shell.execute_reply":"2026-01-17T19:48:49.127164Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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f/489u7di4MHD2L79u2wsrLC1atXpY5IRERElGUtWqh1luPjYdACpalhgZKIKA+6efM1Bg7cg0aNXLF0aXudgiSLk0SUF8lkMjRu3BiNGzfGjBkzcOTIEezbt0/qWERERER6a9ZMhVOn8v74kwAnySEiynP27bsPL68tCAmJxvbtd7B27XWpIxER5SgLCwt4enpi2bJlUkchIiIi0lvqyXKio/N2R5NMFSj379+v1+yIoihi//79WT6OiIiyTqMRMXfuWfj67kdcnAoAULt2UXToUE7iZERERERERJRVISEpRckLF+QSJjG+TBUoZ82ahXbt2mHVqlV48eLFJ/d/9uwZli9fjjZt2mD27NnZDklERB8XE6OEr+8+LFhwXruuZ89KCAjohaJFbSVMRkRERERERPooWzb/TCqUqQfZDx8+jPXr12PdunVYuHAhXFxcULlyZbi6usLBwQGiKCIyMhIvX77ErVu38O+//6JAgQLw8fHBoEGDjPwlEBHlb8+fR2LAgD24ffstAEAmE/DDD80wcmQdjjdJRERERESUSzVvrkZQkLnUMXJEpgqU1tbWGDFiBIYMGYJjx47hyJEjuHr1Kg4dOqR99FsQBJQsWRL16tVDq1at0LJlS5ib549vot70eGyeiCi1s2dfwNd3P969iwcA2NkpsHJlB7RqVUbiZERERERERESZk6WpgMzMzNCmTRu0adMGAKBWqxEZGQkAcHBwgFyet5+HNy72ciKirFu69JK2OOnmVgD+/l3w2WdOEqciIiIiIiIiyrxszVUul8vh5MQPwkREUvnjj/Zo334zSpd2wIoVHVCggKXUkYiIcsTFixc/ul0QBCgUChQtWhRFihTJoVREREREpI9sFSiJiEhajo5WCAjoicKFbWBmlql5z4iI8gQfH59Mj7NbqlQpjB07Fp6enkZORURERGQcUVF5+8lbFiiJiHKJ27ffYMqUo1i1qiOKFLHRri9WzE7CVERE0li9ejXmz58PpVKJXr16oWTJkgCAZ8+eYfv27bC0tMSIESPw8uVLbN26FV9//TVkMhnat28vcXIiIiKizElKSnm9caM5vvgiKeOdczkWKImIcoGDBx9i5MhAxMUl4Ysv9mHXrh6wsOCvcCLKv06dOgULCwts27YNCoVCZ1vfvn3h4+ODa9eu4ZtvvkGfPn3QvXt3rFq1igVKIiIiyjWKF0+ZXPnhw7z9xFze/uqIiHI5URSxcOF5DBq0F3FxyXfLlEo1oqKUEicjIpLWvn370LFjxzTFSQCwsLCAl5cXAgICtMudOnXCo0ePcjglERERkf5q1FBrX8fFCXj/XrosxsYCJRGRiYqNTcKQIQcwZ85Z7bpu3Spg795eKFzYWsJkRETSi4+Px9u3bzPc/ubNG8TFxWmX7ezsIJPx0peIiIhyjxIlRJ3lu3flEiUxvmxdpSmVSly9ehWHDx9GeHi4oTIREeV7ISFR8PLagr177wMABAGYOrUpli3zhJWVucTpiIik16BBA2zYsAHHjh1Ls+3o0aPYsGEDGjRooF13584duLi45GREIiIiomyRy4FWrVTa5b59rSRMY1x6D2C2YcMGLF26FNHR0QCAtWvXolGjRggPD4eHhwe++eYb9OjRw2BBiYjyi/PnX2Lw4L14+zYeAGBrq8Dy5Z5o29ZN4mRERKZj2rRpGDBgAEaOHAlnZ2eUKFECAPDixQuEhYWhePHi+OGHHwAAiYmJ+Pfff9GzZ08pIxMRERFlWdmyGhw5kvw6JibvzuStVw/KnTt3YtasWWjWrBlmzpwJUUzpcurk5ISGDRvi4MGDBgtJRJRfPHwYju7dt2uLk6VLOyAwsA+Lk0RE/1G8eHHs27cP3377LcqWLYs3b97gzZs3KFu2LL799lvs27dP22PSwsICq1atwoABAyROTURERJQ106cn6iz/fz/BPEevHpTr1q1Dq1atsGDBAkRERKTZXqVKFfj7+2c7HBFRflOunBP696+Gdeuuo1mzkli9ugMcHfNuN34iouywsrLCF198gS+++ELqKERERERGYf6fEb7i4gTY2Ynp75yL6dWD8tmzZ2jevHmG2wsUKID3eXlqISIiI/rllxaYPbsltm7txuIkERERERFRPufpmaR9ff9+3pz0T68elPb29un2nPzg4cOHKFy4sN6h8o+8V/Emoqy5e/ctQkKi0Lp1yiPc5uZy+PrWkjAVEVHu8ObNG+zYsQO3b99GdHQ0NBqNznZBELB+/XqJ0hEREREZRurZux89kqFZM7WEaYxDr7Jr8+bNsW3bNkRFRaXZ9uDBA2zfvh3u7u7ZDpevCHl3oFMiSl9w8CN4em7Bl1/ux61bb6SOQ0SUq9y9excdOnTAsmXL8Pz5c1y4cAERERF49uwZ/ve//+HVq1c646QTERER5VZ9+qT0oDTTe7pr06ZXgXL8+PFQq9Xo2LEjfvvtNwiCgICAAEycOBHdu3eHk5MTRo4caeisRER5giiKWLz4fxgwYA9iYpSIi1Ph11/PSh2LiChXWbBgAaytrREUFIR169ZBFEV89913OHHiBBYtWoTIyEhMnDhR6phERERE2VaoUN6/6apXgdLZ2Rm7du1Cs2bNEBgYCFEUsWfPHhw7dgwdOnTAtm3b4OTkZOisRES5XlxcEoYPP4iZM0/jQ8eezp3LY9kyT2mDERHlMleuXEHv3r1RvHhxyGTJl7Qfekx6eHjAy8sL8+bNkzIiEREREWWS3h1DCxYsiJkzZ2LmzJkIDw+HRqOBk5OT9gKRiIh0hYZGY+DAvbh+PUy7bsqUJhg/vj4EDvNARJQlGo0GhQoVApA8PrpcLteZpLFChQrYuXOnROmIiIiIKCv0qiZOmTIF169f1y47OTmhUKFC2uLkjRs3MGXKFMMkJCLKAy5eDEWbNhu1xUkbG3P4+XXChAkNWJwkItKDq6srQkJCAAAymQyurq44d+6cdvuVK1dgZ2cnVTwiIiIiygK9CpS7d+/G8+fPM9weEhKCgIAAfTMREeUpO3feQdeu2/HmTRwAoGRJBxw44A1Pz3ISJyMiyr2aNm2KoKAg7XKfPn2wfft2DBo0CAMHDkRAQAA6duwoYUIiIiIiyiyjzP3z+vVrWFpaGuPURES5TpEiNlCrNQCAJk1csXq1FwoWtJI4FRFR7jZ8+HB06NABSUlJMDc3x8CBAxEXF4e///4bMpkMI0eOxLBhw6SOSURERESZkOkC5eHDh3HkyBHt8rZt23D2bNpZZ6Ojo3H27FlUrVrVMAmJiHK5Zs1K4pdfWuL+/Xf45ZcWMDeXSx2JiCjXc3BwgIODg3ZZEASMHDkSI0eOlDAVERERkXGdOCFH//5JUscwuEwXKB89eqR9jEYQBFy/fh23bt3S2UcQBFhbW6NevXqYPHmyYZMSEeUSoaHRKFbMVmdsSV/fmtIFIiIiIiIiolxLrU55/fJl3pycOtMFymHDhmkfk6lYsSJmzpwJLy8vowUjIsqNjhx5gmHDDmLs2HoYO7a+1HGIiPIMfSZgFAQBs2bNMkIaIiIiopzTuLFK+7pQIY2ESYxHrzEo7969a+gcRES5miiKWLbsMn766RQ0GhEzZ55G9erOaNGilNTRiIjyhAsXLmT5mNQ92YmIiIhyKzu7lNdBQeYAEiTLYixGmSSHMkuUOgARGUBCggoTJx7Gtm23tes8PMqhbt1iEqYiIspbjh49KnUEIiIiIknY2OT9+pHeBcoTJ07Az88Pt2/fRnR0NEQx7Tfrzp072QqXv/AOP1Fu9OpVDL74Yi8uX36lXTdxYkNMnNgIMhl/romIiIiIiCh7bG2lTmB8eo2sGRwcjOHDh+Pt27fw9PSERqNBhw4d4OnpCUtLS1SoUAGjRo0ydFYiIpNy9eortG27UVuctLY2w5o1HfHtt41ZnCQiMoKFCxdyqCEiIiLKl6pVS5kpJyws733e1KtAuWLFClSvXh0BAQEYM2YMAKB79+5YsGAB9u3bhzdv3sDV1dWgQYmITMmOHXfQqdNWvHoVCwBwdbXDvn3e8PIqL3EyIqK8a+XKlXjw4IF2OSIiApUqVcK5c+ckTEVERERkfDdvyrWvt241lzCJcehVoHz06BE8PT0hl8thZpb8lLhKlTyjkKurK/r06YNVq1YZLiURkQlJTFRh0aILSExMvoPVoIELgoP7oVq1IhInIyLKf9IbZoiIiIgor/H0TNK+fvRIr3KeSdPrK7K0tIS5eXK11t7eHgqFAm/evNFuL1SoEEJCQgyTkIjIxFhYmGHDhs6wt7eAj0817NzZA4ULW0sdi4iIiIiIiPKonj1V2tf29nnvBq1ek+SUKVMGjx490i5XqlQJe/bsQadOnaBWq7F//34UK8bZa4ko7ypb1hHHj/vAxcUOgpD3xv8gIiIiIiIi01GkiEbqCEalV4GyTZs28Pf3x6RJk6BQKDB8+HCMHDkS9erVAwDEx8dj1qxZBg1KRCSV48efYdmyS1i/vjMsLVN+bbq62kuYiogof3r58iX++ecfAEB0dDQA4NmzZ7C3T/93cpUqVXIsGxERERHpR68Cpa+vL3x9fbXLLVu2hL+/P/7++2/I5XJ8/vnnaNiwocFCEhFJQRRFrFp1FdOmnYBGI+Lrrw9h6dL27DFJRCShxYsXY/HixTrrZsyYkWY/URQhCALu3LmTU9GIiIiISE96FSjTU7duXdStW1e7HBMTA1tbW0OdnogoRyUmqjBp0hFs2vSPdl1UVCISE9U6vSiJiCjnzJ49W+oIRERERGQEBv+U/e7dO6xfvx6bN2/GxYsXDX16IiKjCwuLxeDB+3DxYqh23YQJDTBpUmPIZOw9SUQkla5du0odgYiIiIiMIEsFynfv3iEgIADPnz+Hg4MD2rZti6pVqwIAwsLCsGzZMuzevRuJiYmoX7++UQITERnTjRthGDBgD0JDYwAAlpZyLF7cDl27VpQ4GREREREREVHelOkC5aNHj9C/f3+8f/8eopg8nfnq1avx66+/QhAEfP/991AqlWjbti18fX21hUsiotwiIOAexo0LRny8CgBQvLgt1q/vjBo1nCVORkREK1asQL9+/bI8hFBMTAw2btyIYcOGGSkZEREREWVXpguUixcvRlxcHKZPn466desiJCQEs2fPxqxZsxAdHY2WLVti4sSJKFGihDHz5inC/xd6iUh6hw8/xtChB7TLdesWw7p1neDsbCNhKiIi+mD//v1YvXo1OnToAA8PD9StWxdyuTzdfZOSknDx4kUEBgYiMDAQxYoVY4GSiIiIyIRlukB56dIl9OnTB97e3gCAcuXKQS6XY8iQIejatSsHLc82jmtHJKUWLUrj889L4cSJZ/D2roJff20FCwtOhkNEZCr27t2Lffv2Ye3atdiyZQsUCgU+++wzuLq6wsHBAaIoIjIyEiEhIXjw4AFUKhXKly+PH374AZ06dZI6PhERERF9RKY/fb9//x4VKlTQWVexYvKYbK1btzZsKiKiHGZmJsOqVR2wf/8D9OtXFYLAmwZERKZEEAR06tQJnTp1wu3bt3H48GFcu3YN169fx/v37wEABQoUgJubG4YMGYJWrVqhSpUq0oYmIiIiMoIVKxT4+edEqWMYVKYLlBqNBmZmurt/WLa2tjZsKiIiIzt16jns7S10xpcsUMAS/ftXkzAVERFlRuXKlVG5cmWpYxARERHlGDu7lNcFC2qkC2IkWXp+8datW7CwsNAux8bGQhAEXL58GdHR0Wn2b9u2bfYTEhEZkCiKWLv2OqZOPQZnZxsEB/fjOJNERERERERk0ipUSClKOjrmvTlNslSgXL9+PdavX59m/dKlS9OsEwQBd+7c0T8ZEZGBKZVqTJlyFP7+NwEAoaExWLXqCqZObSZxMiIiIiIiIqKMCQLg4CAiMjJvDkeW6QLlhg0bjJmDiMio3ryJw+DB+3DhwkvtutGj62LKlCYSpiIiIiIiIiLKmocP5RDF5KJlXpHpAmX9+vWNmYOIyGhu3nyNgQP3ICQkeSgKCws5Fi5sg549OX4ZERERERER5Q6pe0+Ghgpwcck7j3pn6RFvIqLcZt+++xgzJghxcSoAQNGiNvDz64TatYtJnIyIiIiIiIhIP0ql1AkMSyZ1ACIiY1m48Dx8ffdri5O1axfF33/3Y3GSiIiIiIiIcp3u3ZOkjmA0LFASUZ5VuLC19nXPnpUQENALRYvaSpiIiIiIiIiIiP6Lj3gTUZ7l41Mdd+++Q/Hidhg5sg6EvDSCMBFRPieKIrZu3YodO3bgxYsXiIqKSrOPIAi4ffu2BOmIiIiIKCtYoJRU3hnMlMgUvHwZDRcXO511M2e2lCgNEREZ07x58+Dn54dKlSqhU6dOcHBwkDoSEREREemJBUoTIbJnF1G2+Pldx/ffH8Py5Z7w8iovdRwiIjKygIAAtG3bFosXL5Y6ChEREVGOmz3bAitXJkgdw2D0HoMyNDQU06ZNQ7t27VC/fn1cvHgRABAeHo5ffvlF78dpHj16hC+++AI1a9ZEkyZNMG/ePCizODWRn58fKlSogGHDhumVgYhyj6QkNb799gi+/fYIkpI0GDMmCA8fhksdi4iIjCwhIQGNGzeWOgYRERFRjhFTPYgbEGCO69fzztQyen0lDx8+RNeuXREYGAhXV1dER0dDpUqeJdfJyQmXL1/GX3/9leXzRkZGYuDAgUhKSsKSJUswYcIEbNu2DXPmzMn0Od68eYM//vgDBQsWzPL7E1Hu8u5dPHr12gk/v+vadQMG1EDp0gWkC0VERDmiUaNGuHnzplHOzRvmREREZIr+O4v3q1d552lcvQqUv/76K+zs7BAcHIxff/0Voqg7luLnn3+Oy5cvZ/m8W7ZsQWxsLJYuXYpmzZqhR48e+Oabb7BlyxaEhYVlOpu7uzvKli2b5fcnotzj9u03aNduI86cCQEAKBRy/P57O/z00+cwM8s7d5GIiCh906dPx/Xr17F8+XJEREQY7Ly8YU5ERESmqk0bNXx9s3bTNLfQ61P8xYsX0adPHzg5OaU7K27x4sUzXVBM7eTJk2jUqBEKFCigXefh4QGNRoMzZ8588vhLly7h8OHD+Prrr7P83kSUewQE3EW7dpvw/HnyjK1Fithg9+6e8PauInEyIiLKKe3bt8eLFy+wePFiNG7cGDVr1kTt2rV1/tSpUyfL5+UNcyIiIjJlzs4pnQS3bTOXMIlh6TVJjiiKsLS0zHB7eHg4FApFls/7+PFjdO/eXWedvb09ChcujMePH3/0WLVajZ9//hnDhw9HkSJFsvzeRGT6RFHE/PnnMGtWyg2LGjWcsX59JxQvbveRI4mIKK9p165dujfKsyujG+bTp0/HmTNn0K1bt48e/+GGeVBQEG+aExERkcHFxaW8dnAQM94xl9GrQFm5cmWcOHEC/fr1S7NNpVLhwIEDqFGjRpbPGxUVBXt7+zTrHRwcEBkZ+dFjN23ahPj4eAwaNCjL7/sxxnxUNPVFtVwuA+R8LNVUyP+/LeRsE5Py6lUMli1LGT6ie/eK+P33drCyyjt3jXIr/syYLraNaWK7ZF9WHrnOCt4wJyIiIlPWsaMKv/1mAQCQ5aFLSb0KlEOHDsXw4cMxffp0dOjQAQDw7t07nD17FsuXL8fjx48xbdo0gwb9mHfv3uH333/H3Llz9eq5mRGZTICjo43BzpeGuVz70t7OCrAw4nuRXuztraSOQKk4Otpg585eaN9+I2bMaIFJk5oYpfcM6Y8/M6aLbWOa2C6mJ7/dMAdYMDdVbBfTxbYxTWwX08W2MSxz85Tvo0wm6H2dYGrtoleB8vPPP8fs2bMxa9YsbNu2DQDwzTffQBRF2NraYu7cuahXr16Wz2tvb4/o6Og06yMjI+Hg4JDhcYsXL0aFChVQt25dREUlj0mnUqmgUqkQFRUFa2trmJll/UvVaERERcV9ekc92Sap8aHfV1R0PNRxejUHGYFcLoO9vRWiouKhVmukjkOp1KlTFA8fjoGDgwLv3xvv55Oyhj8zpottY5pyql3s7a1M5qLTGGJiYuDn54fjx48jNDQUQPJY6C1atMCgQYNga2ubY1ly7Q3zVFgwN01sF9PFtjFNbBfTxbYxjNT3US0szOHomL0nCk2lXfSuiHXp0gVt27bF2bNn8fTpU2g0GpQsWRJNmzbV+2LQzc0tzaMz0dHRePPmDdzc3DI87smTJ7h48WK6RdF69eph1apVaN68uV6ZVCrjfWhIPfu5Wq2BSuQHR1OjVmuM+m+APu6vv27i3LkQLF3aXqenZIkSDoiIiGXbmCD+zJguto1pYrvoLywsDP369UNISAjc3NxQu3ZtAMnXhUuXLsWePXuwcePGLD9qnd9umAO8kWGq2C6mi21jmtgupottY1hRUTIAyUXFxMQkREToN6u3qd0w13uSHEEQYG1tjdatW+tzinQ1b94cy5cv13m0JigoCDKZDE2aNMnwuO+++057IfjBrFmzYGlpia+++goVKlQwWEYiMj6VSoNp045j9eprAIDPPnPC+PENpA1FREQmZf78+Xj79i1WrFiBzz//XGfbiRMnMH78eCxYsABz587N0nnz2w3z1FgwN01sF9PFtjFNbBfTxbYxDJUq5bVGI2b7e2oq7aJXgbJZs2Zo3749PDw8UKdOHYOF8fb2hr+/P0aNGoVhw4YhLCwM8+bNg7e3N5ydnbX7DRw4EKGhoTh06BAAoFKlSmnOZW9vD2trazRowKIGUW4SERGPL788gFOnnmvXvX0bp70xQkREBACnTp3CwIED0xQngeThiHx8fLRDEWUFb5gTERER5Ty9CpT169fHzp07sXHjRjg7O8PDwwMeHh6oXr16tsI4ODhg/fr1+PnnnzFq1CjY2NigR48emDBhgs5+Go0GarU6W+9lEsS8Mx08kSHcvfsWAwbswdOnyZMQmJvLMG9eK/TrV03iZEREZGri4+NRsGDBDLcXKlQI8fHxWT4vb5gTERER5Ty9CpQLFy5EQkICjh07hsDAQGzevBl+fn5wcXGBp6cnPDw80r1Iy4yyZcvCz8/vo/v4+/t/8jyZ2ce0sGcY5W/BwY8wYkQgYmKSx88oVMga69Z5oUEDF4mTERGRKSpbtiwOHDgAb2/vNJPSJCUl4cCBAyhbtmyWz5vvbpgTERFRrnX7tlzqCAaj9yQ5lpaW2p6TcXFxOHr0KA4ePAg/Pz+sWrUKpUqVQlBQkCGzElEeJIoiliy5iJkzT2s7FVetWhgbNnSGq6v9xw8mIqJ8a8iQIZgwYQJ69uyJvn37onTp0gCSx4LcsmUL7t27h0WLFul17vx7w5yIiIhMXeqRzy5dkkOjAWSfnoPG5OldoEzN2toaHTt2RMuWLbF7924sWrQIz549M8SpiSiPW778Cn755bR2uVOn8li8uB1sbMwlTEVERKbOw8MD8fHxWLBgAaZPn64dp1gURRQsWBCzZs1C+/btJU5JREREZFjlyulOaHPrlgzVq0s/yU12ZbtAGR8fj6NHjyIwMBCnTp2CUqlEyZIl4eHhYYh8RJTH9etXFX/9dRMPHoRjypQmGD++PifDISKiTOnWrRs6deqEW7duITQ0FABQvHhxVK1aFWZmBrkPT0RERGRSLC11lw8eNEP16kppwhiQXlduiYmJOH78OA4ePIiTJ08iPj4eLi4u8PHxgaenJypXrmzonESUR9nbW8DfvzPu3XsHD49yUschIqJcxszMDDVr1kTNmjWljkJERESUI/r2VWLTpuQxuK2tJQ5jIHoVKBs2bIiEhAQUKVIEvXr1gqenJ2rUqGHobESUB+3ceQdNmpRA0aK22nVubo5wc3OUMBUREZm6ixcvAgDq1auns/wpH/YnIiIiyivatlVj0yapUxiWXgXKbt26wcPDA3Xr1jV0HiLKo1QqDX766RSWL7+MWrWcERDQC1ZWHGeSiIgyx8fHB4Ig4Pr161AoFNrljIiiCEEQcOfOnRxMSURERET60KtA+cMPPxg6BxHlYe/fJ2DYsAM4dix58qyrV8Owd+8D9O7N4SCIiChzNmzYAABQKBQ6y0RERESU+2WqQMlHaohIXw8fhsPHZw8ePYoAAJiZyTBrVksWJ4mIKEvq16//0WUiIiIiyr0yVaDkIzVEpI8jR55g2LCDiIpKBAA4OVli7VovNG5cQuJkRESUV7148QJKpRJly5aVOgoRERERZVKmCpR8pIaIskIURfz552X8/PMpaDQiAKBSpULYsKEzSpVykDgdERHlBRs2bMDVq1exaNEi7bopU6YgICAAAFCpUiWsWrUKBQsWlCghERERkfG9epVxB8LcJFMFSj5SYyyi1AGIDE6jETFmTBC2b0/pQe3pWQ5Ll7aHra1CwmRERJSXbN++HQ0aNNAunzp1Crt370bv3r1Rvnx5LF68GEuXLsX06dMlTElERERkeGKqctLq1Qr89FMizPSaZcZ0yPQ5aMCAATh37lyG28+fP48BAwboHSpf+sgj80S5iUwmwMnJSrs8cWJDrF3rxeIkEREZVGhoqM5j3IGBgXB1dcWMGTPQr18/9OvXDydOnJAwIREREZFxVKmi1lk+elQuURLD0au++r///Q89e/bMcHt4eHimJ9Ihorxn+vTmePEiCt27V4SXV3mp4xARUR4kirpPopw5cwatWrXSLru4uODt27c5HYuIiIjI6EqX1r0OiovL/Z3e9OpBCeCjk+Q8e/YMNjY2+p6aiHKZly+jdZbNzGTw8+vE4iQRERlN6dKlcfjwYQDJj3e/fv0azZs3125/9eoV7O3tpYpHREREZFQ//5wgdQSDynQPyt27d2P37t3a5WXLlmHbtm1p9ouOjsa9e/d0LhCJKG9SqzWYOfM01qy5hr17e6NGDWepIxERUT7h6+uLr7/+GvXq1UN8fDzKli2Lpk2bardfuHABFStWlDAhERERUc6Ii5M6QfZlukAZHx+PiIgI7XJsbCxksrQdMK2treHt7Y1Ro0YZJiERmaSoqEQMH34Qhw8/AQAMHLgHJ08OhL29hcTJiIgoP+jQoQMKFCiAEydOwN7eHn379oXZ/48O//79ezg4OKBz584SpyQiIiIyDpUq5bW/vwJ9+6oy3jkXyHSBsm/fvujbty8AwN3dHd9//73OOD9ElH88fhwBH589ePAgHAAglwsYM6Y+7Ow4EQ4REeWcJk2aoEmTJmnWFyhQAEuXLpUgEREREVHOKFgwZRzKsmU1EiYxDL0myTl69KihcxBRLnH8+DMMGbIfkZGJAABHR0usXt0RzZqVlDgZERERERERUf5Qr5760zvlIpkqUIaGhgIAihcvrrP8KR/2J6LcTxRFrFp1FdOmnYBGk3ynpmLFgli/vjPKlCkgbTgiIsrz3N3dIZPJEBgYCHNzc7i7u3900kYgeVLHDxPpEBEREeVVO3aYIbc/PJKpAuWHC8Dr169DoVBk6oIQAO7cuZPtgEQkvcREFSZNOoJNm/7Rrmvfviz+/NMDtrZ8rJuIiIyvfv36EARBOwb6h2UiIiKi/MgsVUVPoxHw+LEANzcx4wNMXKYKlLNmzYIgCDA3N9dZJqL84c6dt9i+PeWGw4QJDTBpUmPIZPw9QEREOWPOnDkfXSYiIiLKT0qW1C1GrlihwNy5iRKlyb5MFSi7dev20WUiyttq1iyKOXPcMXXqcfz2W1t07VpR6khERERERERE+ZYgABMnJmL+fAsAwLp1ubtAKTPkyZRKJeLi4gx5SiIyET4+1XH27BcsThIRkUnYv38/Jk+enOH2KVOm4ODBgzmYiIiIiChnDRyYpH1ds2bunjRHrwLlgQMHMGvWLJ11S5cuRe3atVGvXj2MGvV/7d11WFTp2wfw78zQHSqshIoKdisqioqdKIpY2LWytu6qu6+uua75U7Bb1l47wEDXwFi7u0WlREqpmfP+wTIy0jHMAN/PdXnJPHPOmXvmgTnPuc8TXoiNjc2XAImoYMlkAv74IxALFlxM85yVlaEKIiIiIkpr8+bN0NLKeB5kbW1tbNmypQAjIiIiIipYFhaFd87J7+UqQblx40Z8/fpV/vjGjRvw8fFBkyZNMGDAAJw/fx6rV6/OtyCLB87lR6oXE5OAgQMPYenSK1i06DIOH36i6pCIiIjS9fLlS1SuXDnD5ytVqoQXL14UYEREREREBU8iKRpJymzNQfm9t2/folu3bvLHR44cQYkSJeDj4wMNDQ0IgoATJ05g4sSJ+RYoESnXq1ef0b//QTx6FA4AEItFCA3llA1ERKSeBEFAdHR0hs9HRUUhKSmpACMiIiIiUp1btySqDiFPctWDMiEhAdra2vLHgYGBcHZ2hsZ/a5yXL18eHz9+zJ8IiUjpzp9/g7Ztt8uTk8bG2tixoxsGD66l2sCIiIgyUKVKFRw5cgQJCQlpnktISMDhw4cz7WFJREREVBRIpd9G5MYX3jVycpegtLa2xsWLyfPT3b17F69fv0bTpk3lz4eHh0NPTy9/IiQipREEARs23ELPnnsREREHAKhY0QzHj/dBixZlVRscERFRJoYNG4anT5+if//+OH36NN6+fYu3b98iICAAnp6eePbsGYYPH67qMImIiIgKTFRU4Z0+MFdDvD08PDB37lw8e/YMwcHBsLS0RIsWLeTP37hxAxUqVMi3IIko/yUkSDF16mn4+t6Vl7VqVQ6rV3eAkZF2JnsSERGpXrNmzTB37lzMnTsXXl5e8nJBEKCvr4/Zs2ejefPmqguQiIiIqAA4OSUhMDBX6T21kqt34OnpCW1tbZw9exbVqlXD0KFDoaOjAwD4/PkzQkND0bt373wNlIjy1/fJyZ9+qodff20CiSRXHauJiIgKnJubG9q0aYMLFy7g7du3AABbW1s4OTnBwMBAxdERERERKZ+hYTFeJAcAevbsiZ49e6YpNzExwb59+/IUFBEp35gxDXD06FPExiZiyZLWcHevouqQiIiIcszAwADt2rVTdRhEREREKhcXp+oIci/PfUCfPXuGoKAgAICVlRWHdhMVEmXKGGPTpi7Q1pagTp0fVB0OERFRjkmlUvj7++PKlSsIDw/HmDFj4ODggOjoaFy6dAl16tRBiRIlVB0mERERkdJ8/vxt3snAQAl69UpSYTS5l+sE5alTpzB//nx5cjKFtbU1pkyZgpYtW+Y5OCLKHzKZgM2bb8PDoyr09TXl5Y0aWaswKiIiotyLiorC0KFDcefOHejp6eHr16/o168fAEBPTw9z5sxB165dMWHCBBVHSkRERKQ8WlqqjiB/5GqyubNnz2LMmDEAgPHjx8PHxwc+Pj4YP348BEHA6NGjce7cuXwNlIhyJyYmAUOGHMaUKacxduxxCELRmJ+CiIiKt0WLFuHp06fYsGEDTp06pXB+k0gkaNu2Lc6ePavCCImIiIiUr3Pnwtlj8nu56kG5cuVKODg4YNu2bdDT05OXt2zZEv369UOfPn2wYsUKODs751ugRJRzb95Eon//g3jwIAwAcOTIU1y79gH165dWcWRERER5ExAQAE9PTzg5OSEiIiLN82XLlsX+/ftVEBkRERER5VSuelA+fvwYXbt2VUhOptDT00O3bt3w+PHjPAdX5LEnGynRxYtv0bbtdnly0tBQC9u2dWVykoiIioTo6GhYW2c8VUlSUhKkUmkBRkREREREuZWrHpTa2tqIjIzM8PnIyEhoa2vnOqjiSZT1JkTZtGXLHUydehpJSTIAgJ2dCXx9u6JiRTMVR0ZERJQ/bG1tcf/+/QyfDwwMRPny5QswIiIiIiLVkkoLb24pVz0oHR0dsXXrVty8eTPNc7dv34avry8aNWqU5+CIKGcSE6X4+ecATJ58Sp6cbNGiDPz9+zA5SURERUqPHj2wd+9eHDt2TD7/pEgkQkJCApYuXYrz58/Dw8NDxVESERERKVfqwbmrV2tmvKGay1UPysmTJ6NXr17o06cPatSogXLlygEAXr58iTt37sDc3ByTJk3K10CJKHPR0fHo3/8gAgPfyctGjqyL6dObQkMjV/ciiIiI1NaAAQPw7NkzTJgwAUZGRgCASZMm4fPnz0hKSoKHhwfc3d1VHCURERGRchkYfMtQVqwoU2EkeZOrBKWNjQ0OHTqENWvW4Ny5czh27BgAoHTp0ujfvz+GDx8Oc3PzfA2UiDKnp6cJPb3kuyVaWhIsWtQKvXpVVXFUREREyiESiTBnzhx07doVx48fx+vXryGTyWBra4v27dujfv36qg6RiIiISOkaN/4257ao8I7wznmCUiqV4tOnTzAyMsK0adMwbdo0ZcRFRDkkkYixenUHDBx4CFOmOHExHCIiKrK+fv2KyZMno02bNujSpQvq1aun6pCIiIiIKA+yPe5TEAQsWbIE9evXh7OzM+rWrQsvLy98/vxZieERUUYEQcD799EKZYaG2ti7153JSSIiKtJ0dXVx8eJFxMXFqToUIiIiIsoH2U5Q7tu3D2vXroWRkRHatGkDe3t7BAQEYOrUqcqMj4jSERubiOHDj6Jt2+348CE66x2IiIiKmLp166a7YCMRERERFT7ZTlDu2LEDVapUgb+/P5YtW4Z9+/ahX79+OHv2LD59+qTMGIkolXfvotClyy4cPPgEwcGxGDToMGQyIesdiYiIipDp06fj+vXrWLp0KT5+/KjqcIiIiIhU7vDhYrCK99u3bzFq1Cjo6OjIy/r06YO//voLr1+/hpmZmVICJKJvLl8OwuDBhxEW9gUAYGCghQkTGkIsLsQz4RIREeVCly5dIJVKsXbtWqxduxYSiQRaWloK24hEIly/fl1FERIREREpn7a2qiPIH9lOUEZGRqZJQpqamgIA4uPj8zcqIkpj27a7+PnnACQmygAAZcsaw9e3KxwczFUcGRERUcFr27YtRIV5qUoiIiKifGBu/m1Epa5u4R1dmaNVvNkIJCp4SUkyTJ/+D9avvyUva9rUFuvXd4Spqa7qAiMiIlKh+fPnqzoEIiIiIrVQubIUDx9KVB1GnuQoQbl48WKsWbNG/lgmS+7J9dtvv0FXVzFRIhKJcOjQoXwIkaj4ioj4iqFDj+L8+TfysmHDamPmzGbQ0Mj2FLJERERFRnx8PAICAvDu3TuYmpqiWbNmKFWqlKrDIiIiIlK5r19FEASgMPYvzHaCsn79+umWc+7JvCi8XW+pYJw790aenNTUFGPBgpbo27e6iqMiIiJSjfDwcPTq1Qvv3r2DICS3o3R1dbFixQo0btxYxdERERERqcbXr98yko8eiVG5skyF0eROthOUvr6+yoyDCmN6m5TO1dUBN258xJ49D7FpU2c4OlqpOiQiIiKVWblyJYKCgjBw4EA0bNgQr1+/xsqVKzF9+nScOnVK1eERERERqcSrV99GWH76VDjzSzka4k1EBW/69Kb48ce6sLQ0UHUoREREKnXhwgW4urril19+kZeVKFECEydOxIsXL2BnZ6fC6IiIiIhUY/ToeHh7F+7lvDmJHZGa+Po1ESNHHsO+fY8UyiUSMZOTREREAD58+IC6desqlNWtWxeCICA8PFxFURERERGpVlEYlMselERq4P37aAwYcAi3bwfj2LGnKF/eFDVrWqg6LCIiIrWSkJAAbW3F3gFaWloAgKSkJFWERERERET5gAlKIhW7du09Bg48jJCQWACAWCyW/0xERESKgoKCcP/+ffnj6OhoAMDr169hZGSUZvuqVasWWGxERERElDtMUBKp0M6d9zFp0ikkJEgBALa2Rti61RVVqpRUcWRERETqadmyZVi2bFma8pkzZyo8FgQBIpEIDx8+LKjQiIiIiFQuPLxwjvdmgpJIBZKSZJg16zxWr74uL2vc2BobNnSGubmuCiMjIiJSX3/88YeqQyAiIiJSOzEx35KSJ05ooEuXwjf1TZ4SlMHBwbh69SrCw8PRtm1bWFpaQiqVIjo6GoaGhpBIJPkVJ1GRERkZh+HDj+LMmdfysoEDa2Lu3ObQ1OTfDBERUUa6deum6hCIiIiI1E6ZMjL5zyVKCCqMJPdylaAUBAHz58/Htm3bkJSUBJFIBHt7e1haWuLLly9wcXHBmDFjMHDgwHwOl6hwEwQB/fodxJUrQQAADQ0x5s1rgYEDa6o4MiIiIiIiIiIqjGrXlmW9kZoT52an9evXY+vWrRg8eDA2bdoEQfiWnTU0NESbNm1w4sSJfAuSqKgQiUT49dcm0NQUw8xMB3//3Z3JSSIiIiIiIiLKF0Lh7ECZuwTlnj170LVrV0yYMAGVKlVK87yDgwNevXqV19iIiqSGDa2wenUHHD/eF40b26g6HCIiIiIiIiIqIlat0lJ1CLmSqwTlhw8fULt27Qyf19XVRUxMTK6DIioq4uKSsGHDTchkircwOne2R5kyxiqKioiIiIiIiIiKCnPzbzmH1PNRFia5moPS3NwcHz58yPD5+/fv44cffsh1UMVHIe13S9ny8WMMBg48hBs3PiIs7Ct++aWxqkMiIiIiIiIioiKmQoVvSUkdncKZa8pVD8rWrVtj586dePv2rbxMJEpe0vzChQvYv38/2rVrlz8RFhuirDehQuPmzY9o02Ybbtz4CABYteo6goPZq5iIiIiIiIiI8pdIBBgYFM7EZIpc9aAcM2YMrly5AldXV9SrVw8ikQjr1q3DsmXLcOvWLVSuXBkjR47M71iJCoU9ex5gwoSTiI+XAgCsrQ2xZYsrLCwMVBwZEREREREREZH6yVUPSkNDQ+zevRtDhw5FcHAwtLW1cfXqVURHR8PLywvbt2+Hrq5ufsdKpNakUhlmzToHLy9/eXLS0dEKx4/3RfXqpVQcHRERERERERGRespVD0oA0NHRwahRozBq1Kj8jIeoUIqKisfIkcdw6tRLeZmnZ3X88YcLtLQkKoyMiIiIiIiIiEi95TpBSUTJ3r6NQq9e+/D06ScAgEQiwpw5LTB4cE353KxERERERERERJS+XCUop06dmuU2IpEI8+bNy83hiQoVU1MdaGiI5D+vX98JTZvaqjgqIiIiIiIiIqLCIVcJyitXrqQpk8lkCA0NhVQqhZmZGeegpGLDwEALW7d2xdixx7F0aRuUK2ei6pCIiIiIiIiIiAqNXCUoT58+nW55YmIidu3ahS1btmDjxo15CoxIXcXHJ+Hz53hYWOjLy8qUMcaBAz1VGBURERERERERFXdfvxbOqeZytYp3RjQ1NdGvXz84OTlh9uzZ+XloIrUQHBwLN7e/0bv3PsTGJqo6HCIiIiIiIiIiuTdvxJBKVR1FzuVrgjJFpUqVcPXq1Vzt+/z5cwwaNAi1atWCk5MTFixYgISEhEz3CQkJwYIFC+Dq6oratWvD2dkZEydORFBQUK5iIErPnTvBaNt2G65efY9790Lxyy8Bqg6JiIiIiIiIiAgxMd96Tr5/X/h6USolQXnx4sVczUEZGRmJAQMGIDExEd7e3hg/fjx2796N+fPnZ7rf/fv3cfLkSbRv3x4rV67ElClT8OTJE7i7u+PTp0+5fRtEcgcOPEbnzrvw/n0MAKB0aQMMG1ZbxVEREREREREREQF2djL5z4KgwkByKVdzUPr4+KRbHh0djatXr+LBgwcYPnx4jo+7c+dOxMbGwsfHByYmJgAAqVSKmTNnYsSIEbCwsEh3v7p168LPzw8aGt/eTp06ddC8eXMcOHAAgwcPznEsBaIw/sYUMzKZgD/+CMTSpd8WhqpfvzQ2buysMAclERERFR3Pnz/HnDlzcPPmTejr68PV1RXjxo2DlpZWhvuEhIRg8+bNCAwMxJs3b2BoaIj69etjwoQJsLKyKsDoiYiIqDiqWVOKFy+U0g+xQORrgtLY2Bg2NjaYOXMmevbM+YIh586dQ6NGjeTJSQBo3749ZsyYgcDAQLi5uaW7n5GRUZoyS0tLmJmZISQkJMdxqEbh635b1EVHx8PT8wD8/J7Ly3r3rooFC1pCWztXfzpERESk5lJG9JQtWxbe3t4IDg7G/PnzERcXh+nTp2e4X8qInu7du6NmzZqIiIjAqlWr4O7ujiNHjsDMzKwA3wURERFR4ZKrLMujR4/yOw4AwIsXL9C9e3eFMiMjI5QsWRIvXrzI0bFevnyJ8PBwlC9fPj9DpGLi1avP8PQ8iPv3QwEAYrEIs2Y1w7BhtSESMZlMRERUVBW7ET1ERERU5Lx5I4atbeFaKSfHCcq4uDgsXboUjo6OcHFxyddgoqKi0u0NaWxsjMjIyGwfRxAEzJkzB6VKlULHjh3zFJOGhvK6x6bOc0kkYkBUeLviFjV///1Qnpw0NtbGhg2d4eJSVrVBEYD//lZS/U/qgfWivlg36on1or6K94geIiIiKqxev/7WrrxxQ4ImTYp4glJHRwe7du1ChQoVlBFPvvD29sbly5exfv166Onp5fo4YrEIpqZKnGdQUyL/0chIF9DQUd5rUY7MmuWCO3dC8ezZJxw61AsVK5qrOiT6jpFRzhfiIuVjvagv1o16Yr2oH47oISIiosKoZcsk3LiRnGeaM0cbY8YkqDiinMnVEO+qVaviyZMn+R0LjIyMEB0dnaY8MjISxsbG2TrG7t27sWLFCsydOxeNGjXKUzwymYCoqC95OkZmDBKl0Pzv56ior5CKCld2uygRBEFh6LZEIsa2bW6IjPwKAwNNRETEqjA6Sk0iEcPISDf5b0Yqy3oHKhCsF/XFulFPBVUvRka67KWZQ8VtRA/AHr3qivWivlg36on1or5YNwWjWTMZFi789jir9oO61UuuEpTTpk3D8OHDYW9vj27duinMtZMXdnZ2ae5MR0dHIzQ0FHZ2dlnuf/LkSfz+++8YM2YMevTokS8xJSUp76Ih9SLeUqkMSeCFoyqEhn7Bjz8ew5QpjVGvXml5uampLqTSJKX+DlDuSaUy1o0aYr2oL9aNemK9FF2FZkRPKuzRq55YL+qLdaOeWC/qi3WjXN/fD81u+0Fd6iXbmcWrV6+ifPnyMDMzw5QpUyASiTB9+nTMmTMHFhYW0NbWVtheJBLh0KFDOQrG2dkZq1evVrhz7e/vD7FYDCcnp0z3vXLlCiZMmAB3d3d4eXnl6HWp+Lp7NwQDBhzEu3fRePQoHCdO9EHp0oaqDouIiIhUpLiN6AHY01pdsV7UF+tGPbFe1BfrpuDUrauD69eTh3lnNRJU3Ub0ZDtB2b9/fyxcuBCdOnWCiYkJTExMUK5cuTwF+b1evXrB19cXXl5eGDFiBIKDg7FgwQL06tVLYcXEAQMG4P379zh58iQA4Pnz5/Dy8kLZsmXh6uqKW7duybc1MzODra1tvsZJRcPhw08werQ/vnxJAgCIxUB4+FcmKImIiIqx4jaiJzX26FVPrBf1xbpRT6wX9cW6KVjZ/azVpV6ynaAUBAHCf2OSfX19lRKMsbExtmzZgtmzZ8PLywv6+vro0aMHxo8fr7CdTCaDVPptvsbbt28jOjoa0dHR6N27t8K23bp1w/z585USLxVOMpmAhQsvYfHiy/KyOnUssXlzF1haGqgwMiIiIlI1jughIiKioiAiAjA1VXUU2Zc/k0fmo/Lly2Pz5s2ZbvN9gtTNzQ1ubm5KjIqKipiYBIwe7Y+jR5/Jy9zdK2Px4tbQ0VG7PwciIiIqYBzRQ0RERIXVvXvfhlLfvCmBi0vhWYw5RxmZ1KscExU2b95Eon//g3jwIAxA8qTz//d/TTFqVF3+bhMREREAjughIiKiwqtDhyTs368JAJCpftR2juQoQTl58mRMnjw5W9uKRCI8ePAgV0ER5be4uCR06bIL79/HAAAMDbWwdm1HtGyZv/OoEhERUeHHET1ERERUGNnbF7KsZCo5SlA2btwYZcuWVVIoxZGg6gCKDR0dDUyd2gSjR/vDzs4Evr5dUbGimarDIiIiIiIiIiIq9nKUoOzatSs6d+6srFiKN5GI+Uol8/CoAqlUhg4dKsDEREfV4RAREREREREREQBx1psQFT7h4V+xffu9NOV9+lRjcpKIiIiIiIiISI1w2WIqch4+DIOn50G8eRMJbW0JunevrOqQiIiIiIiIiIgoA+xBSUWKn98zdOiwA2/eRAIA/vgjEPHxSSqOioiIiIiIiIiIMpLtHpSPHj1SZhxEeSIIApYuvYL58y/Ky2rWtMCWLV2grc2OwkRERERERERE6oqZGyr0vnxJxNixx3Hw4BN5WbduDli6tA309DRVGBkREREREREREWWFCUoq1N69i8KAAYdw924IgOTF0H/9tQlGj64PkUik4uiIiIiIiIiIiCgrnIOSCq2bNz+iTZvt8uSkgYEWtm51xZgxDZicJCIiIiIiIqJia8+ewjWilAlKKrRKltST/1y2rDH8/HqjbdvyKoyIiIiIiIiIiEg1IiO/ddbav58JSqICYW1thE2bOqNVq3I4frwPHBzMVR0SEREREREREZFK/PhjgvxnW1uZCiPJOc5BSYVGRMRXaGpKYGCgJS9zdLTC9u3dVBgVEREREREREZHq/fCDIP/5zRsxBCF5rY7CgD0oVUrIehMCADx+HI62bbfDy8sPMhk/NyIiIiIiIiKizLx9W0iyk2CCUo0Unl+agnbixAu0b78Dr15Fws/vOby9r6o6JCIiIiIiIiIitRYXV3hyTUxQktoSBAHLl/8LT88DiIlJnkehWrWS6N69koojIyIiIiIiIiJSP717J8p/Dg9ngpIoT75+TcSPP/phzpwLEP4b0d2liz0OH+4Fa2sj1QZHRERERERERKSGPn36lpQMDJSoMJKcYYKS1M7799Ho0mU39u17JC+bMqUx1q3rCH19TRVGRkRERERERESkvipU+LZ6t65u4VnDg6t4k1q5du09Bg48jJCQWACAnp4mVqxoh44dK6o4MiIiIiIiIiIi9VanjlTVIeQKe1CSWlm37qY8OWlra4Rjx3oxOUlERERERERElEMzZ+qoOoRsYw9KUiuLF7fGo0fhMDXVwYYNnWFurqvqkIiIiIiIiIiICgU9PcVh3ZcvS9Cwofr3qmSCklRKEASIRN8mcDUw0MLu3d1hZqYDTc3CM5krEREREREREZGqNWqkmIwMDS0cK3lziDepzLNnn9Cly268exelUG5hoc/kJBERERERERFRDunpAf/3f/GqDiPHmKAklQgIeIl27XbgypUg9O9/ELGxiaoOiYiIiIiIiIio0BOLvw3z9vMrHIOnmaCkAiUIAlasuIa+fQ8gKio5oy+VCoiKilNxZEREREREREREhV9c3Ldh3VL1n34SABOUVIDi4pLw00/+mDnzHGSy5Gx+hw4VcPRoL/zwg6GKoyMiIiIiIiIiKvzatEmS/3zrVuGYQo8JSlUShKy3KSI+foxB1667sWfPQ3nZpEkNsXFjZxgYaKkwMiIiIiIiIiKiokNb+9vPL1+KsWiR+uddmKBUF6LCsapSbty8+RFt2mzDjRsfAQB6ehrYsKETfv65McTiovu+iYiIiIiIiIgKmqWlTOHxggXakMky2FhNMEFJSvXuXRRcXXfh48dYAIC1tSEOH+6Fzp3tVRwZEREREREREVHRY2QErF37VaHs82fVxJJdTFCSUllbG2HEiLoAAEdHKxw/3hfVq5dScVREREREREREREVX165JMDf/1m3y4UP1nouycKw1ToXa1KlO+OEHA/TrVx1aWur9B0FEREREREREVBSknovy7Vv1nmKP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10D+3UDFU36dG/g9oZ5YL+qrIOpGLJbAyMgcurr6Sn0dIiJ1wAQlEVEhIRKJYGxsDkNDU0ilSaoOR4FEIoKxsR4iI7+wp4eaYd2op/yoF4lEgz0nKV/ODfyeUE+sF/VVEHUjFksgFovVbsQMEZGyMEFJRFTIiMViiMVaqg5DgYaGGDo6Ovj6VYqkJPb0UCesG/XEeqH8lpdzA38f1RPrRX2xboiI8h9vuxMREREREREREZHKMEFJREREREREREREKsMEJREREREREREREamMSBAEzricAUEQIJMp/+ORSMSQSjl3ibphvagv1o16Yr2oL9aNeiqIehGLRVxgoZBje7R4Y72oL9aNemK9qC/WjXpSp/YoE5RERERERERERESkMhziTURERERERERERCrDBCURERERERERERGpDBOUREREREREREREpDJMUBIREREREREREZHKMEFJREREREREREREKsMEJREREREREREREakME5RERERERERERESkMkxQEhERERERERERkcowQUlEREREREREREQqwwQlERERERERERERqQwTlERERERERERERKQyTFASERERERERERGRyjBBSURERERERERERCrDBKUSPX/+HIMGDUKtWrXg5OSEBQsWICEhIcv9BEHA2rVr0bx5c9SoUQMeHh64deuW8gMuJnJTLyEhIViwYAFcXV1Ru3ZtODs7Y+LEiQgKCiqgqIuH3P7NpLZ582Y4ODhgxIgRSoqy+MlLvQQHB+OXX35Bw4YNUaNGDbRv3x6HDh1ScsTFQ27rJSIiAtOnT0fz5s1Rq1YtdOrUCTt27CiAiIuP169fY/r06XB1dUWVKlXQqVOnbO3H8z8pA9uj6ontUfXF9qh6YntUfbFNqp4KY3tUo0BepRiKjIzEgAEDULZsWXh7eyM4OBjz589HXFwcpk+fnum+69atw/LlyzFp0iQ4ODhg27ZtGDx4MA4ePAgbG5sCegdFU27r5f79+zh58iS6d++OmjVrIiIiAqtWrYK7uzuOHDkCMzOzAnwXRVNe/mZShIaGYsWKFTA3N1dytMVHXuolJCQEHh4eKFeuHGbPng0DAwM8ffo0x418Sisv9TJ27Fi8ePECEyZMwA8//IBz587h999/h0QiQc+ePQvoHRRtT58+xdmzZ1GzZk3IZDIIgpCt/Xj+p/zG9qh6YntUfbE9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\n"},"metadata":{}}],"execution_count":61},{"id":"274edbb2-c68f-48b1-bdd0-8e1181a1c35a","cell_type":"code","source":"from sklearn.metrics import roc_curve, precision_recall_curve\n\n# Get values\nfpr, tpr, _ = roc_curve(y_test, y_pred_proba)\nprecision, recall, _ = precision_recall_curve(y_test, y_pred_proba)\n\n# Plotting\nimport matplotlib.pyplot as plt\nfig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5))\n\n# ROC Plot\nax1.plot(fpr, tpr, label='XGBoost (AUC = 0.998)')\nax1.set_title('ROC Curve (Catching Fraud vs. Friction)')\nax1.set_xlabel('False Positive Rate (Blocked Customers)')\nax1.set_ylabel('True Positive Rate (Caught Fraud)')\n\n# PR Plot\nax2.plot(recall, precision, label='XGBoost (PR-AUC = 0.998)')\nax2.set_title('PR Curve (Confidence vs. Catch Rate)')\nax2.set_xlabel('Recall (Fraud Caught)')\nax2.set_ylabel('Precision (Confidence of Alert)')\n\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:48:54.704021Z","iopub.execute_input":"2026-01-17T19:48:54.704332Z","iopub.status.idle":"2026-01-17T19:48:55.105412Z","shell.execute_reply.started":"2026-01-17T19:48:54.704306Z","shell.execute_reply":"2026-01-17T19:48:55.104765Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAABNsAAAHfCAYAAABpvN5gAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAwaxJREFUeJzs3Xl4TOffBvD7zGRPJIRYQxBNLLGVIJYgtkqonViC2it2VaH9Vb0tVUVborULsZWWUMReUtRaRVFrxRKNSMi+zcx5/0gzNSbLzGQmJ8v9uS5X5qxz5xHyzPec8zyCKIoiiIiIiIiIiIiIqMBkUgcgIiIiIiIiIiIqKVhsIyIiIiIiIiIiMhIW24iIiIiIiIiIiIyExTYiIiIiIiIiIiIjYbGNiIiIiIiIiIjISFhsIyIiIiIiIiIiMhIW24iIiIiIiIiIiIyExTYiIiIiIiIiIiIjYbGNiIiIiIiIiIjISFhsIyK9qFQq9OjRA99//73UUfJ0/vx5uLu749ChQ/nuGxQUBB8fn0JIVTw9efIE7u7u2L17t9RRjM7d3R0rVqww2vkCAgIQEBBgtPPlZMmSJRgwYIBJ34OIiEq2a9euwcPDA0+fPpU6ioawsDC88847aNCgAZo3bw5A99+t2X2/8+fPmzomFRJ3d3f83//9n9QxjOrly5do0qQJTp06JXUUMjEzqQMQ6WP37t2YM2eOelkul6N8+fJo06YNpk+fjkqVKmkdI4oi9u7di127duH27dvIzMxEjRo10K1bN4waNQo2NjY5vtfRo0fxww8/4Pr160hOTkbZsmXRrFkz+Pv7w8vLK9+s6enp2L59Ow4cOIAHDx4gIyMDVatWRZs2bRAQEIBatWoZ3hAS2r9/P549e4Zhw4ZpbXv06BHWrVuHM2fO4Pnz5zA3N4ebmxu6d++OQYMGwcrKSq/32rp1K6ytrdG3b19jxS9yAgICcOHChRy3HTx4EK6uroWcqHh58uQJOnXqlOO2xo0bY+fOnUZ/z3v37iE8PBx9+vSBs7Oz0c+fnxEjRmDTpk04fvx4rt87EVFJ9GY/0MLCQt23mjhxIipUqAAgq+gyfPhw9X4ymQxly5aFp6cnpk6dqtfvVmP3bYqKr7/+Gn5+fqhWrZrWtoL2gQ11//59zJkzB+3atcO4ceOKbdsWZ0lJSQgJCcGRI0fw+PFjKJVK1KhRA+3bt8fw4cNz/KyVl1OnTuHatWuYPHmyiRLn7s0+oiAIsLe3R6NGjRAYGIimTZsadN6Cfj4pV64c+vfvj2+//Rbt27c36BxUPLDYRsXSlClT4OzsjIyMDPzxxx/Ys2cPLl++jP3798PS0lK9n1KpxMyZMxEeHo7mzZtj0qRJsLa2xqVLl7By5UocPnwYGzduVHfOgKzi3Ny5c7F7927Ur18f7733HipUqICYmBgcPXoUI0eOxPbt2/H222/nmi8uLg5jxozBjRs30LFjR/To0QM2Njb4+++/cfDgQezcuRN//vmnSdvIVNavXw8/Pz+UKVNGY/3JkycxdepUWFhYoFevXnBzc0NmZiYuX76Mr776Cvfu3cNnn32m13tt374d5cqVM3mx7bPPPoMoiiZ9j7xUrlwZM2bM0Fqvb4emNOvRowe8vb011jk6OuZ73LVr1yCXy/V6r3v37iE4OBgtWrTQKratX79er3MZwsnJCZ06dcKGDRtYbCOiUun1fuDly5exfft2nDp1Cvv374e1tbV6v4CAADRs2BAKhQK3b9/Gjh07cP78eezfvx9OTk75vo8p+jZFwa1bt3D27Fns2LFDY70x+sAFceHCBahUKnz00UdwcXFRry+M360EPH78GCNHjsSzZ8/wzjvvYNCgQTA3N8ft27fx448/4tixYzh8+LBe5zx16hS2bt0qSbEtW3YfUaVS4eHDh9i2bRuGDx+OH3/8Ee7u7nqfzxifTwYPHozQ0FD89ttvJi1gk7RYbKNiydvbGw0bNgQADBgwAOXKlcPatWtx/Phx+Pr6qvdbt24dwsPDMWrUKMyePVu9ftCgQejevTsCAwMRFBSEdevWqbdt2LABu3fvxogRIzBnzhwIgqDe9v777yMsLAxmZnn/05kzZw5u3bqF5cuXo1u3bhrbpk2bhq+//rpA3382hUIBlUoFCwsLo5wvPzdv3sRff/2FoKAgjfWPHz/G9OnTUbVqVWzatAkVK1ZUbxs6dCgiIyNx8uTJQsloCHNzc0nfv0yZMujVq5fO+6ekpOR6R2ZpVb9+fZ3bUKVSITMzE5aWlhrFeWMorH+L3bt3x9SpU/H48WNUr169UN6TiKioeLMfWLZsWWzcuBHHjx9Hjx491Ps1b94c77zzjnq5Vq1a+PTTTxEWFoaxY8fm+R6F2bcp7N/rP/30E6pWrYomTZporDdGH7ggYmNjAUDrgm5h/W4tzRQKBSZNmoTY2Fhs3rxZ/QhvtunTp2Pt2rUSpSuYN/uIzZo1w9ixY7F9+3Z8+umnkmRydXWFm5sb9uzZw2JbCcYx26hEyP6F8PjxY/W6tLQ0rF+/HjVr1sTMmTO1jvHx8UHv3r3x66+/4o8//lAfs2bNGtSuXRuzZ8/W6GRk6927Nxo1apRrlqtXr+LkyZPo37+/VqENyOowvF74y20cijfHEcseN2v9+vUICQlB586d0bBhQ9y6dQv169dHcHCw1jkePHgAd3d3bNmyRb0uISEBCxYsQPv27eHh4YEuXbpgzZo1UKlUuX5P2Y4dOwZzc3OtX8Dr1q1DSkoKFixYoNEZzebi4oIRI0aol3/66ScMHz4cXl5e8PDwgK+vL7Zt26ZxjI+PD+7evYsLFy7A3d0d7u7uGu2UkJCAhQsXwsfHBx4eHvD29saHH36IuLg4jfOoVCp8//336o75iBEjEBkZqbFPXm39ww8/oHPnzvDw8EC/fv1w7do1re8vPDwcvr6+aNiwIXr06IGjR48abRy4oKAgNG3aFI8ePcLYsWPRtGlTfPDBBwCAS5cuYcqUKejQoQM8PDzQvn17LFy4EGlpaRrn0PVnDMhq16CgIDRr1gzNmzfH7NmzkZiYmG/O69evw93dHXv27NHa9uuvv8Ld3R2//PILgKxHFBYsWKD+u/Py8sJ7772HGzdu6Nwu+sge72Pfvn3w8/NDw4YN8euvv6q3vTlmW3R0NObOnYu2bdvCw8MDPj4+mDdvHjIyMrB7925MnToVADB8+HD1z2b2+DA5tXVsbCzmzp2L1q1bo2HDhnj33Xe12knfn7nWrVsDAI4fP26cRiIiKsZatWoFIOv/0rzk1F/MjT59m7zGNn3z98yKFSvg7u6Oe/fuYebMmfD09MSQIUOwfv16uLu75ziG2tKlS+Hh4YH4+Hj1uqtXr2L06NFo1qwZGjdujGHDhuHy5cv5fl9A1u+OVq1aafRzDekDP378GFOmTEGLFi3QuHFjDBw4UKsAmT2O2sGDB/Psj/n4+KjbycvLS6Pdcvrd+s8//2DixIlo0qQJvLy8sHDhQmRkZOT4/erSVtl/L5GRkQgKCkLz5s3RrFkzzJkzB6mpqVrn3Lt3L/r374/GjRvD09MTQ4cOxenTpzX2OXXqFIYMGYImTZqgadOmGDduHO7evZtjxmxS9aeOHDmCv/76CxMmTNDq5wOAnZ0dpk+frl7WpQ8aFBSErVu3AoC6v/T6nWQqlQqbNm1Cz5490bBhQ7Rq1QqjR4/G9evXtd7/2LFj6NGjBzw8PODn54eIiAi9v8dsuf0/YKzPJ7p+zmrdujV++eUXSZ+uIdPinW1UImR3TOzt7dXrLl++jPj4eAwfPjzXq3C9e/fG7t278csvv6BJkya4fPkyXr16heHDh+v9aFm2EydOAIBedyrpY/fu3UhPT8fAgQNhYWEBJycneHp6Ijw8HJMmTdLY9+DBg5DL5eqruqmpqRg2bBiio6Ph7++PKlWq4MqVK1i2bBliYmLw0Ucf5fneV65cgZubm9adYL/88guqV6+u82MF27dvx1tvvQUfHx+YmZnhl19+wfz58yGKIoYOHQoAmDt3Lj777DPY2NhgwoQJAKB+3Dc5ORlDhw7F/fv30a9fP9SvXx8vX77EiRMnEB0drfH44Nq1ayEIAkaNGoWkpCSsW7cOH3zwAXbt2pVvzv379yM5ORmDBg2CIAhYt24dJk+erC46AlmPmEyfPh1ubm6YOXMm4uPj8dFHH+n1CKhSqdQqElpaWsLW1hZA1tXG7E7i7Nmz1WOYHDp0CGlpaRg8eDDKli2La9euYcuWLfjnn3+wfPlynd8/myiKmDhxIi5fvgx/f3+4urri6NGjGsXh3DRs2BDVq1dXj2X2uoMHD8LBwQFt27YFAMybNw+HDx/GsGHD4OrqilevXuHy5cu4f/8+GjRooHduIOtn+802LFOmjPrv6dy5cwgPD8fQoUNRrly5HMeoAbIKbf3790diYiIGDhyI2rVrIzo6GocPH0ZaWho8PT0REBCA0NBQTJgwAbVr1waAXMf/SUtLQ0BAAB49eoShQ4fC2dkZhw4dQlBQEBISEjSK0IBuP3PZ31uNGjXw+++/Y+TIkQa1GRFRSfHo0SMAQNmyZfPcL6f+Ym707dvoa+rUqXBxccH06dMhiiI6duyIr776CuHh4RgzZozGvuHh4WjTpg0cHBwAAL/99hvGjh0LDw8PTJo0CYIgqO9I27ZtW54XhaOjoxEVFYX69etrrNe3D/zixQv4+/sjNTUVAQEBKFeuHPbs2YP3338fy5cvR5cuXTT2z68/NnfuXISFheHo0aP49NNPYWNjk+sjfmlpaRgxYgSePXuGgIAAVKxYEXv37sW5c+e09tW3raZNmwZnZ2fMmDEDN2/exK5du+Do6IhZs2ap9wkODsaKFSvQtGlTTJkyBebm5rh69SrOnTun7uuEhYUhKCgIbdu2xQcffIDU1FRs374dQ4YMwZ49e3Id81Wq/lT2xTtdP7/o0gcdNGgQnj9/jjNnzmDx4sVa5/joo4+we/dueHt7o3///lAqlbh06RKuXr2qvnMVyPrZPHLkCIYMGQJbW1uEhoZiypQp+OWXX1CuXDm9vk8g9/8HCvr5RN/PWQ0aNEBISAju3r0LNzc3vb8PKgZEomLkp59+Et3c3MSzZ8+KsbGx4rNnz8RDhw6JrVq1Ej08PMRnz56p9w0JCRHd3NzEo0eP5nq+V69eiW5ubuKkSZNEURTFTZs25XtMfgIDA0U3NzcxPj5ep/2HDRsmDhs2TGv97NmzxY4dO6qXHz9+LLq5uYlvv/22GBsbq7Hvjh07RDc3N/H27dsa6319fcXhw4erl1euXCk2adJE/PvvvzX2W7JkiVivXj0xKioqz6ze3t7i5MmTNdYlJiaKbm5u4vvvv5/nsa9LTU3VWjdq1CixU6dOGuv8/PxybJtvv/1WdHNzE48cOaK1TaVSiaIoiufOnRPd3NzE7t27i+np6ert2X/Hr7dVbm3dokUL8dWrV+r1x44dE93c3MQTJ06o1/Xo0UP09vYWk5KS1OvOnz8vurm5aZwzN8OGDRPd3Ny0/syePVudzc3NTVyyZInWsTm14+rVq0V3d3fx6dOnGu+hy8/Y0aNHRTc3N3Ht2rXqdQqFQhwyZIjo5uYm/vTTT3l+L0uXLhUbNGig0Wbp6eli8+bNxTlz5qjXNWvWTJw/f36e59JV9t9VTn/OnTsniqIourm5iXXr1hXv3r2rdbybm5u4fPly9fKHH34o1q1bV7x27ZrWvtk/W+Hh4Rrnf92bbZ39/9DevXvV6zIyMsRBgwaJTZo0ERMTEzW+D11+5rKNGjVK7N69e75tRERUUuTUDzxw4IDYokULsVGjRuI///wjiuJ/fYAff/xRjI2NFaOjo8WIiAixS5cuoru7u3j16tU830ffvk32/+E5/Z588/fM8uXLRTc3N3HGjBla+w4aNEjs06ePxrqrV6+Kbm5u4p49e0RRzPpd1LVrV3HUqFHq30uimNUn8PHxEd977708s549ezbH3yv69oEXLFggurm5iRcvXlSvS0pKEn18fMSOHTuKSqVSFEX9+mPZbfNmPze3360HDx5Ur0tJSRG7dOmi8ftZn7bKfu/X+yuimNWvb9GihXr54cOHYt26dcXAwED195gt+z2SkpLE5s2bix9//LHG9piYGLFZs2Za698kRX+qd+/eYrNmzXTeX9c+6Pz580U3NzetfX/77TfRzc1N/Oyzz7S2vf535ebmJjZo0ECMjIxUr7t165bo5uYmhoaG5pkx+9/lihUrxNjYWDEmJka8ePGi2K9fP9HNzU0MDw/P93vS5/OJvp+zfv/9d9HNzU08cOBAnt8HFV98jJSKpZEjR8LLywvt27fHlClTYG1tje+//x6VK1dW75OcnAwA6ruDcpK9LSkpSeNrXsfkxxjnyEvXrl21Bn7v0qULzMzMcPDgQfW6O3fu4N69expj2B06dAjNmjWDvb094uLi1H9at24NpVKJixcv5vner1690roKZMj3+/rsUomJiYiLi0OLFi3w+PFjnR5ZPHLkCOrWrat11RSA1mMPffv21RjrQ59HSHx9fdVXkXM6Njo6Gnfu3EHv3r01vv8WLVrodYWqWrVq2Lhxo8afN69qDx48WOu419sxJSUFcXFxaNq0KURRxM2bN3V+/2wREREwMzPTeC+5XJ7jzLM58fX1RWZmJo4cOaJed+bMGSQkJGj8HNrb2+Pq1auIjo7WO2NuBg0apNWGdevWVW/39PREnTp18jyHSqXCsWPH0LFjR40rqtlyeqQmPxEREXByctIYQ8jc3BwBAQFISUnR+jeX38/c6+zt7fHy5Uu9MxERFXev9wOnT58OW1tbBAcHa91VPnfuXHh5eaFdu3YYM2YMEhMTsXjx4jzv/AJM35cDAH9/f6113bt3x40bN9R36gFZd7VZWFigc+fOALImN3j48CF69uyJly9fqvtyKSkp8PLywsWLF/McGiT790ZB+3OnTp1Co0aNNB45tLW1xaBBg/D06VPcu3dPY/+C9MfelP279fXx+KytrTFw4ECN/Qxpqzf/Xpo3b45Xr16p2+fYsWNQqVQIDAyETKb5UTq7n3D27FkkJCTAz89Po78tk8nQuHFj9dATuZGiP5WUlGRwX96QPuiRI0cgCILWUzmAdn+rdevWqFGjhnq5bt26sLOz0/lnZ8WKFfDy8kKbNm3UT8YEBQVp/Py8+T0Z8vlE389Z2f8G2ZcrufgYKRVLn3zyCWrVqoXExET89NNPuHjxotbgqdm/MLKLbjl5syBnZ2eX7zH5ef0cujymoK+cbjt3dHREq1atEB4ejmnTpgHIutXczMxMoyAVGRmJ27dv5zoQ55uP4eVEfGNcAUPa7PLly1ixYgX++OMPrXEwEhMTtQbGfdOjR4/QtWtXnd6ratWqGsvZfycJCQn5HlulShWN5ewiSPaxUVFRAKDRAcjm4uKic8HLxsZGPQZXTszMzDQKydmioqKwfPlynDhxQmMcF+C/TrM+nj59CicnJ63OVq1atXQ6vm7duqhduzbCw8MxYMAAAFk/h+XKlVOPpwMAH3zwAYKCgtChQwc0aNAA7du3R+/evQs00L+Li0uebZjb4xqvi4uLQ1JSEt566y2Dc7zp6dOncHFx0eqQZz92mv0zlC2/n7nXiaJoUAGQiKi4y+4HyuVyVKhQAbVq1dL6fxYAAgMD0bx5c6SkpODo0aM4cOBAjvu9yRj9wfzk9HvpnXfewaJFi3Dw4EFMmDABoiji0KFD8Pb2Vmd6+PAhAOQ5xENiYqLGhZucFLQ/FxUVhcaNG2utzx5eISoqSuPCY0H6Y2/K/t365u/AN/srhrRVbjnj4+NhZ2eHR48eQSaT5Tp8xOvv++ZQEdmy2zo3UvSn9CleAQXvgz569AgVK1bM99FvQLtvBGT1j3T92Rk0aBDeeecdpKen49y5cwgNDYVSqdTar6CfTwz9nMW+XMnFYhsVS40aNVLfedK5c2cMGTIEM2fOxKFDh9SFguxfgn/99Zf6auCbbt++rbFvdgfh9u3buR6Tn+xz3LlzJ8cBRnWV0y8BQPOqy+v8/PzUs6DWq1cP4eHhaNWqlcZdcCqVCm3atNG6aypbzZo188xUtmxZrV9sdnZ2qFixYr4DvmZ79OgRRo4cidq1ayMoKAhVqlSBubk5Tp06hZCQEJ0matBHbp3qNzuZOcltzBJdjjUmCwsLre9DqVTivffeQ3x8PMaMGYPatWvDxsYG0dHRCAoK0qkdc/sZKwhfX1+sWrUKcXFxsLOzw4kTJ+Dn56cxbqKvry+aN2+Oo0eP4syZM1i/fj3Wrl2LFStWoH379kbPBOT+76ao0ednLiEhwaCxSoiIirvX+4F5cXNzU1+I6dy5M1JTU/G///0PzZo1y/EDfDZ9+za5fVjO6/dsTrNhV6pUCc2bN0d4eDgmTJiAP/74A1FRUeqJkYD/fh98+OGHqFevXo7nzmtm0+zfG2/254zRB85LQfpjhjKkrYyRM3vfxYsXw8nJSWu7LmPiFXZ/qnbt2rh58yaePXuW578NwDh9UH0UtD/++gXZjh07QiaTYenSpWjZsqX6/xFjfD7R93NWdpGSfbmSi4+RUrEnl8sxY8YMPH/+XD3jDQD1bbz79+/PtbMTFhYGIOs/3uxjHBwccODAAYMLEdnn2rdvn07753Zl5s07XvLTuXNnmJub4+DBg+rb5v38/DT2qVGjBlJSUtC6desc/7x5Ne9NtWvXznGmr44dO+LRo0e4cuVKvjlPnDiBjIwMfP/99/D390f79u3RunXrHIshuXVea9SooXMH2JSy2+v1xz2yvTnjqbHduXMHDx8+RFBQEMaNG4fOnTujdevWOc6YpuvPWLVq1RATE6N1Vfvvv//WOZevry8UCgWOHDmCiIgIJCUlaf0cAkDFihUxdOhQfPfddzh+/DjKli2LVatW6fw+puDo6Ag7O7t8f7b0uQJZrVo1REZGanXSHjx4AED7Cro+njx5kueVdSIi0vTBBx8gPT0d33//fb776tO3ye0uZH37ckDWo6R//fUXHjx4gIMHD8La2lrdtwSgvmvJzs4u1/7cmxNZvS67qPZmf07fPnDVqlVz7B8Y4/dbfqpVq4ZHjx5pFVvezFPQtspJjRo1oFKpcP/+/Vz3yX7f8uXL5/ieLVu2zPd9Crs/pc/nF336oHn15Z8/f45Xr17pnbWg3n//fdja2uKbb75RrzPW5xN9Pmdl/xtkX67kYrGNSoSWLVuiUaNG2LRpE9LT0wFkjd0watQo/P333/j666+1jjl58iT27NmDtm3bokmTJupjxowZg/v372PJkiU5XjHZu3cvrl27lmuWpk2bol27dti1axeOHTumtT0jIwNffvmlerl69ep48OCBxq3Ff/31F37//Xedv38g6zb3tm3bIjw8HAcOHIC5ubnWlcnu3bvjypUr+PXXX7WOT0hIgEKhyPM9mjRpgrt372pNrT5mzBjY2Njg448/xosXL7SOe/ToETZt2gTgv6tTr7dt9uPAb7K2ts6xSNS1a1f89ddfOHr0qNa2wrzrrFKlSnBzc0NYWJhGgerChQu4c+eOSd87+8rr69+vKIrYvHmz1r66/ox5e3tDoVBg+/bt6nVKpRJbtmzROZerqyvc3Nxw8OBBHDx4UD1b7uvne3Pci/Lly6NixYoaP1dxcXG4f/++1m38piSTydC5c2f88ssvOU47n93W1tbWAKDT+B3e3t6IiYnRGE9RoVAgNDQUNjY2Gm2jj8TERDx69AhNmzY16HgiotKoRo0a6Nq1K/bs2YOYmJg899Wnb2NnZ4dy5crh0qVLGvts27ZN74zdunWDXC7HgQMHcOjQIXTo0EHj7isPDw/UqFEDGzZsyPGRz/yGBKlUqRKqVKmCP//8U2O9vn3g9u3b49q1axrFyJSUFOzcuRPVqlXLd5zUgvD29sbz589x6NAh9brU1FTs3LlTY7+CtlVOOnfuDJlMhpUrV2pdSMtus3bt2sHOzg6rV69GZmamQe9b2P2pbt26wc3NDatWrcqxwJyUlKT+PKVPHzS7z/Rmf75r164QRRHBwcFax5i6L29vb49Bgwbh9OnTuHXrFgDjfD7R93PWjRs3UKZMGaMOX0JFCx8jpRJj9OjRmDp1Knbv3q0e4H3cuHG4desW1q5diz/++ANdu3aFlZUVLl++jH379sHV1VWj8AVkda7u3buHDRs24Pz58+jWrRsqVKiAFy9e4NixY7h27Rp27NiRZ5bFixdj1KhRmDRpEjp27AgvLy9YW1sjMjISBw8exPPnz9XjR/Tv3x8hISEYPXo0+vfvj9jYWOzYsQN16tTRe6wQX19fzJo1C9u2bUPbtm21xowbPXo0Tpw4gQkTJqBPnz5o0KABUlNTcefOHRw+fBjHjx/XmnzhdZ06dcJ3332HCxcuqKcdB7I6r0uWLMH06dPh6+uLXr16wc3NDRkZGbhy5QoOHTqEvn37AgDatGkDc3NzTJgwAf7+/khOTsauXbtQvnx5rY5vgwYNsH37dnz33XdwcXGBo6MjvLy8MHr0aBw+fBhTp05Fv3790KBBA8THx+PEiROYP3++xsD4pjZ9+nRMnDgRgwcPRt++fZGQkICtW7fCzc3NpGO91K5dGzVq1MCXX36J6Oho2NnZ4fDhwzn+8tf1Z8zHxwdvv/02li5diqdPn6JOnTo4cuSITkWl1/n6+mL58uWwtLRE//79NR7JSE5ORvv27dGtWzfUrVsXNjY2OHv2LK5fv46goCD1flu3bkVwcDA2b96s0xVgY5kxYwbOnDmDgIAADBw4EK6uroiJicGhQ4ewbds22Nvbo169epDL5Vi7di0SExNhYWGBVq1aoXz58lrnGzRoEH744QcEBQXhxo0bqFatGg4fPozff/8dc+fOzXfcltycPXsWoiiiU6dOBf2WiYhKldGjRyM8PBybNm3SeDzzTfr0bQBgwIABWLNmDT766CN4eHjg0qVLet0Znq18+fJo2bIlNm7ciOTkZI0B8YGsQsfnn3+OsWPHokePHujbty8qVaqE6OhonD9/HnZ2dvne2dSpUyccPXpUa+xPffrA48aNw4EDBzB27FgEBATAwcEBYWFhePLkCVasWKHT2HiGGjhwILZu3YrZs2fjxo0bcHJywt69e7XuQjJGW73JxcUFEyZMwHfffYchQ4aga9eusLCwwPXr11GxYkXMnDkTdnZ2+PTTT/Hhhx+ib9++8PX1haOjI6KionDq1Cm8/fbb+OSTT/J9r8LsT5mbmyM4OBjvvfcehg0bhnfeeQdvv/02zM3NcffuXezfvx/29vaYPn26Xn3QBg0aAAA+//xztG3bFnK5HH5+fmjVqhV69eqF0NBQREZGol27dlCpVLh8+TJatmyp8+Rchho+fDg2bdqENWvW4Ouvvzba5xN9PmedPXsWHTt25JhtJRiLbVRidO3aVX31auDAgZDL5ZDL5fjmm28QFhaGXbt24dtvv0VmZiZq1KiBwMBAjBo1KsexGhYvXoxOnTph586d2LBhA5KSklCuXDl4enpi1qxZ+d5N4ujoiB07dmDbtm04ePAgvv76a2RmZqJatWrw8fHB8OHD1ftmF/yWL1+OL774AnXq1MHixYuxf/9+XLhwQa828PHxgZWVVY6dMyDrSkxoaChWr16NQ4cOISwsDHZ2dqhZsyYmT56c78CfHh4ecHd3R3h4uEaxDcjquO3btw/r16/H8ePHsX37dlhYWMDd3R1BQUHqGaJq166N5cuX45tvvsGXX36JChUqYPDgwXB0dMTcuXM1zhkYGIioqCisW7cOycnJaNGiBby8vGBra4utW7dixYoVOHr0KPbs2YPy5cvDy8tLayYyU/Px8cGyZcuwYsUKLF26FDVr1sQXX3yBsLAwkz7qam5ujlWrVuHzzz/H6tWrYWlpiS5dumDo0KHo1auXxr66/ozJZDJ8//33WLhwIfbt2wdBEODj44OgoCD07t1b52y+vr745ptvkJqaiu7du2tss7KywuDBg3HmzBkcOXIEoiiiRo0amDdvHoYMGVKgNjGGSpUqYefOnfj222/x888/IykpCZUqVYK3t7e6E+/k5IT58+dj9erV+Oijj6BUKrF58+Yci21WVlYIDQ3FkiVLsGfPHiQlJaFWrVr44osvND6k6St7xqucJucgIqLcNWzYEC1atMD27dsxfvz4PPs+uvZtgKw+S1xcHA4fPozw8HB4e3tj3bp1uQ6WnhdfX1+cPXsWtra2OY691bJlS/zwww/47rvvsGXLFqSkpMDJyQmNGjXCoEGD8j1/v379sGXLFly+fFljfGF9+sAVKlTAjh078NVXX2HLli1IT0+Hu7s7Vq1ahQ4dOuj9PevD2toaISEh+Oyzz7BlyxZYWVmhZ8+e8Pb21hovq6BtlZOpU6fC2dkZW7Zswddffw1ra2u4u7tr9L969uyJihUrYs2aNVi/fj0yMjLUY/Lp+vu/sPtTLi4uCAsLQ0hICI4ePYrjx49DpVLBxcUFAwYMQEBAAAD9+qBdu3ZFQEAADhw4gH379kEURfXjsF988QXc3d3x448/YvHixShTpgw8PDwK5a79SpUqoWfPnti7dy8ePXpklM8n+nzOun//Pu7cuaN1bipZBLGwR/omomItLCwM//d//4eTJ0+aZLbVkqJXr15wdHTExo0bpY5CJUxMTAw6deqEZcuWmWQQayIiKvlGjBiBihUr4quvvpI6ClGps2DBAly6dAm7d+/mnW0lGMdsIyK9vPvuu6hatarGZBSlWWZmptYYDOfPn8dff/2FFi1aSJSKSrJNmzbBzc2NhTYiIjLYjBkzEB4ejqdPn0odhahUefnyJX788UdMmzaNhbYSjne2EREVwJMnT/Dee+/h3XffRcWKFfHgwQPs2LEDZcqUwc8//8zpvImIiIiIiEoZjtlGRFQADg4OaNCgAXbt2oW4uDjY2Nigffv2+OCDD1hoIyIiIiIiKoV4ZxsREREREREREZGRcMw2IiIiIiIiIiIiI2GxjYiIiIiIiIiIyEhYbCMiIiIiIiIiIjISTpCQB1EUoVKZbkg7mUww6fkpb2x/abH9pcX2lxbbX1qmbH+ZTIAgCCY5NxkX+3klG9tfWmx/abH9pcX2l1ZR6eex2JYHlUpEXFyySc5tZiZDuXK2SEhIgUKhMsl7UO7Y/tJi+0uL7S8ttr+0TN3+jo62kMtZbCsO2M8rudj+0mL7S4vtLy22v7SKUj+Pj5ESEREREREREREZCYttRERERERERERERsJiGxERERERERERkZGw2EZERERERERERGQkLLYREREREREREREZCYttRERERERERERERsJiGxERERERERERkZGw2EZERERERERERGQkLLYREREREREREREZCYttRERERERERERERlKkim2RkZH45JNP0KtXL9SvXx89evTQ6ThRFLFmzRp06NABjRo1wqBBg/DHH3+YNiwRERER6Yz9PCIiIiotilSx7e7duzh16hRcXFzg6uqq83Fr167F8uXLMXLkSKxevRpOTk4YNWoUHj9+bMK0RERERKQr9vOIiIiotChSxTYfHx+cOnUKy5cvR4MGDXQ6Jj09HatXr8aoUaMwcuRIeHl5YdmyZShbtizWr19v4sREREREpAv284iIiKi0KFLFNplM/zi///47kpKS0L17d/U6CwsLdOnSBREREcaMR0REREQGYj+PiIiISgszqQMU1IMHDwAAtWvX1ljv6uqKTZs2IS0tDVZWVlJEIyoRxIwMIDXFqOdUmcmgRDpU8akQFSqjnru0EjMzIEY9BgQh/51lMqTaWUKRlA6liu1f6Nj+0pLJkF7FCaKTs9RJSAfFtZ8nJiYg9f4N/juXCv+flZYJ2l+oUAmyKtWMci4iosJQ7IttCQkJsLCwgKWlpcZ6e3t7iKKI+Pj4AnXCzMxMc/OfXC7T+Er6ExMTICqV+e/3IgZicqLGOpVMQKqNJVQp6YBK/G/9o4eASgXlnZuApSUAHQoXOlBevQzB3gEw4Kq+lMRXL012buOW70gfmQDSpA5RirH9pZXd/jZTZ8OsUTOp41A+ims/L2XZ50h+9NAk56b88f9ZaZms/S0sIJQrr7lOzO7Hixpf9F0vJsZD7tEEcpfa6v1EiP8dBzHrWPH1g177Kv73eSLH5exzvfb+YkYGzJp7QbCy/u/8AARbO8iqGn5BiJ8zpcX2l1ZRav9iX2wzJZlMQLlytiZ9D3t7a5Oe/3WiUgnlq5cQU1OQ+fQpBF3ugNGRKj0NmQ/uI+3P65CXLavb3TUaJ1Ah7fdLkJVz1G33l3H6h3xDYRd7xIT4Qn5HIzPizwuZiChCsLWFWeWqUichKtLkZcrAoX5dmJn4dzwVbabs55l16ozkiFMmOTdRaZN5/27Wi4wMiNHP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2BYVFYW0tLRct6elpSEqKsrgUERERERUNLi6umL69Ok4fvw4tmzZgn79+uHu3btSxyIiIiKJyf8ttiEtFcrL56QNU8QYVGzr1KkTjh49muv2EydOoFOnTgaHIiIiIqKip3nz5pg/fz5Onz4tdRQiIiKSmKyuh/p15ppvIIqihGmKFoOKbfk1YGZmJmQyPqGqEw44TERERMWMmRnn2CIiIirtBGsbmPUZrF5WXbkgYZqiReeeUlJSksaAuK9evcrxUdGEhAQcPHgQTk5OxklIRERERERERERFjtk7vaDYsx0AICZyEqVsOhfbQkJCsHLlSgBZ07wuXLgQCxcuzHFfURQxbdo0owQkIiIiIiIiIqKiSda0RdZdbZmZUkcpMnQutrVp0wY2NjYQRRFfffUV/Pz80KBBA419BEGAtbU1GjRogIYNGxo9LBERERERERERFSH/FtmU5yJg1tlX4jBFg87FtqZNm6Jp06YAgNTUVHTt2hVubm4mC0ZEREREptenTx9Mnz4d3t7eAICwsDA0b94czs7OEicjIiKiYsHcHAAglOdwYtkMmsVg0qRJLLQRERERlQC3b9/Gy5cv1ctz5szBlStXJExERERExYmsXtaTjaqrlyROUnQYPJVUfHw89u/fjydPniA+Pl5rhtLscd2IiIiIqOiqWrUqfvvtN/To0QNyuRyiKELgbOlERESkK7OsO9sgilBePAu5Z2tp8xQBBhXbfv31V0yZMgWpqamws7ODvb291j7spBEREREVff7+/liyZAl+/vlnWFpaQhAEfPTRR/jkk09yPUYQBFy+fLkQUxIREVFRJW/SHIrNWa8z1y2HrElzCOYW0oaSmEHFti+//BJOTk5YsWIF3N3djZ2JiIiIiArJmDFjULduXZw/fx4vXrxAWFgYGjZsiOrVq0sdjYiIiIoBwdYOZiMmQLFpFQAgc/kiWMzM/aJdaWBQsS0yMhIffvghC21EREREJUDbtm3Rtm1bAMCePXswaNAg9OzZU+JUREREVFyYte6gLrap7tyUOI30DCq21axZE8nJycbOQkREREQS++uvv6SOQERERMWQ+fszkfn9UqljFAkGFdumTp2K//u//0OPHj04Lbyh3phQgoiIiKgouXDhAk6ePImoqCgAWRMpdOjQAS1atJA4GRERERVFQnkn9WsxMQFCGe3x/UsLnYptn3/+udY6R0dH+Pr6onXr1qhSpQrkcrnWPh9//HHBExIRERFRocnIyMDMmTNx7NgxiKKonggrISEBGzduRJcuXbB06VKYm5tLnJSIiIiKEsHZRf1ajI5isS0/W7ZsyXXbyZMnc1wvCAKLbURERETFzMqVK3H06FGMGjUKo0aNQoUKFQAAsbGx2LBhA9avX4+VK1di2rRp0gYlIiKiIkUQBPVr1aOHkNWpK2EaaelUbOPYHURERESlw88//4w+ffrgww8/1Fhfvnx5zJo1C7Gxsdi3bx+LbURERKRFcHWHeP82kMPTj6WJTOoARERERFR0xMTEoFGjRrlub9SoEWJiYgoxERERERUXgr0DAEB167rESaTFYhsRERERqVWuXBkXLlzIdfvFixdRuXLlQkxERERExUZKMgBAdeUCVC+eSxxGOgbNRlq3bl2NZ3FzYmlpiUqVKqFly5YYM2YMatSoYVBAIiIiIio8vXv3xooVK1CmTBmMHDkSLi4uEAQBDx8+xKZNm3Do0CFMnjxZ6phERERUBMm794bq9o2shfiXQIWK0gaSiEHFtsDAQBw/fhz37t1Du3bt4OKSNePEw4cPcfr0abi5uaFly5Z49OgRdu/ejQMHDmDr1q2oW7f0Do5HREREVBxMmDABjx8/xs6dO7Fr1y7IZFkPQqhUKoiiiD59+mDChAkSpyQiIqKiSF6vIRQVK0N8/o/UUSRlULGtYsWKePnyJcLDw1G9enWNbZGRkQgICECdOnUwe/ZsPHz4EIMGDcKyZcuwZs0ao4QmIiIiItOQy+VYtGgRRo4ciYiICDx9+hQAUK1aNXh7e/PiKREREelEjIsFXKVOIQ2Dim3r16/H0KFDtQptAODi4oKhQ4dizZo16NevH2rWrAl/f39s27atwGGJiIiIqHDUrVuXhTUiIiLSW/ZdbarIB5B7tpY4jTQMmiDhn3/+gTyPaVzlcjmePXumXnZ2dkZGRoYhb1Xy5TP2HRERERERERFRcSHzaAIAUB7dL20QCRlUbKtTpw62b9+OFy9eaG2LiYnB9u3bUadOHfW6x48fo0KFCoanLJFEqQMQERERERERERmV4FBW/VrMLJ03Xhn0GOns2bMxduxYdOnSBZ07d1ZPkBAZGYljx45BoVBg4cKFAID09HTs3r0b3t7exktNRERERERERERFjln/ACjPnAQAKH7cAvPBo6QNJAGDim0tW7bEjh07sHz5chw9ehRpaWkAAEtLS3h5eWHy5Mlo0KCBet3p06eNl5iIiIiIiIiIiIokwcZW/Vp58giLbfqoX78+Vq1aBZVKhdjYWABA+fLl1dPDExERERERERFR6WPm/x4UOzYCAFRPIiFzdpE4UeEqcGVMJpPByckJTk5OLLQRERERlRAZGRm4cuUKjh07hri4OKnjEBERUTEib9NR/Vr1158SJpGGQXe2BQcH57uPIAgIDAw05PREREREJKHNmzcjODgYiYmJAIANGzbAy8sLcXFx6N69O2bNmoX+/ftLnJKIiIiKKsHCAkLV6hCjHkOxKxRmnf2kjlSojF5sEwQBoiiy2EZERERUDP30009YuHAh/Pz80KZNG8ydO1e9zdHREa1atcLBgwdZbCMiIqI8yT1bQ7H3BwCA8uplyBs3kzhR4TGo2PbXX39prVOpVHj69Cm2bduGixcvYu3atQUOR0RERESFa+PGjejUqROWLl2Kly9fam1v0KABQkNDJUhGRERExYn8nV7qYpvq7q1SVWwz2iBrMpkM1atXx+zZs+Hi4oLPP//cWKcmIiIiokISGRkJb2/vXLeXLVsWr169KrxAREREVCwJMhnkXu0BAMqj+6F68VziRIXHJDMaeHp64tSpU6Y4dQkkSB2AiIiISM3e3j7HO9qy3bt3D05OToWYiIiIiIoroY67+nXGl59ImKRwmaTY9ueff3Jm0vyIUgcgIiIi0ubt7Y2dO3ciISFBa9vdu3exa9cu+Pj4SJCMiIiIihuztj5AOceshZQkacMUIoPGbAsLC8txfUJCAi5duoQjR45gwIABBclFRERERBKYNm0aBg4ciB49eqBjx44QBAFhYWH46aefcOTIETg5OWHixIlSxyQiIqJiwjxgPDKXfwEoFBBVKgil4OYsg4ptQUFBuW4rV64cxo0bx5lIiYiIiIqhSpUqYffu3Vi2bBnCw8MhiiL27t0LW1tb+Pn54YMPPoCjo6PUMYmIiKiYkDm7qF+Lsc8hOFWWME3hMKjYdvz4ca11giDA3t4ednZ2BQ5FRERERNIpX748FixYgAULFiAuLg4qlQqOjo4cJoSIiIj0JjiU/W+hlAypZVCxrVq1asbOQURERERFEO9iIyIiogKztATS06VOUWiK3OXJ+/fv47333kOTJk3Qpk0bLF68GBkZGTodGx0djdmzZ6NVq1Zo1KgRunfvjn379pk4MREREVHJ8fXXX6NXr165bu/duzeCg4MNOjf7eURERKWbGPlA6giFwqA72wDg1KlTCAkJwc2bN5GYmAhR1L4X8NatW3qdMz4+HiNGjEDNmjWxYsUKREdHY9GiRUhLS8Mnn+Q9Rezz588xaNAg1KpVC5999hns7Oxw9+5dnTtwRERERAQcPnwYXbp0yXV7+/btcfDgQUyaNEmv87KfR0REVIr9e1ebmFw6ZiQ1qNh2+PBhTJs2DXXq1IGvry+2b9+OHj16QBRFnDhxAi4uLujcubPe592xYweSk5MRHByMsmXLAgCUSiXmz5+P8ePHo1KlSrke+9VXX6Fy5cpYt24d5HI5AMDLy8uQb4+IiIio1Hr27Blq1KiR63ZnZ2dERUXpfV7284iIiEovWdMWUF25AOWZX2DWoavUcUzOoMdIV69ejUaNGiEsLAyTJ08GAPTr1w9Lly7Fzz//jJiYGDg7O+t93oiICHh5eak7YADQvXt3qFQqnDlzJtfjkpKSEB4ejiFDhqg7YERERESkPxsbGzx9+jTX7U+ePIGlpaXe52U/j4iIqBRLSQYACOXKSxykcBhUbLt//z58fX0hl8thZpZ1c5xCoQCQdbVz8ODBWLt2rd7nffDgAWrXrq2xzt7eHk5OTnjwIPfnem/cuIHMzEyYmZlh2LBhaNCgAdq0aYOvvvoKmZmZeucoVILUAYiIiIj+06JFC/zwww+Ijo7W2vbs2TP88MMPaNmypd7nLZX9PCIiIgIAyJpn3ZGuunpJ4iSFw6DHSK2srGBubg4gq5NkYWGBmJgY9fYKFSrgyZMnep83ISEB9vb2WusdHBwQHx+f63EvXrwAAHz88ccYOHAgJk2ahGvXrmH58uWQyWSYOXOm3lmymZmZdg4JmVwGmYnfg7TJ5TKNr1S42P7SYvtLi+0vLbZ//qZOnYoBAwbAz88P/fv3R506dQAAd+/exU8//QRRFDF16lS9z1ua+nn8OZMW219abH9psf2lxfbPnWhlBcW/r+VyAYJg/DuPilL7G1Rsq1WrFu7fv69erlevHvbu3Yt3330XSqUS+/fvR5UqVYwWMj8qlQoA0Lp1awQFBQEAWrVqheTkZGzYsAGBgYGwsrLS+7wymYBy5WyNmjVbMgARQBk7K5iZ6D0of/b21lJHKNXY/tJi+0uL7S8ttn/uateuja1bt+Lzzz9HSEiIxjZPT0989NFHcHV1LbQ8xbGfl40/Z9Ji+0uL7S8ttr+02P7alN5tEbU+azZzs4jDsO/dz2TvVRTa36BiW5cuXRAaGorZs2fDwsICEyZMwMSJE+Hp6QkASE1NxcKFC/U+r729PRITE7XWx8fHw8HBIc/jgKyO1+u8vLywatUqREZGwt3dXe88KpWIhIQUvY/ThYis2VsTk9KAl8kmeQ/KnVwug729NRISUqFUqqSOU+qw/aXF9pcW219apm5/e3vrInE1taDq1q2LLVu2IC4uTv20grOzMxwdHQ0+Z2nq5/HfubTY/tJi+0uL7S8ttn9e/usfxe/YCmX7d4z+DkWpn2dQsW306NEYPXq0erljx44IDQ3FkSNHIJfL0b59e60OkS5q166tNWZHYmIiYmJitMb4eF324w25Sf93illDKBQm+geSVWuDSqmCylTvQflSKlWm+zumfLH9pcX2lxbbX1psf904OjoWqMD2ulLVz/sXf86kxfaXFttfWmx/abH9cybv1B3K4+EQqtUwafsUhfY3qNiWk+bNm6N58+YFOoe3tzdWrVqlMabHoUOHIJPJ0KZNm1yPq1atGtzc3HD27FkMGzZMvf7s2bOwsrLKt5NGRERERP9RKpU4ffo0Hj9+jPj4eIiiqLFdEAQEBgbqdU7284iIiEo3mXsDKI+HSx2jUOhcbFOpVFi3bh0qVqyI3r1757pfWFgYnj9/jnHjxukdxt/fH6GhoQgMDMT48eMRHR2NxYsXw9/fH5UqVVLvN2LECERFReHo0aPqddOnT8fEiROxYMECdOjQAdevX8eGDRswevRo2NjY6J2FiIiIqDS6fv06pkyZgn/++UeryJbNkGIb+3lERERUWuhcbAsLC8M333yDXbt25blfnTp1MHfuXFSuXBnvvvuuXmEcHBywadMmfPbZZwgMDIStrS369++P6dOna+ynUqmgVCo11vn4+GDZsmX47rvvsH37dlSsWBGTJ082qOhHREREVFrNnz8faWlpWLlyJZo3b57jDKKGYD+PiIiISgudi20///wz2rdvjwYNGuS5n4eHB3x8fBAWFqZ3sQ0AXF1dtWa+elNoaGiO6319feHr66v3exIRERFRltu3b2P69Onw8fEx+rnZzyMiIiLx77sQRRGCIEgdxWR0ni7r5s2b8PLy0mnfFi1a4MaNGwaHIiIiIiJpVK5cOdfHR4mIiIgMJVSqqn4tPn0kYRLT07nYlpKSAltbW532tbW1RUqKaaZSL3FKcCWXiIiIip+xY8di586dSEpKkjoKERERlSBCpSrq1+LzfyRMYno6P0Zavnx5REZG6rRvZGSk0aaJJyIiIqLCk5ycDFtbW3Tp0gV+fn6oXLky5HK5xj6CIGDkyJHSBCQiIqJiSRAECHXcId67LXUUk9O52Na8eXPs3bsX77//PqytrXPdLyUlBXv37kWLFi2MErDk4uMZREREVPR8+eWX6tdbtmzJcR8W24iIiKggVLeuQ/52S6ljmIzOxbbRo0cjPDwc48aNw5IlSzSmaM8WHR2NWbNm4cWLFxg1apRRgxIRERGR6R0/flzqCERERFRCidFZj48qI47BfOgYidOYjs7Ftnr16uHTTz/Fp59+ik6dOsHT0xNubm6wtbVFcnIy7ty5g4sXL0IURXzyySeoV6+eKXMTERERkQlUq1ZN6ghERERUQpl16wnFj1l3zouxMRDKO0mcyDR0LrYBwIABA/DWW28hODgY586dw2+//fbficzM0LJlS0yaNAlNmzY1elAiIiIiKjzR0dG4ePEiYmNj0a1bN1SuXBlKpRKJiYkoU6aM1jhuRERERPmRd/ZTF9uUVy/BzKe7xIlMQ69iGwA0adIE69atQ1paGiIjI5GUlAQ7Ozu4uLjAysrKFBmJiIiIqJCIoohFixZh69atUCgUEAQBbm5uqFy5MlJSUuDj44MpU6ZwzDYiIiLSmyAIgK0dkJwExQ+bSmyxTWbogVZWVnB3d0ezZs3g7u7OQhsRERFRCbBu3Tps3rwZo0aNwsaNGyGK/03qVKZMGXTt2hVHjhyRMCEREREVZ7I67urXYkqyhElMR6di2/79+zU6WroSRRH79+/X+zgiIiIiksauXbvQu3dvzJgxA3Xr1tXa7u7ujocPHxZ+MCIiIioRzMdOU78Wox5LF8SEdCq2LVy4EN26dcPatWvx+HH+DREZGYlVq1ahS5cu+OKLLwockoiIiIgKx7Nnz/Icf9fa2hpJSUmFmIiIiIhKEsHcHELFylLHMCmdxmw7duwYNm3ahI0bN2LZsmWoVq0a6tevD2dnZzg4OEAURcTHx+Pp06f4888/8ezZM5QtWxYBAQEczyNfgtQBiIiIiNTKly+PZ8+e5br9xo0bqFKlSiEmIiIiohJHyKqFqB7eh6yO9p30xZ1OxTYbGxu8//77GDt2LH755RccP34cV65cwdGjR9WPlwqCgBo1asDT0xOdOnVCx44dYW5ubtLwRERERGRcXbp0wY4dO9C3b1/Y2dkB+HcwYwCnT5/Gnj17MHr0aCkjEhERUTEnRmdd2BMTEyROYhp6zUZqZmaGLl26oEuXLgAApVKJ+Ph4AICDgwOngCciIiIq5qZMmYLz58+jV69eaN68OQRBwNq1a/Htt9/ijz/+QL169TBhwgSpYxIREVExJvfuDGXEMaCE1pEMno0UAORyORwdHeHo6MhCm770n2+CiIiIyOTKlCmDnTt3YsyYMYiOjoalpSUuXryIxMREBAYGYtu2bbC2tpY6JhERERVnsgKVo4o8ve5sIyIiIqKSz8rKChMnTsTEiROljkJERERU7JTsUiIREREREREREVEh4p1tRERERKXYnDlz9D5GEAQsXLjQBGmIiIioNFH9fh54d6DUMYyOxTYiIiKiUuz8+fNa69LS0hAXFwcgaxIsAOpJsRwdHTlmGxERERWImJSY9UKplDaIibDYRkRERFSKnThxQmP53r17GDVqFMaPH48RI0bA0dERABAXF4dNmzYhLCwMa9askSIqERERlRDyt1tCdek3iM//gZjwCoJ9WakjGVWBxmzLyMjAlStXcOzYMfXVTyIiIiIqvj777DN4e3tj+vTp6kIbkHVH2/Tp09GuXTt89tlnEiYkIiKi4k7m3kD9WnntdwmTmIbBxbbNmzejbdu2GDJkCCZPnozbt28DyLrq2bJlS/z4449GC1miCVIHICIiIvrP1atXUb9+/Vy316tXD1evXi3ERERERFTSCHZlIJR3AgAoQkveHfMGFdt++uknLFy4EO3atcOCBQsgiqJ6m6OjI1q1aoWDBw8aLSQRERERFQ4HBwdERETkuj0iIgJlypQpxERERERUEgmVq6pfiyVs7DaDim0bN25Ep06dsHTpUnTs2FFre4MGDXD37t0ChyMiIiKiwjVo0CCcPHkS77//Ps6ePYsnT57gyZMnOHPmDCZMmICIiAj4+/tLHZOIiIiKOfNRk9SvxRfPJUxifAZNkBAZGYmAgIBct5ctWxavXr0yNFMpIea/CxEREVEhmzhxIjIyMrB+/XqcPHlSY5tcLse4ceMwceJEacIRERFRiSHYlQHkckCphPgyFqhURepIRmNQsc3e3h4vX77Mdfu9e/fg5ORkcCgiIiIiks60adMwfPhw/Pbbb3j69CkAoFq1avDy8tKYNIGIiIioQP59fFR88gio6yFxGOMxqNjm7e2NnTt3YsiQIVrb7t69i127dqFfv34FDkdERERE0nB0dISfn5/UMYiIiKgEk9VrCNWt61l3uJUgBhXbpk2bhoEDB6JHjx7o2LEjBEFAWFgYfvrpJxw5cgROTk58vICIiIioGIiKigIAVK1aVWM5P9n7ExERERnMxlbqBCZhULGtUqVK2L17N5YtW4bw8HCIooi9e/fC1tYWfn5++OCDD/iIAREREVEx4OPjA0EQcPXqVVhYWKiX83Pr1q1CSEdERERU/BhUbAOA8uXLY8GCBViwYAHi4uKgUqng6OgImcygCU6JiIiISAJffPEFAMDc3BwAsHDhQp2KbURERESUM4OKbXPmzIG/vz8aN24MAFp3sV27dg3bt29Xd96IiIiIqGiyt7eHh4eHusDWt29fiRMRERERFW8G3Ya2Z88ePHr0KNftT548QVhYmKGZShleOSYiIiLpTJo0CRcuXFAvd+rUCcePH5cwEREREZU+otQBjMokz3w+f/4cVlZWpjg1ERERERmRra0tEhIS1MtPnz5FSkqKhImIiIio1FCpAADKX09IHMS4dH6M9NixYxpXOXfu3ImzZ89q7ZeYmIizZ8/Cw8PDOAmJiIiIyGQaNWqEVatWITY2FmXKlAEAnDp1Ci9evMj1GEEQMHLkyEJKSERERCVWejoAQKjgJHEQ49K52Hb//n0cOnQIANQzVv35558a+wiCABsbG3h6eiIoKMi4SYmIiIjI6ObNm4fZs2fju+++A5DVn9u/fz/279+f6zEsthEREZExyN5uAdXNq1BdvSx1FKPSudg2fvx4jB8/HgBQt25dLFiwAD179jRZsBJPLFnPIxMREVHx5OLigh07diA9PR2xsbHw8fHB3Llz0alTJ6mjERERUQknmJlLHcEkDJqN9K+//jJ2DiIiIiKSkKWlJapWrYpJkyahVatWqFatmtSRiIiIqIQT3qordQSTMKjYRkREREQl06RJk6SOQERERKWEYP7fnW2qp48gq1ZDwjTGY3Cx7dSpUwgJCcHNmzeRmJgIMYfHIm/dulWgcERERERU+O7fv4+ffvoJT548QXx8vFY/TxAEbNq0SaJ0REREVFIIDuXUr5VnT0E2IEDCNMYjM+Sgw4cPY8KECXjx4gV8fX2hUqng5+cHX19fWFlZwd3dHYGBgcbOSkREREQmFhYWhp49e2LLli2IjIyESqWCKIoaf1QqldQxiYiIqKSwL5v11dJS0hjGZNCdbatXr0ajRo2wbds2xMfHY/v27ejXrx+8vLzw5MkTDBo0CM7OzsbOSkREREQmFhwcjHr16mHt2rVwdHSUOg4RERGVcPK3W0J58rDUMYzKoDvb7t+/D19fX8jlcpiZZdXrFAoFAMDZ2RmDBw/G2rVrjZeyJBMEqRMQERERqT1//hz9+vVjoY2IiIjIQAYV26ysrGD+7yB29vb2sLCwQExMjHp7hQoV8OTJE+MkJCIiIqJC4+7ujufPn0sdg4iIiKjYMqjYVqtWLdy/f1+9XK9ePezduxcKhQLp6enYv38/qlSpYrSQRERERFQ4goKC8OOPP+L333+XOgoRERFRsWTQmG1dunRBaGgoZs+eDQsLC0yYMAETJ06Ep6cnACA1NRULFy40alAiIiIiMr21a9eiTJkyGDp0KOrUqYMqVapAJtO8PisIAr7//nuJEhIREREVbQYV20aPHo3Ro0erlzt27IjQ0FAcOXIEcrkc7du3R6tWrYwWskQSpQ5AREREpO3OnTsAgCpVqiA5ORn37t3T2kfgmLNEREREuTKo2JaT5s2bo3nz5urlpKQk2NnZGev0RERERFQITpw4IXUEIiIiomLNoDHb8hIbG4tly5ahY8eOxj41ERERERERERGVRPGvpE5gNHrd2RYbG4uwsDA8evQIDg4O6Nq1Kzw8PAAA0dHR+P7777Fnzx6kp6ejRYsWJglMRERERKZ34cIFnDx5ElFRUQCAqlWrokOHDuzjERERkVGJ6akAAOXv52EeME7iNMahc7Ht/v37GDZsGF69egVRzBpwbN26dfjqq68gCAI++ugjZGRkoGvXrhg9erS6CEdERERExUdGRgZmzpyJY8eOQRRF2NvbAwASEhKwceNGdOnSBUuXLoW5ubnESYmIiKgkkFWuBhUAoVIVqaMYjc7Ftm+//RYpKSmYN28emjdvjidPnuCLL77AwoULkZiYiI4dO+KDDz5A9erVTZmXiIiIiExo5cqVOHr0KEaNGoVRo0ahQoUKALKecNiwYQPWr1+PlStXYtq0adIGJSIiohJBqOIsdQSj07nYdunSJQwePBj+/v4AgDp16kAul2Ps2LHo06cPvvjiC5OFJCIiIqLC8fPPP6NPnz748MMPNdaXL18es2bNQmxsLPbt28diGxERERmV+Pc9iKJYImY913mChFevXsHd3V1jXd26dQEAnTt3Nm6q0qT4/wwRERFRCRITE4NGjRrlur1Ro0aIiYkpxERERERUkmk8PpqWKl0QI9K52KZSqWBmpnkjXPayjY2NcVMRERERkSQqV66MCxcu5Lr94sWLqFy5ciEmIiIiopJMKO8kdQSj02s20j///BOWlpbq5eTkZAiCgMuXLyMxMVFr/65duxY8IREREREVmt69e2PFihUoU6YMRo4cCRcXFwiCgIcPH2LTpk04dOgQJk+eLHVMIiIioiJLr2Lbpk2bsGnTJq31wcHBWusEQcCtW7cMT0ZEREREhW7ChAl4/Pgxdu7ciV27dkEmy3oQQqVSQRRF9OnTBxMmTJA4JREREVHRpXOxbfPmzabMUQqJUgcgIiIi0iKXy7Fo0SKMHDkSERERePr0KQCgWrVq8Pb2Vo/ZS0REREQ507nY1qJFC1PmULt//z4+//xzXLlyBba2tujVqxemTZsGCwsLnc8REhKCL774Ah06dMDq1atNmJaIiIioZKpbty4La0RERFSo0oMCYfnNhmI/I6nOEyQUhvj4eIwYMQKZmZlYsWIFpk+fjp07d2LRokU6nyMmJgYrV65E+fLlTZiUiIiIqORIT0/HJ598gtDQ0Dz327x5M+bNm4fMzEyD3uf+/ft477330KRJE7Rp0waLFy9GRkaGXucICQmBu7s7xo8fb1AGIiIiKmJen4wzLRXii2jpshhJkSq27dixA8nJyQgODka7du3Qv39/zJo1Czt27EB0tG6N/dVXX8HHxweurq4mTktERERUMvzwww/Ys2cPOnTokOd+HTp0wO7du7Fr1y6934MXVYmIiCgngiDAcsVr8wOoVNKFMZIiVWyLiIiAl5cXypYtq17XvXt3qFQqnDlzJt/jL126hGPHjmHmzJkmTElERERUsoSHh6Nr166oXr16nvvVqFED77zzDg4cOKD3e/CiKhEREeVGsLAErKwBAGLkA4nTFFyRKrY9ePAAtWvX1lhnb28PJycnPHiQd2MrlUp89tlnmDBhAipWrGjK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lSujXbt2ePz4MY4fPw6VSoXvv//elBmJiIiIiIiIiKgUEeTy/xYUmdIFMYBM1x23b9+O+vXr49ChQ/j222+xe/duDBs2DKdOnUJcXJwpMxIRERFRIdm/fz+CgoJy3T5nzhz1eL1EREREpiS41ZM6gkF0LrY9fvwYvXr1gpXVfwPUDRkyBCqVCpGRkSYJR0RERESFKyQkBBYWFrlut7S0xKZNmwoxEREREVHxonOxLT4+Ho6OjhrrypUrBwBIT083bqrShAMQExERURHy999/o1693K8i161bFw8ePCjERERERETFi87FNgCcmYqIiIiohBNFEYmJibluT0hIgEKhKMRERERERMWLzhMkAMDSpUuxevVq9bLq36lXP/74Y1hbW2vsKwgC9u3bZ4SIRERERFRY6tevj/3792PkyJFaj5NmZGTg559/zvPONyIiIqLSTudim6enZ47r33y0lIiIiIiKr7Fjx2LChAkYPnw4xo0bh7feegsAcOfOHaxZswb37t3jTPREREREedC52BYaGmrKHERERERUBLRv3x4LFizAggULEBgYqF4viiJsbW3x2WefoUOHDtIFJCIiotIno3jNFaDXY6SF4f79+/j8889x5coV2NraolevXpg2bVqes2I9f/4cISEhOHPmDB49eoQyZcrA09MTM2bMQLVq1QoxPREREVHx17dvX3Tt2hWnT5/G48ePAQA1atRAmzZtYGdnJ3E6IiIiKjUyMgAAyisXIPdqL3EY3RWpYlt8fDxGjBiBmjVrYsWKFYiOjsaiRYuQlpaGTz75JNfjbty4gaNHj6Jfv35o3LgxXr58ie+//x4DBgzA/v37+agrERERkZ7s7OzwzjvvGPWcvKhKREREejHP6iMIZRwkDqKfIlVs27FjB5KTkxEcHIyyZcsCAJRKJebPn4/x48ejUqVKOR7XrFkzhIeHw8zsv2/n7bffRocOHRAWFoZRo0YVRnwiIiKiEkGpVOLQoUM4f/48YmNjMWXKFLi7uyMxMRG//fYb3n77bVSoUEGvc/KiKhEREelLXr8RFHdvSR1Db0Wq2BYREQEvLy91oQ0Aunfvjnnz5uHMmTPo27dvjsfZ29trratcuTIcHR3x/PlzU8UlIiIiKnESEhIwZswYXLt2DTY2NkhNTcWwYcMAADY2Nvj888/Ru3dvzJgxQ6/z8qIqERERlRYy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AoQnj8QOp1R8QQIREREREREREVUJOp2dCydq1RY3kDKw2EZERERERERERFWCxMAAACA8ShY5ktKx2EZERERERERERFVDdjYAQHY/QeRASqf2mG03b96szDiIiIiIiIiIiIjKJLF8HzgTDYmxidihlIp3thERERERERERUZUgMTUTO4RysdhGRERERERERESkJSy2iUEQxI6AiIiIiIiIiIgqAYttREREREREREREWsJim9gkYgdARERERERERFS1CH8/EDuEUrHYRkREREREREREVYOObuH/ZQUQXmaJG0spWGwjIiIiIiIiIqIqQed9O8V07vdfihhJ6VhsIyIiIiIiIiKiKkGip6eYFh4miRhJ6VhsIyIiIiIiIiKiKqP2p4sLJwyNxA2kFCy2ERERERERERFRlSExMi6ceJEKoaBA3GBKwGIbERERERERERFVGZKGjRXTsgtnRYykZCy2ERERERERERFRlSGpb6CYLoj7Q7xASsFimygEsQMgIiIiIiIiIqqyJNY2AADZjasiR6KKxTYiIiIiIiIiIqpSag0coZiWJd4RMRJVLLaJTSIROwIiIiIiIiIioipFx6a1Yrog9qSIkahisY2IiIiIiIiIiKoUiY4OdBw6AwAKLp0TORplLLYREREREREREVGVo9PSGgAgaWQuciTKWGwjIiIiIiIiIqIqR9LUQuwQSsRiGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERVVnCg0QIMpnYYSiw2CYGQewAiIiIiIiIiIiqNomxiWK64Nqf4gVSDIttopOIHQARERERERERUZWjY9FSMS1kZ4sYiTIW24iIiIiIiIiIqErSsWkNACj487zIkfyLxTYiIiIiIiIiIqqShLTnAID8yxdEjuRfLLYREREREREREVGVpOvYvXAiJxtCQYG4wfzPW1dsS0hIwOTJk+Hg4ABnZ2esW7cOubm55S4nCAK2bt2Knj17wt7eHh4eHrh8+XLlB0xERERERERERKLQdflQMf109eciRvKvt6rYlp6ejkmTJiEvLw/+/v7w9vbGnj17sHbt2nKX3bZtG/z8/PDxxx8jICAAjRo1wpQpU/D333+/gciJiIiIqDy8qEpERETaJjEyUUy/+vOSeIEU8VYV23bv3o2XL19i48aN+OCDDzBixAgsXLgQu3fvRkpKSqnLvXr1CgEBAZgyZQo+/vhjODk54dtvv4WJiQl27NjxBveAiIiIiErCi6pERERUWWr/Z5li+m14lPStKrbFxMTAyckJJiYmijY3NzfIZDKcPn261OUuXryIrKwsuLm5Kdr09PTQp08fxMTEVGbIRERERKQGXlQlIiKiyqLTwkoxLbt3V8RICr1VxbbExERYWloqtRkZGaFRo0ZITEwsczkAKstaWVnh4cOHyMnJ0X6wRERERKQ2XlQlIiKiyiKpW08xnX/ujIiRFKoldgBFZWRkwMjISKXd2NgY6enpZS6np6cHfX19pXYjIyMIgoD09HTUqVNHo5hq1dJ+PVKADl79b1q3li4klbANKpuuro7S/+nNYv+Li/0vLva/uNj/4klMTMTw4cOV2l73ompwcDBycnI0zvOIiIio+pCYNYTw/BnwFuQFb1Wx7W2joyOBqWn9Slm37sjREPLyYGxuVinrJ/UYGdUVO4Qajf0vLva/uNj/4mL/v3k15aIqwKKu2Nj/4mL/i4v9Ly72v7hqzV2M/MO/opbTB4DINzW9VcU2IyMjZGZmqrSnp6fD2Ni4zOVyc3Px6tUrpUQsIyMDEomkzGXLIpMJyMj4R6Nly6M7YASMjeoiIyMbBQWyStkGlU5XVwdG7H/RsP/Fxf4XF/tfXJXd/0ZGdZlgVxGVeVFVjkVdcbH/xcX+Fxf7X1zsf5GYtgLaLhc7CgBvWbHN0tJS5TGCzMxMPH36VOXRgeLLAcC9e/dga2uraE9MTESTJk1e69GC/PzK/SJUUCCr9G1Q6dj/4mL/i4v9Ly72v7jY/29ejbqoyqK6qNj/4mL/i4v9Ly72v7jepouqb1WxzcXFBVu2bFF6zCAyMhI6OjpwdnYudbkOHTrAwMAAERERimJbXl4ejh8/DhcXlzcSOxERERGVjhdV6U1j/4uL/S8u9r+42P/iehv6/616zmH06NGoX78+vLy8EBsbi71792LdunUYPXo0zM3NFfNNmjQJffr0Ufysr6+PGTNmIDAwEMHBwThz5gzmz5+PtLQ0eHp6irErRERERFSEi4sL4uLikJGRoWir6EVVOV5UJSIiorfZW3Vnm7GxMYKDg7Fq1Sp4eXmhfv36GDFiBLy9vZXmk8lkKCgoUGqbNm0aBEFAYGAgnj9/Djs7O+zYsQPNmzd/k7tARERERCUYPXo0QkJC4OXlhRkzZiAlJaXUi6oPHz5EVFQUgH8vqvr7+8PMzAxSqRShoaG8qEpERERvrbeq2AYUvsY9KCiozHlCQkJU2iQSCWbMmIEZM2ZUUmREREREpCleVCUiIqKa4q0rthERERFR9cSLqkRERFQTvFVjthEREREREREREVVlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZZIBEEQxA7ibSUIAmSyyuseXV0dFBTIKm39VDb2v7jY/+Ji/4uL/S+uyux/HR0JJBJJpaybtIt5XvXG/hcX+19c7H9xsf/F9bbkeSy2ERERERERERERaQkfIyUiIiIiIiIiItISFtuIiIiIiIiIiIi0hMU2IiIiIiIiIiIiLWGxjYiIiIiIiIiISEtYbCMiIiIiIiIiItISFtuIiIiIiIiIiIi0hMU2IiIiIiIiIiIiLWGxjYiIiIiIiIiISEtYbCMiIiIiIiIiItISFtuIiIiIiIiIiIi0hMU2IiIiIiIiIiIiLWGxjYiIiIiIiIiISEtYbCMiIiIiIiIiItISFtsqQUJCAiZPngwHBwc4Oztj3bp1yM3NLXc5QRCwdetW9OzZE/b29vDw8MDly5crP+BqRpP+f/LkCdatW4chQ4agffv2cHFxwfz585GcnPyGoq4+ND3+iwoKCoKNjQ1mzJhRSVFWX6/T/ykpKVi8eDG6du0Ke3t7uLm54eDBg5UccfWiaf+/ePECy5cvR8+ePeHg4ICBAwciNDT0DURcvTx48ADLly/HkCFD0KpVKwwcOFCt5Xj+pYpgnicu5nniYp4nLuZ54mKeJ66qlufVqvQt1DDp6emYNGkSWrRoAX9/f6SkpGDt2rXIycnB8uXLy1x227Zt8PPzw4IFC2BjY4Ndu3ZhypQpOHDgAJo3b/6G9qBq07T/r127hqioKAwfPhzt2rXDixcv8MMPP2DkyJE4fPgwzMzM3uBeVF2vc/zLPX36FJs2bUKDBg0qOdrq53X6/8mTJ/Dw8EDLli2xatUqGBgY4M6dOxVOoGuy1+n/uXPnIjExEfPmzcO7776LmJgYrFixArq6uhg1atQb2oOq786dO4iOjka7du0gk8kg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jw8OHToEd3d3bNmyRTGWnr6+Pvr06YNx48ZhyJAhSsv17dsXEyZMwJEjR3Dw4EEIgqA4wX/xxRdo06YNdu/eje+++w66urpo2rQpBg8erPRmyJLo6elh0KBBiIyMxLx581Q+P3z4sGK8j1q1auHdd9+Fp6cnvLy8Shz3S65OnToICQnB+vXrER4ejqysLLRs2RJr1qyBu7u70rxr1qyBjY0Nfv31V6xbtw6GhoZo06YN2rdvX+r6nZyc8P3332POnDlYtGgRNmzYgEGDBqFx48bYunUrduzYgdzcXJibm6NTp05K23RxcYGvry++//57bNiwARYWFlizZg1OnjypViFVR0cH69atw4cffog9e/YgMDAQWVlZMDU1RefOnbFw4UJF7LVr18bGjRuxcuVK+Pr6olGjRpg0aRKMjIyUxj1T9/hfvXo1Vq1ahTVr1iAvLw+ffvoppFIpunXrhu3bt8PPzw9+fn6oVauWIpay/n4qSkdHB5s2bUJQUBAOHDiAqKgo1K1bF82aNcOECRPUehx98ODB2LNnD37++WdkZGSgUaNGcHNzw+zZs5WOqePHj0NPT6/Ev1EiIqqZ+vbtCwsLCwQGBmLUqFGwtrbG3r17sXHjRoSHhyMtLQ1mZmZo1aoVvLy8FMvVr18fu3btgr+/P6KiohAeHo4GDRrAyckJ5ubmAArfGv/s2TOEhYUhNjYW1tbW+OabbxAZGanxhdbiysu7NOHk5IQvv/wS27Ztw1dffYVmzZphwYIFSE5OVimMeXl54fnz5zh27BgiIiLg4uKC7du3qxT+bG1tsWPHDqxZswZ+fn545513MHv2bDx9+lStYhtQWPDq2rUrQkJCEBoaivT0dBgZGaFdu3bYvHkzPvzwQwAV63f5nXK7d++Gnp4ePvroIyxatEjlxVmurq749ttv4e/vjw0bNqBFixZYs2YN9u/fX+7jxKUpKxdPSEjA7du3sXTpUo3WTVTVSISKjGhIRFRD/f3333Bzc8O2bdu0dpWV6HUNHToUjo6OTFyJiKhaYd4lniFDhsDMzEwxnI22fPnllzh//jz27dvHO9uoRuCYbUREamjevDmGDx+OrVu3ih0KEQAgJiYGDx48wIwZM8QOhYiISKuYd1W+vLw8lbHi4uPjcfPmTTg6Omp1Wy9evMCvv/6K//znPyy0UY3BO9uIiIiIiIiIapCkpCRMnjwZgwcPRuPGjZGYmIjdu3fD0NAQhw4dgqmpqdghElVpHLONiIiIiIiIqAYxNjZG69at8csvv+D58+eoV68eevTogQULFrDQRqQFvLONiIiIiIiIiIhISzhmGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZb8f+LTcOl3bPRGAAAAAElFTkSuQmCC\n"},"metadata":{}}],"execution_count":62},{"id":"eddc4cfd-f5b3-44c0-8e68-cb8d2d8416a1","cell_type":"code","source":"import matplotlib.pyplot as plt\n\n# Extract feature importance based on 'gain'\nimportance = best_model.get_booster().get_score(importance_type='gain')\n# Sort features by importance\nsorted_importance = {k: v for k, v in sorted(importance.items(), key=lambda item: item[1], reverse=True)}\n\n# Plotting top 10 features\nplt.figure(figsize=(10, 6))\nplt.barh(list(sorted_importance.keys())[:10], list(sorted_importance.values())[:10], color='skyblue')\nplt.gca().invert_yaxis()\nplt.xlabel('Importance Score (Gain)')\nplt.title('Top 10 Features: Validating Behavioral Engineering')\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:48:58.314115Z","iopub.execute_input":"2026-01-17T19:48:58.314428Z","iopub.status.idle":"2026-01-17T19:48:58.466236Z","shell.execute_reply.started":"2026-01-17T19:48:58.314403Z","shell.execute_reply":"2026-01-17T19:48:58.465591Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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c985HiuMiAMA7sput6tfv36OgqV8+fLasWOHxowZo+joaL377rtO/ffs2aPvvvtOYWFh8vT01OLFi/Xqq6/qm2++UWBgYJbEdOjQIVWoUEFubs7fJwcFBWnp0qU6fvx4uve+W61WXbx40aktZ86cypMnj2w2m/r166d9+/apQ4cOKl26tP73v/9p/vz5OnHihL744gvHPosXL1bZsmUVGhqqHDly6D//+Y+GDx8uu92uzp07S5LeffddffTRR8qdO7f69u0r6f8VU5l1/PhxDRo0SC+99JI6dOigkiVL6tq1a3rllVcUHR2tjh07qnDhwtq/f78mTJig8+fP67333pMk7dy5U2+99Zbq1KmjwYMHS5KOHTumn3/+WV27dnWco1u3bpKkLVu23DWWZ599VpMnT9batWud7s23Wq1av369qlevrieeeEIXL17UN998o9atW+vFF1/UlStXtGzZMsfnIrP3ZU+cOFFTp05Vw4YN1bBhQ/3+++/q0aOHbty44dTv5MmT2rRpk1q0aKGiRYvqwoULWrp0qV555RWtW7dOBQsWVOnSpfXaa69p0qRJeumll1StWjVJUtWqVe8aw9q1a3XlyhW99NJLMplMmjVrlsLDw7Vp0ybHqObWrVv15ptvKjAwUIMGDVJcXJzee++9TN3+cOvnNDk5WX/99ZciIyNVvHhxpxgvXLigDh06yGQyqXPnzvLz89P27dv13nvv6fLly473NMXMmTNlMpnUo0cPXb58WbNmzdLgwYP1zTffOPpERUUpMTFRnTp1Ut68eXXgwAEtWrRIZ8+e1aRJkyTdnIkyduxYrV+/Xq+++qrTOdavX6969erJ19c3zWvL7N+Wn376SevXr1fnzp2VL18+FSlSRNLN9StCQ0P17LPP6saNG1q3bp1ef/11TZ8+XY0aNcpwrm+VlJSU6u+DJHl7ezvdJhEXF6dXX31VTZs2VcuWLbVhwwaNGzdOgYGBatiwoaSbXzZ07dpV58+fV5cuXZQ/f36tXbvWqQBPT0Y+b0ePHlWnTp1UsGBB9erVS7lz59b69es1YMAARUZGqmnTppKU4b8XKVasWKGkpCR16NBBnp6e8vX1TfUFXwqr1aqePXsqODhY77zzjn788UfNmTNHTz75pF5++WVJcvx9PXDggDp16qRSpUpp8+bNGjJkSIbzATwS7AAA3GL48OH2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dXybzabAwEANHTo0ze2FChWSdPMfv926dVOpUqUUERGhwoULy8PDQ9u2bdO8efPueB/lre5ULNxp9kBaK6TbbDbVq1cv1T26KVKKVn9/f61atUo//PCDtm/fru3bt2vFihVq06aNPv3003RjTYu/v7/q1q2r77//XsOGDdOWLVt05coVPfvss44+3377rSIiItSkSRP17NlT/v7+cnd31/Tp051GDrPatGnTNHHiRL3wwgt6/fXX5evrKzc3N33yySf3/YioO63kfr/HzYhKlSrJx8fHMXKZ8jl77rnn1LZt2zT3uX3NhNvXV0iREr/ValX37t0d90CXKlVKuXPnVnR0tCIiIpw+2wULFlT16tW1fv169e3bV7/88ovOnDnjWIcgq6T12d+7d6/69eunGjVq6IMPPlBAQIA8PDy0fPlyrV27NkvPnxajVvRP7/OW8n706NEj1YyZFCmFbkb/XqTIzFMZXPmEA+BhQyEOALirIkWK6Mcff9Tly5edRq6OHTvm2H6r21delqQTJ07Iy8srU9Mb76ZcuXLat2+fbDabU0Fx4MABeXl53fezfosVK6bDhw+rTp06dx1V27Jli65fv66pU6c6jTCmtQjTnY5z60hkys/S/xtRzWi8V69ezdAInqenp0JDQxUaGiqbzaYPP/xQS5cuVf/+/dOczZARzz77rHbs2KHt27dr7dq18vb2dlr5ecOGDXryySc1efJkpzykLPiVGSl5PnHihJ588klH+8WLF1ON2m7YsEG1atXSJ5984tQeHx+vfPnyOV7fz8hpenGmtfp8Wr8jmWW1WnX16lVJN2cDpCwymJHPQEb873//04kTJ/Tpp5+qTZs2jvY73dbQsmVLDR8+XMeOHXM83/zpp5++6zky+7clLRs2bFDOnDk1e/Zsp6n2y5cvT3dfoxQpUkR//vmn7Ha702ctI08myKiU3wUPD490PwOZ+XvxIDzxxBPatWuXrl275jQqnpX5AB4G3CMOALirBg0ayGq16ssvv3RqnzdvnkwmU6ppzfv373e6H/Xff//V5s2bVa9evSwbLWnRooUuXLig77//3tF28eJFRUVF6emnn07z/vHMaNmypaKjo/X111+n2paYmOgogFKu59ZR0ISEhDSLAC8vL6dpvylSRqluvS/z6tWrWrVqVabi3b9/v+NxTreKj49XcnKypJuPDLqVm5ubY6T01im9GX18WYomTZrIy8tLX331lbZv365mzZo53R6QVp5+/fVX/fLLLxk+R4q6devKw8NDixYtcjre7Y9gSznv7SPU69evd9wrmyKlGEjr/blXBQsWVGBgoFatWqUrV6442nfv3q3//e9/93Xsn376SVevXlW5cuUk3bzO5s2ba8OGDWkeO63Vv9OT8gXXrfmz2+1asGBBmv2bN28ud3d3rVu3TlFRUWrUqJFy585913Nk9m9LWtzd3WUymZxmkJw6dSrNR3a5Sv369RUdHe0UU1JSUpp/X+6Vv7+/atasqaVLlzpmBt3q1s9ARv9ePCj169fXjRs3nK7fZrOl+hwAjzpGxAEAdxUaGqpatWrps88+0+nTp2WxWLRz505t3rxZXbt2TXVfX2BgoHr27On0+DJJCg8PT/dcW7ZscTzj+caNGzpy5IjjUWGhoaGOwqN58+YKCQnR0KFD9eeffypfvnxavHixrFZrhs6Tnueff17r16/XBx98oF27dqlq1aqyWq06duyYoqKiNGvWLAUFBalevXry8PBQ37591bFjR125ckXffPON/P39U02dr1ixohYvXqwvvvhCxYsXl5+fn+rUqaN69erpiSee0Hvvvadjx47J3d1dy5cvV758+TI8Kt6zZ09t2bJFffv2Vdu2bVWxYkVdu3ZN//vf/7RhwwZt3rxZfn5+ev/99xUXF6fatWurYMGCOnPmjBYtWqTy5cs77suVMv74shR58uRR48aNHVOBb52WLkmNGjXS999/rwEDBqhRo0Y6deqUlixZojJlyji+1MgoPz8/9ejRQ9OnT1efPn3UsGFD/fHHH9q+fbvTKHfKeadMmaKhQ4eqSpUq+t///qc1a9Y4jaRLN78MMZvNWrJkifLkyaPcuXMrODg4Vb/MevPNN9W/f3916tRJ7dq1U3x8vL788ksFBgY6Fed3k5CQoG+//VbSzVHw48ePa/HixcqVK5d69+7t6Ddo0CDt2rVLHTp00IsvvqgyZcooLi5Ov//+u3788Uft3r07U7GXKlVKxYoV06effqro6Gh5e3trw4YNd/yywt/fX7Vq1dLcuXN15coVPfPMM+meI7N/W9LSsGFDx0KLrVu3VkxMjL766isVK1bM6T7tzDpx4oQj77fKnz+/6tWrl6ljvfTSS1q0aJEGDRqkLl26KCAgQGvWrHF8WZVV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qyNHjtx1v/79+8tisWj27NlO7WFhYerTp0+WxQcAAAAAmfXIFuKTJ0/OdCG+cuVKrV279gFF9eg4ffq0Jk+erHPnzjm1V6xYUUuXLlXp0qWz7FxnzpzR0qVLVa9ePX3++ef66KOPlJCQoJdeekl//fVXmvts27ZNv/76a5bFAAAAAABZ6ZEsxJF5iYmJ930Mb29vhYSEKHfu3FkQ0U1FixbVxo0b9eabb6p+/fpq3LixZsyYoZw5c+qrr75K1f/69ev6+OOP9dZbb2VZDAAAAACQlVxWiO/fv199+/ZV/fr1FRISoueff16rVq1ybE+Z5rxjxw69/vrrqlKliho1auSYOr5gwQI1atRINWvW1Hvvvafr169Lujm9fOjQoZKkOnXqyGKxKDQ0NN14wsLCtHv3bm3dulUWi0UWi0WRkZGO7UuWLFHz5s1VqVIlhYaG6osvvpDNZsvw9W7dulXdu3dXnTp1VLVqVb344ovavn27Y/upU6dksVgUFRWVat927do5FZZ79+5VmzZtFBQUpGeffVY7d+7U888/r4iIiAzHY7FYNGPGDI0dO1b16tVTnTp1JGXsfenSpYskqX379o5cpWy7fWp6UlKSRo0apfr16ysoKEjPP/+8Nm7cmOE4c+fOLS8vL6e2PHnyqFixYqlG5CVp9uzZMpvNateu3V2PGxUVpebNm6tKlSrq0qWL/vnnnwzHBAAAAAD3I4erTnzmzBlVrVpVnTp1kqenp37++We9//77stvtatu2raPfhx9+qLZt26pDhw76+uuv9c477+jw4cM6evSohg8frpMnT2r06NF68skn1bdvXzVq1Ej9+vXT1KlTNWvWLPn4+MjT0zPdeD744AO9/fbbypUrl4YMGSJJKlSokCRp4cKFGjlypMLCwtSoUSPt379fkydPVkJCgqNvek6dOqWnn35aPXr0kJubm7Zv367evXtr/vz5qlWrlooWLaqQkBB99913atGihWO/EydO6Pfff9fAgQMlSefOnVOvXr1UoUIFff7550pISNCHH36ohIQElS9fPsP5l25+mVG5cmV9/PHHSk5OlpT++1KxYkUNGzZMI0aM0KhRo1SqVKm7nmPw4MHasWOH3njjDZUqVUrffvutwsPDNWXKFDVu3DhT8aaIj4/X0aNHVbduXaf2M2fOaMaMGZo7d65MJtMd9z906JAuXryo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999XrVq19OKLL2rhwoWqXLmyLl++7HS8v/76SxaLRdu2bUs3R127dtXbb7/teH3w4EFZLBa99tprjrZjx47JYrHowIEDjrbvv/9ezz//vIKCglS/fn2NGjVKSUlJTseOj4/Xhx9+qPr166tSpUpq166dfvjhh3RjAgAAAICsksPVATxO9u3bp65duyokJEQjR46U2WzWwYMHdebMGUlSTEyM+vTpowIFCujixYuaO3euwsLCtG7dOuXIkUMffPCB3n77beXKlUtDhgyRJBUqVEiSFBUVpTfffFPt2rVTeHi4zp8/r/Hjxys+Pl6fffaZpJsj1j169JDZbNbYsWMlSVOmTFF8fLyKFSvmiPPgwYPq3r27atWqpYkTJ+rChQsaP368/vzzTy1ZskTu7u6OvhMmTFDDhg01fvx42Ww2Va5cWWPHjtXatWvVsWNHR79ly5apYMGCql+/frp5qlGjhpYvX+54vWfPHuXMmVP79u1zasudO7cqVqwoSdq8ebNee+01tWrVSoMGDdKxY8f02Wef6d9//9WkSZMkSdevX1f37t0VExOjN954QwULFtTq1avVp08frVixQhaLJRPvJgAAAADcGwpxA40dO1bFixfX/PnzHcXsrYXpqFGjHD9brVZVqVJFDRo00E8//aT69eurTJky8vb2Vu7cuRUSEuLoa7fbNWbMGD3zzDP6+OOPHe0BAQHq3bu3+vfvr7Jly2r58uWKiYnR4sWLVbRoUUlSpUqV1KxZM6dCfNq0aQoICNC0adPk4eEhSSpcuLB69uypbdu2KTQ01NG3XLlyTueUpObNm2v58uWOQjw5OVmrV69W+/btnYr4O6levboiIyN1+vRpFSlSRHv27NELL7ygJUuW6K+//lLp0qW1Z88eVa1a1XG8yZMnKyQkROPHj5ckNWjQQF5eXho2bJiOHDkii8WiNWvW6PDhw/r2229VpkwZSdJTTz2lv//+W1988YUmTpyYbmxAVnF3f/gmJKXE/DDG/rAi565B3l2DvBuPnLsGeTdedsw5hbhBrl27pl9//VVvvfXWHYvRbdu2aerUqTp69KjT1O4TJ07cdST5+PHjOn36tN59910lJyc72mvWrCk3NzcdPHhQZcuW1cGDBxUYGOgowiWpaNGiKleunNPx9u7dq9atWzuKcOnmFwZms1n79u1zKsQbNWqUKp4OHTro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77+aNm2a+vfvr4ULFzode8uWLfr77781bNgwxcbGatSoUfroo4/02WefSZKmT5+uJUuWaPDgwSpbtqxiY2O1c+dOXb9+PUOx79u3T127dlVISIhGjhwps9msgwcP6syZM5Ju3nvdq1cvnTx5UoMHD1b+/Pm1cOFCde/eXUuWLFGlSpUyna/PP/9cjRs31ueff679+/crMjJSxYoVU6dOnfTiiy/q7NmzWrt2rebPny9J9zx1PDk5Wb/++quqVavm1H758mWNGTNG7777rry8vO64//nz5zVy5Ej17t1bPj4+Gj9+vAYOHKiNGzfKw8PjnmICAAAAgMygEL+DYsWKyc/PT2fOnFFISIjTtri4OM2cOVOVK1d2ah8+fLjj5+TkZBUtWlQvv/yyjh8/rpIlSzq22e12TZ061TGd/fTp05o+fbpsNpvc3Nz022+/qX79+urcubNjn+bNm2c49rFjx6p48eKaP3++3N3dJUn169d3bN+6dasOHDigWbNm6amnnnJsb9asmaZPn67IyMgMnytFcHCw3n//fUk3p4/v2rVLGzZsUKdOnVSoUCEVKlRIbm5uqXKZWbNmzVJ0dLS6devm1D558mQVL15czzzzzF33j4uL06JFi1S2bFlJkpeXl7p06aJff/1V1atXv6/Y7oW7O5NS7kVK3sifsci78ci5a5B31yDvxiPnrkHejZcdc04hfg/y5s2bqgiXpFWrVmnevHn6+++/dfXqVUf7iRMnnArxGjVqON1TXrp0ad24cUMxMTEKCAhQhQoVNHv2bEVGRqphw4aqVKmS3Nwy9qG5du2afv31V7311luOIvx2e/fulbe3t6MIlyQPDw81bdpUa9euzdB5bndroZ9yTT/99NM9HetOdu7cqcjISPXv399p1P7o0aP68ssv9fXXX6d7jAIFCjiKcEkqU6aMJCk6OjpLY80os/nOo/dIH/lzDfJuPHLuGuTdNci78ci5a5B342WnnFOI34P8+fOnatu4caOGDBmil156SW+++aby5s2r8+fPa8CAAUpKSnLqazabnV6nFOUp/fr16yc3NzetXLlSkydPlp+fnzp37qwBAwbIZDLdNbb4+HjZbDYVKFDgrn38/f3TvK64uLi7Hv9OfHx8nF57eHhkeCp9Rvz+++8KDw9X69atNXDgQKdto0ePVosWLVSkSBHFx8dLkmw2m27cuKH4+Hh5e3s7vsi4Pfcp09Fvf4+MEh9/TVarzSXnfpi5u7vJbPYifwYj78Yj565B3l2DvBuPnLsGeTeekTk3m70yNPJOIX4P0iqGo6KiVL58eafFzXbv3n1Px/f09FR4eLjCw8P1999/a/ny5YqMjFTRokXVpk2bu+7r4+MjNze3NBczS+Hr66uYmJhU7RcuXHBaHM3T01M3btxw6nOvhfr9+Pvvv9WrVy9VqVJFI0eOTLX9+PHj+uGHH7R69Wqn9q+//lpff/21vvvuO5UuXdqocDPFarUpOZk/wPeK/LkGeTceOXcN8u4a5N145Nw1yLvxslPOs88k+WzIw8MjwyOliYmJqRb7WrNmzX3HULx4cb311lvKmzevjh07lm7/3LlzKyQkRN9++62sVmuafapVq6bLly/rhx9+cLQlJydr06ZNTougFSpUSH/99ZfTvreuvJ4Z9zpCfu7cOfXo0UOFCxfWpEmT0lxQbcKECVqwYIHTf/nz51eTJk20YMECPfHEE/cUMwAAAAA8CIyI30Xp0qW1fPlyrV27VsWLF1e+fPnu2Ldu3boaMWKEpkyZoipVqmjbtm368ccf7+m8/fv3V8WKFVWhQgV5eXnpP//5j+Li4lS7du0M7T9o0CB169ZN3bp108svvyxfX1/9/vvvypcvn9q3b69GjRopODhYb7/9tgYNGuRYNf3cuXOaNGmS4zjNmzfXhx9+qMmTJzuu6ZdffrmnaypdurSSk5M1f/58ValSRd7e3ipVqtRd90lMTFSvXr0UGxur9977/9q797iasv4P4J+Kmi6KGjKUGcycKFFJiTRTDFPkriJC5DIh4UdM7ibDMC65DIlBpFGMJ9dnXIZxGXNpMB73yqUYD91ON3Wq/fvDq/3YndLRHKfJfN6vl9fLWWudddb+ntPZ+3v22mt/htu3b4t1urq6sLa2BoBKF4DT09ODubk5nJ2dazReIiIiIiKi14WJ+EsMHjwYV65cweLFi5GdnY0BAwZU2dbPzw9paWmIiYlBdHQ0XF1dsXLlSvj4+Lzy6zo4OODIkSPYtm0bSktL0bJlS6xYsQJdunRR6fmOjo7YsWMHVq9ejdmzZ0NbWxsffPABpk6dCuD5vbg3b96M5cuX48svv0RBQQFsbGywdetWySJoQ4YMwf379xEbG4tvvvkGXl5emDZtGqZPn/7K2+Tu7o5hw4Zh8+bNyMjIQKdOnZRu61bR06dPcePGDQDPr5t/UfPmzXHy5MlXHgcREREREVFt0xIEQajtQRC9CbbdyMLjwsovB6jIXF8Ho9s0QlZW/t/mOpW6pF49bTRqZMj4aRjjrnmMee1g3GsH4655jHntYNw1T5MxNzU1VGmxNl4jTkRERERERKRBnJpex5SWluJlkxjq1as7b2lJSUmVdVpaWlXeB52IiIiIiKguqztZGwEARo0a9dLbop04cQIWFhYaHFHN2djYVFnHa8CJiIiIiOhNxUS8jlm4cCHy8/OrrG/SpIkGR/PXxMfHV1mnq6urwZEQERERERFpDhPxOqa6W37VJba2trU9BCIiIiIiIo3jYm1EREREREREGsREnIiIiIiIiEiDmIgTERERERERaRATcSIiIiIiIiIN4mJtRGpi9pbqf06v0paIiIiIiN4szAaI1EAQBPR9r8ErPaesTEBZmfCaRkRERERERH9XTMSJ1EBLSwtyeSFKS8tUfg4TcSIiIiKifyYm4kRqUlpahpIS1RNxIiIiIiL6Z+JibUREREREREQaxESciIiIiIiISIOYiBMRERERERFpEBNxIiIiIiIiIg1iIk5ERERERESkQUzEiYiIiIiIiDSIiTgRERERERGRBjERJyIiIiIiItIgJuJEREREREREGsREnIiIiIiIiEiDmIgTERERERERaRATcSIiIiIiIiINYiJOREREREREpEFMxImIiIiIiIg0iIk4ERERERERkQYxESciIiIiIiLSICbiRERERERERBqkJQiCUNuDIHoTlJaW1fYQ/lF0dLQZ81rAuGseY147GPfawbhrHmNeOxh3zdNUzLW1taClpVVtOybiRERERERERBrEqelEREREREREGsREnIiIiIiIiEiDmIgTERERERERaRATcSIiIiIiIiINYiJOREREREREpEFMxImIiIiIiIg0iIk4ERERERERkQYxESciIiIiIiLSICbiRERERERERBrERJyIiIiIiIhIg5iIExEREREREWkQE3EiIiIiIiIiDWIiTkRERERERKRBTMSJaig5ORmjR4+GnZ0dunbtiuXLl6O4uLi2h1UnHTlyBBMnToSbmxvs7OzQr18/xMfHQxAESbu9e/eiV69esLW1Rd++fXHq1CmlvnJzczFnzhw4OTnB3t4eU6ZMwX//+19NbUqd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IScnB8bGxmjfvj1Gjx4tmerfpk0bfPvtt1izZg1iY2NRVFSEZs2aSVa1/+CDD7Br1y6sXLkSmzZtgiAIaN++Pb788kule4hXxdvbG02aNMHmzZsRHR2N4uJimJubw9HRUaVV7AcNGoTJkyfj0aNHkqnw+vr62LJlCw4cOIADBw4gOjoaeXl5aNCgAdq0aYP58+djwIABYnsXFxd8/vnniIqKQkREBCwsLDBjxgykp6erNREvKyvDsWPHMHjwYC7WRkR/a1qCJlZoISIiojph3759mD17NuLj42Fra1vbw6FaVlpaCi8vL3h6emLq1Km1PZxqHT9+HNOnT8f333+PJk2a1PZwiIiqxGvEiYiIiKhSOjo6CAkJwe7du5Gfn1/bw6lWVFQU/P39mYQT0d8ep6YTERERUZW8vLzg5eVV28NQSVxcXG0PgYhIJTwjTkRERERERKRBvEaciIiIiIiISIN4RpyIiIiIiIhIg5iIExEREREREWkQE3EiIiIiIiIiDWIiTkRERERERKRBTMSJiIiIiIiINIiJOBEREREREZEGMREnIiIiIiIi0iAm4kREREREREQaxESciIiIiIiISIP+H/sd931TonboAAAAAElFTkSuQmCC\n"},"metadata":{}}],"execution_count":63},{"id":"12e1f1cd-81e7-41b6-bedc-7debbc488be6","cell_type":"code","source":"# 1. Define Business Parameters\n# cost_per_fp: Estimated cost of manual review + customer friction (standard range: $2 - $10)\ncost_per_fp = 5.00 \n\n# 2. Identify True Positives and False Positives at the Optimal Threshold\n# Based on the selected optimal threshold of 0.895\noptimal_threshold = 0.8953993320465088\ny_final_pred = (y_pred_proba >= optimal_threshold).astype(int)\n\n# TP indices: Predicted as fraud and actually fraud\ntp_indices = (y_final_pred == 1) & (y_test == 1)\n# FP indices: Predicted as fraud but actually legitimate\nfp_indices = (y_final_pred == 1) & (y_test == 0)\n\n# 3. Aggregate Financial Impact\n# test_df must contain the original 'amt' column before log transformation\nfraud_loss_prevented = test_df.loc[tp_indices, 'amt'].sum()\ntotal_fp_count = fp_indices.sum()\noperational_friction_cost = total_fp_count * cost_per_fp\n\n# 4. Net Business Value\nnet_savings = fraud_loss_prevented - operational_friction_cost\n\nprint(f\"Financial Summary for Test Period:\")\nprint(f\"----------------------------------\")\nprint(f\"Fraud Loss Prevented (TP Savings): ${fraud_loss_prevented:,.2f}\")\nprint(f\"False Positive Count: {total_fp_count}\")\nprint(f\"Estimated Operational Cost (FP): ${operational_friction_cost:,.2f}\")\nprint(f\"Net Model Business Value: ${net_savings:,.2f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:49:04.587274Z","iopub.execute_input":"2026-01-17T19:49:04.587570Z","iopub.status.idle":"2026-01-17T19:49:04.601246Z","shell.execute_reply.started":"2026-01-17T19:49:04.587544Z","shell.execute_reply":"2026-01-17T19:49:04.600735Z"}},"outputs":[{"name":"stdout","text":"Financial Summary for Test Period:\n----------------------------------\nFraud Loss Prevented (TP Savings): $810,775.56\nFalse Positive Count: 61\nEstimated Operational Cost (FP): $305.00\nNet Model Business Value: $810,470.56\n","output_type":"stream"}],"execution_count":64},{"id":"1c11a761-e5bd-438c-872e-0bf3dd101558","cell_type":"code","source":"%%html\n

Business Impact & ROI

\n

The financial summary translates these technical metrics into a clear business case.

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MetricFinancial ValueBusiness Implication
Fraud Loss Prevented$810,775.56The direct capital saved by blocking transactions correctly identified as fraud.
False Positive Count61Out of ~463,000 transactions, only 61 legitimate users were inconvenienced.
Operational Friction Cost$305.00The low overhead for manual reviews and customer service calls regarding blocked cards.
Net Business Value$810,470.56The total ROI of the model for the test period after accounting for operational costs.
\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:49:14.962273Z","iopub.execute_input":"2026-01-17T19:49:14.962584Z","iopub.status.idle":"2026-01-17T19:49:14.968428Z","shell.execute_reply.started":"2026-01-17T19:49:14.962558Z","shell.execute_reply":"2026-01-17T19:49:14.967755Z"},"_kg_hide-input":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","text/html":"

Business Impact & ROI

\n

The financial summary translates these technical metrics into a clear business case.

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MetricFinancial ValueBusiness Implication
Fraud Loss Prevented$810,775.56The direct capital saved by blocking transactions correctly identified as fraud.
False Positive Count61Out of ~463,000 transactions, only 61 legitimate users were inconvenienced.
Operational Friction Cost$305.00The low overhead for manual reviews and customer service calls regarding blocked cards.
Net Business Value$810,470.56The total ROI of the model for the test period after accounting for operational costs.
\n"},"metadata":{}}],"execution_count":65},{"id":"45509f41-ded1-4539-8537-99ac4481d1db","cell_type":"markdown","source":"\n### Business Impact & ROI\n\nThe financial summary translates these technical metrics into a clear business case.\n\n| Metric | Financial Value | Business Implication |\n|-----------------------------|-----------------|--------------------------------------------------------------------------------------|\n| **Fraud Loss Prevented** | **$810,775.56** | The direct capital saved by blocking transactions correctly identified as fraud. |\n| **False Positive Count** | **61** | Out of ~463,000 transactions, only 61 legitimate users were inconvenienced. |\n| **Operational Friction Cost** | **$305.00** | The low overhead for manual reviews and customer service calls regarding blocked cards.|\n| **Net Business Value** | **$810,470.56** | The total ROI of the model for the test period after accounting for operational costs. |\n","metadata":{}},{"id":"d3daf293-4cdb-470c-b2ac-23cf918b819c","cell_type":"markdown","source":"**Conclusion & Business Impact**\n\n**Technical Summary**\nImplemented an industry-standard fraud detection pipeline using the Sparkov simulated dataset (Jan 2019 – Dec 2020). The project transitioned from a baseline model with significant data leakage to a production-ready system utilizing temporal validation and behavioral feature engineering.\n\n**Key Technical Implementations**\n\n* **Temporal Validation**: Replaced standard random train-test splits with a time-series split (75% train / 25% test). This eliminated \"look-ahead bias,\" ensuring the model only learned from historical data to predict future transactions.\n* **Behavioral Feature Engineering**: Developed 14 high-signal features, including:\n* **Velocity Metrics**: 24-hour rolling transaction counts and spending averages to detect automated \"burst\" fraud.\n* **Geospatial Analysis**: Haversine distance calculations between cardholder residence and merchant location.\n* **Cyclical Encoding**: Sine/Cosine transformations of time and day to capture periodic fraud patterns (e.g., late-night surges).\n* **Risk Profiling**: Weight of Evidence (WoE) encoding for high-cardinality features like `job` and `category`.\n\n\n\n**Model Optimization & Imbalance Management**\nUsed cost-sensitive XGBoost with `scale_pos_weight` to address the 0.5% fraud class imbalance. Hyperparameters were tuned via `TimeSeriesSplit` cross-validation, prioritizing Area Under the Precision-Recall Curve (PR-AUC) over ROC-AUC to accurately reflect operational performance in a high-skew environment.\n\n**Performance & Business Results**\n\n* **Final Precision**: 0.97\n* **Final Recall**: 0.80\n* **Optimal Threshold**: 0.895\n* **PR-AUC**: 0.9980\n\n**Operational Impact**\nThe finalized model achieved a 32% increase in precision compared to the baseline (0.65 to 0.97). By optimizing the classification threshold to 0.895, the system captures 80% of fraudulent activity while maintaining an exceptionally low false positive rate. In a production environment, this translates to a drastic reduction in customer friction (unnecessary card blocks) and lower operational costs for manual transaction review, without significant compromise to fraud detection coverage.","metadata":{}},{"id":"8796ff59-9de4-47e7-80f4-16961ccf7324","cell_type":"markdown","source":"**Precision-Recall Trade-off**\n\n**Performance Shift**\n\n* **Baseline Model**: Precision 0.65 | Recall 0.84\n* **Optimized Model**: Precision 0.97 | Recall 0.80\n\n**Strategic Rationalization**\nThe optimization prioritized Precision to mitigate operational costs and customer friction. In the baseline model, 35% of fraud alerts were false positives. The optimized model reduced false positives to 3%, ensuring that 97% of automated card blocks are legitimate fraud cases.\n\n**Business Impact**\nThe 4% reduction in Recall (fraud detection coverage) is offset by a 32% gain in Precision (alert accuracy). This configuration minimizes the volume of manual reviews required by security analysts and prevents the unnecessary freezing of legitimate customer accounts, which is the primary driver of churn in retail banking.\n\n**Threshold Selection**\nThe classification threshold was moved from 0.50 to 0.895. This specific operating point on the Precision-Recall curve represents the maximum attainable Precision before Recall degrades below the 80% institutional requirement.","metadata":{}},{"id":"d90dbd36-49c7-409c-9f4d-b468a957c45b","cell_type":"markdown","source":"# Pipeline","metadata":{}},{"id":"e3bb660e-6c6c-4220-8d2e-cf362ef425e4","cell_type":"code","source":"from sklearn.pipeline import Pipeline\nfrom sklearn.compose import ColumnTransformer\nfrom sklearn.preprocessing import RobustScaler\nfrom category_encoders import WOEEncoder\nfrom xgboost import XGBClassifier\nimport joblib\n# 1. Define the complete feature list as used in the successful training\n# Ensure these match exactly the names in your train_df and test_df\ncategorical_features = ['job', 'category']\nnumeric_features = [\n 'amt_log', 'age', 'gender_bin', 'distance_km', \n 'hours_diff_bet_trans_log', 'hour_sin', 'hour_cos', \n 'day_sin', 'day_cos', 'trans_count_24h', \n 'amt_to_avg_ratio_24h', 'amt_relative_to_all_time'\n]\n\n# 2. Re-define X_train and X_test to include ALL required columns\n# This step ensures 'job' and 'category' are present for the WOEEncoder\nfeatures = categorical_features + numeric_features\nX_train = train_df[features]\ny_train = train_df['is_fraud']\nX_test = test_df[features]\ny_test = test_df['is_fraud']\n\n# 3. Define Preprocessing Transformer\npreprocessor = ColumnTransformer(\n transformers=[\n ('cat', WOEEncoder(), categorical_features),\n ('num', RobustScaler(), numeric_features)\n ]\n)\n\n# 4. Create the Integrated Pipeline\n# Note: Ensure imbalance_ratio is calculated from the current y_train\nimbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum()\n\npipeline = Pipeline(steps=[\n ('preprocessor', preprocessor),\n ('classifier', XGBClassifier(\n colsample_bytree=0.8,\n learning_rate=0.1,\n max_depth=8,\n n_estimators=500,\n subsample=0.8,\n scale_pos_weight=imbalance_ratio, \n tree_method='hist', \n random_state=42\n ))\n])\n\n# 5. Fit the Pipeline\n# This will now find the 'job' column successfully\npipeline.fit(X_train, y_train)\n\n# 6. Serialization and Inference\njoblib.dump(pipeline, 'fraud_detection_model_v1.pkl')\ny_proba = pipeline.predict_proba(X_test)[:, 1]\ny_pred = (y_proba >= 0.9016).astype(int) # Using optimized threshold","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:50:42.358182Z","iopub.execute_input":"2026-01-17T19:50:42.358854Z","iopub.status.idle":"2026-01-17T19:51:18.337920Z","shell.execute_reply.started":"2026-01-17T19:50:42.358821Z","shell.execute_reply":"2026-01-17T19:51:18.337288Z"}},"outputs":[],"execution_count":68},{"id":"ff3c6a68-4688-49c9-83d8-ffb6e66b56b3","cell_type":"code","source":"import shap\nimport pandas as pd\n\n# 1. Get the model and preprocessor\nmodel = pipeline.named_steps['classifier']\npreprocessor = pipeline.named_steps['preprocessor']\n\n# 2. Initialize Explainer\nexplainer = shap.TreeExplainer(model)\n\n# 3. Transform Data (Crucial Step)\n# Resolves \"You have categorical data...\" error by converting strings to numbers first\nX_test_transformed = preprocessor.transform(X_test)\n\n# 4. Calculate SHAP Values\n# We sample 1000 rows for performance efficiency\nsample_size = 1000\nX_sample = X_test_transformed[:sample_size]\nshap_values = explainer.shap_values(X_sample)\n\n# 5. Visualisation\n# Re-map feature names so the plot is readable (not just Feature 0, Feature 1...)\nfeature_names = categorical_features + numeric_features\n\nshap.summary_plot(shap_values, X_sample, feature_names=feature_names)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:53:13.590550Z","iopub.execute_input":"2026-01-17T19:53:13.591475Z","iopub.status.idle":"2026-01-17T19:53:20.610031Z","shell.execute_reply.started":"2026-01-17T19:53:13.591444Z","shell.execute_reply":"2026-01-17T19:53:20.609204Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"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mrQs7Nix46DzIAgCWF4nkUsHtPg4o097jD7tY7/kpBI8vTPBe8egfbUWdX0B0WFd0E/vigMYX/cDHTAti4feCyLPWkeHyko29u5IamU1lamx1kqbZZEXiRKQJTa5XUiWCTQdQ2cLRAil2KFRJcdla5fz6MefMvWi0Xw0uD/fda+g75YyHvz6U5KtarSASX1Nfm64jGfef5Oy93OQMYiSODW22qirj97M9etD/1pceAkAsYHDGhEi2AiiYXVIxTY8B62tF2lERzi1LUkVIaIfbcGKGtjGdkHOaVrzKwHKxU17C8TJEoxo2soqCIfCibR42dVXX83VV19NWVkZX3zxBZ9//jmPP/44jz/+OP3792f06NFcdNFFzU6Bf6AO6wiXs88+G0mSmDFjRkJXkLKyMmbNmkVubm580ITb7SY9PZ0lS5Yk1PDu3r073mf7QO3Zbx6Iz/5SXV19wOepn8Z03rx5CQW2aDTKm2++2aI8HS5vvvkm0UZLaBYXF/Pll1/SoUOHeKFz1KhR2Gw2pk2bRijUdHYNn89HJNIwmbXT6Ww2ODtQLpeLmpqaFrcY1df6m40W/qlfxrs1qqurE84J4PV6adu2LaFQiHA43KrzjxgxAoBXX3014Z43b97Md999x4ABA+KzN5199tkATf5+5s+ff0x1HRKEk54sE72oH8HfXIh+etN+vACyJPHoeBd/enUwN354PmdflErXbbuxhxI/U370esi32wirWpNzWICkwY0L13Dhuu0M3VbIpO9Xcc83C/jjmEuZduZwipOSWNS1I69cMJgnLz6T75IGsMbRlaAkoVKDgp9MSunBamxS09mEjEaBwC7aNOnnX00yATRKSaOENGpwU4mXIHaiuWk4XroE55IbUJ68COm+M+HUWCWHnObAflMfHLf2bzYgEATh0MvIyODaa6/ljTfeYO7cudx///1IksSjjz7Keeed16pzH9aWgvp54KdPn86kSZMYNWpUfErSQCDA1KlTE2YemjBhAs899xx33XUXI0aMoKysjPfff58uXbqwbt26fVwp0ZQpU/B6vQwcOJDs7Gxqa2uZNWsWkiS1eEad3/zmN9x6663cfPPNjB8/Pj4l6b66NB1JhmFwyy23cOGFFxIIBHj//fcJh8P89re/jafJzs7mf//3f3nkkUcYP348o0ePJjc3l8rKSjZv3szcuXOZOXNmvGWkX79+fPzxxzz33HN06tQJSZI4++yzcToPbEBU3759+f777/n73/9O//79kWWZU089db9Tro4cOZJvvvmG2267jTFjxqDrOvPmzWs2kGmJTz/9lDfffJNzzz2XvLw8VFVl+fLl/PDDD4waNWqv3ZkO1Omnn86oUaP46quvqK2tZfjw4fEpSW02G/fdd1887ZlnnsmwYcP48MMPqaqqik9J+sEHH9CtWzc2bdrUqrwIgnDkaUqsNrL9mHZsfG07OSXl7Ggf+zz1yTKVWvNftVGHSjDNiaXIzMjoy0XrtnHV8o0AbEnryHunDEhIb0kS65M6cA7llNhS8IQysYhgI4KPVNandSIkOckrr8WsCwRMGQJmQzASxknxVReQWrYbqdRPZOwpmGf2xfXPdRglIawLcrFd2RElGEZKsu99wTFBEI66zMxMunXrxsaNG9m4cSPBYNNKgZY47Ev/3nXXXbRr146ZM2fyzDPPoGkaffr04ZFHHmHgwIEJaa+//np8Ph+fffYZy5Yto1OnTjzwwAOsX7++RUHBlVdeyZw5c/jggw+orq4mOTmZHj168Lvf/S5hQa0D0b9/f5599lmeeeYZXnvtNTweT3zxsquvvrpF5zocHn74Yd5//31ee+01amtr6dq1Kw8++CCnn356QrrLLruM9u3b8/rrr/PBBx9QW1tLSkoKHTp04Pbbbyc9vWHFzMmTJ1NdXc3MmTOpra3Fsiw++eSTAw4KrrnmGvLz8/nvf//L+++/j2maPP/88/sNCuoDmzfffJOnnnoKr9fL2WefzR133MHIkSNb/nDqDB48mA0bNvD9999TVlaGoii0adOGu+++mwkTJhz0eRubOnUqPXr0YPbs2fzzn//E6XQyaNAgbr/99oTZAiRJ4u9//3t88bKFCxfStWtXHnvsMWbOnMnOnTsPSX4EQTjy3G2ctL+sHeVzSkkrKaciMw3NspAsq0k3BgviAQGArsh82rczfQvKyfIFqXAlkxIMUrPH5+7Gtun86ZbzyHBGaFNazk7di2EplPbK4NeDTYY/+T3hBQZShhP3VV1wTepO2Z8+JXOOjBU1SLmpF/Y7+xJsNImAE8ibvueiRyIYEI5/J9KKxvUsy2LRokV89tlnfP3111RWVpKUlMSYMWNaNcU9gGQdzKhgQRAOuauuugpd13n//fePdlYAKC2tPdpZ2CdVlUlNdVNZ6RcD9Y4R4jWJqVhbzeuvlPKZPZNuoQgbnA62OWycVlFF3+paTODHzDQW9W46OPAXS37m1J3FlDhsVCQbvNBocUXJsvhN8Tb+9/7cA86LrussXPgN48aNo7S0hn2tMyAcOeK9ApmZzc9CeCjN6DBzn/uv2zH+sOfhUFm6dCmff/45X375JeXl5Xg8Hs4//3wuvvhizjjjjIR1uQ7WYW8pEAQhUSgUatJlaf78+WzZsuWQtVwIgnD0pPVJ5tzJTv71FmxxOZEsi/5VNZxeXhVPc15xGSu75RDWEgf+tqn2sS09iVdP74PPYUPVdTqV17Arxct57iD33ZNzhO9GEI5fJ9JA42uvvRaXy8W5557L6NGjOeuss7DZms5c1honZVAQCAQIBAL7TKMoSnxw6JESCoXw+Xz7Tbe3aUUPJ5/Pt9++/ZqmxdcIOJ4YhkFlZeV+0yUnJycsFHewXnrpJTZs2MDgwYPxeDxs3LiRTz75hOTkZK6//vpWn18QhKOvW3sNGxEiSFiSRDdf4tz7qmkxanMBn/fIw5AlJMviwhVbOPWnrey87wz6uU1Sd+zk5nUr6XB6Jo6r+5Plbv3njyAIx6ennnqKc845B7vdvv/EB+mkDApmzJjBiy++uM80ubm5zJo16wjlKGbOnDk8/PDD+023dOnSI5CbRI899hizZ8/eZ5pBgwbxwgsvHKEcHTrFxcVcdtll+033/PPPt3hMSnMGDBjAqlWrmDFjBj6fj+TkZM477zxuv/32Vk0lJgjCscOhSdx6qsS/lsR+D8lNpwIds24VF65dzs8ZufQqyeeKdV9jOvOwXXcpN2ABmcCoJscJgnBgTqTFyy688MLDfo2TMigYM2YMAwYM2GeawxmJ7c2wYcN49tlnj/h1D8TEiRO5+OKL95nmUC61fSSlp6cf0HPfcz2Ig9V4/QxBEE5cd11oo40U4IOFUVRDB8uCuu4MkmUydu2X5NYWx9NbSJTctO/PWUEQhMPlpAwK8vLyjslVjTMyMo5K16AD0blzZzp37ny0s3FY2O32A1rUTRAEoaWuvMDFlRfAg3+IUFxlwxWOgCRhyCYOPXH6wGC7Dkj3n3N0MioIwknvpAwKBEEQBOFI8mZrlPlMahrNEPK7S3/NH9UfyNqeT+SsPoR+PRpJbdrNSBCEg2OeQAONjwQRFAiCIAjCYXbVeA9P/iOKzYhNPxmVJZYM7YZ2TVdq5KOcOUEQBERQIAiCIAiHXbsclSvuzuTpz6Pk+yTSujiYdraBIgICQThsTqSBxkeCCAoEQRAE4QgY3g6G/6p+WlH9qOZFEITjj8/n480332TRokWUl5fzpz/9if79+1NVVcWHH37IeeedR4cOHQ76/CIoEARBEARBEIRjWFFREddeey1FRUV06NCBrVu34vfH1j9JSUnh7bffJj8/nz/84Q8HfQ0RFAiCIAiCIAgnnBNpReO///3v+P1+PvroI9LS0jjjjDMS9p9//vnMnTu3VdcQvRkFQRAEQRAE4Ri2YMECrrvuOrp27YrUTLDTrl07CgsLW3UN0VIgCIIgCIIgnHBOpJaCUChEWlraXvfXdyVqDdFSIAiCIAiCIAjHsC5durBkyZK97v/666/p3bt3q64hggJBEARBEARBOIZdf/31fPbZZ7zwwgv4fD4ALMtix44d/Pa3v2XlypXccMMNrbqG6D4kCIIgCIIgnHBOpHUKxo4dS0FBAU899RT//Oc/AbjllluwLAtZlvnNb37D+eef36priKBAEARBEI4HgQiuxz7F9t+1GB0yCNw3mmjvdqx6v4itCyoJBU1wqVxQsZSuu36GnBRq7hx9tHMtCMIhcvvttzN27Fi++uorduzYgWmatG/fngsuuIB27dq1+vwiKBAEQRCEI+itnyXe2yjj1uC2U0zOaGPt95itnxaS/+9V6CWg6T3JXFpB1wkv85ub7+THCicZqsJ5/lIyy33kLl2MLVQN63aRvmA9nscuPgJ3JQjHHks+MZoKgsEg11xzDePHj+cXv/hFq7sJ7Y0ICgRBEAThMHt7s8Ks7Qrriy121zRsn7NN4uV2pYy+NDUh/ZZ1IVYs8CPJ0DZcw+73d6IFVRTZDTaISDa0WpnL351D+7z2hJKSyPFV0XFHOcu10+kT3kiWtQM5rNPu++1wx5G9X0EQDh2n08nu3bubnYr0UBJBgSAIgiAcQuXFUZbM8xMKmPQZ4uRzy8sjy1TUsIEUNUCWIWqAbmIoMs8tMOgY2E3vq/L4aJPET7NKOO/9xXQOh9nQti1bwgZ200IxTABsRpSzC37Gbup0q4ZRO7axpHMPvut1CuWp2fRbuo2V4X70jTjIlTZQWJjBtgfW4MxR6TEmG5tbfPULJ4cTaUrSs846i/nz53P11VcftmuITwZBEARBOES25uu88fcSiMa6BK1eHGBJNwnJ7sbtj1JjUyEUhboCPrrJGq+Xnz/ZxvbiSrLfWsy923yoJtip4cydC9idlMma1B7USi6QJNr6KrCbesJ1T9mxhe979sOSZYrapuGtCVKiZLG0S2e26p3gvyUA7PyxitGP9UY6QbpVCMLJYvLkyfz617/mt7/9LVdddRXt2rXDbrc3SZeSknLQ1xBBgSAIgiAchB+KZL7aLZPnsbiqi4Fpwf+9HiLqcuNXFbr4guSEI2Tn+7DyXFTbtNiBqgKmBVYscPCrKoHyEs7790rSqvwsy+7Hl6e0IydYxA1L59KzZj0dfduYlzaCAm8GMoljEFQC2I0Qp+1YwfK8flh1k41vy8hmZ3J67Dp1NaYVWwIUraklt3/SEXtOgiC03pgxYwDYvHkzs2fP3mu69evXH/Q1RFAgCIIgCC304nqF/7fYFv/95fUmV3eJ8oPsIpipALA8xcspPj8BWYkXygGQJByyBFGDkBwrwX/QZzAdQ2UEc1UmXncDhhLb/ufz/ofb//sp1635gVPL1vFRxrlsS82ie1UhNtPAQSUuKgC4bO1XDNm1kvXSAJKNAD+n5mGqClokiq6p8TzoQeNIPCJBOOpOlIHGAFOmTBFjCgRBEAThWGKY8PeVGlgW7kAUxTTZptt4tcwiqCgNCSWJVUkeHFLT2YVswEB/iFVOO1WaQlBT6VpYwPUTb4wHBADVLg9/O/d/+Mfgi3j503foVF3Ogp49eaxnR0b/tIwRu7fTuOGgTU0JIW071WoaPQp2oRpRSpKSkU0TU1HQIjrZPd2H7+EIgnBY3HnnnYf9GmJFY0EQBEE4QGEd3vsZakIWeYW1pFcGsAd1skp8lNY2M7WoBZ18oSabs8MRFKBTVAeXjYvXbWOrpyPF3uSm55AlDFnhf88biysSomtBPrsyspg+/BwUK1brH5VVNqV2Ymtye8qdLpZ27MLSDl2odLhRI1HUcJT0Ch/91+0m8nU+tW9vIbKx+hA/HUE4xkjSvn+EBKKlQBAEQRAOQJEPLn5bJt8H6UaQiCpTkuKOFy7UiA4hM/EgWcJlmCQHwwRtGjIWbUIR8oIRADymid2yyPQHKXZl0augnILktMRzhGKDisucTj45/QwyKytIqfRRlephZ3JbvKFaPugxhoDmqstHNOFwCQlHOErvDYX4HTY23LUclxFFs0wy7u9Hyj39DsPTEgThUHrmmWf2m0aSJKZMmXLQ1xBBgSAIgiDsRVi3WJQPZSGJjzZJFNdatPeFUC2L7dnehNpG3aYCBoSNWJceTQZVZllWMlgWWf4QfauDCedv4wtwW3E5ZemptC0sob1PoltZLVtT3RgAvghEYq0B3XwBAEpT0+izfTc1JXYWtB2GbIXjAQGAKcvIZmJwElVlylPdFKQnk72rGp8c6+YUfPxnPNd0Rc12HvJnJwjCobOvoECSJCzLEkGBIAiCIBxqgZDF1z+b/OYHBZ+pYNUNCLYpBoplYcgSptJMD1xVBkWOzfjTuDeRJFHqdrBJkelc6Uc1LVLCEXJ9ARTAl+KlOBLB1DTO2F3BGbsr+NllZ5XbRViW6OoLcGFxefx0Pq+TsoxUdndoQ+ed+Tgjkfg+U5aQ92iwyPDVsrZHLt1WF9O400RI1qh6bDnZE/PQO+ZgbK5B7pqM7LUR2VqLFTWx92imS5MgHAdOpIHGP//8c5NtpmmSn5/Pm2++yZIlS3jxxRdbdQ0RFAiCIAgnLMuCbbUSWU4Lj7b3dCHdYnc1pGgmC1bqvLTQZFWqF2dYx7I3FP4jqkyVUyM1GEWLGkQ1JfFEEtiiBpFmAgZLkuhcWoFhtzG4uCKhcC4DKzu3J8k0460PPQNhegTC9Nu1mUpvVsK5qpK8hByxOcoDTkdCUIAso0XCmGpsLEKmv4rsUDVb1Xao+h7RAlD75kayXvuYSqkzliVj2RUCnXMIra8FwDE4nTYzzkLNcOz9AQqCcMTJsky7du24//77uffee3nkkUd4/PHHD/p8IigQBEEQTji+CKyplPj1AhvbamWcisXvBuhM6Rvrn++LQmkIcpwwZ7PFb780qQyBZllkqAqBFBddKgNscdcVhC0L9Fjtf6WmIZmQXh2kKN2dOGBRkblnyWoCqsK0U7oTVhuCBtk0OX13Ca6oTk1S4joBYQk+7JBDRijC8LIqknUDAxi1YRGXrP2eNwaPpSg5G9XQaVtcwIquPeLHlqSlYotG8QaCYFmkVvppt70CO1Fy5RLSjBq+6H0aSBZhh4o9lLjwWU99OV5qiFpeaskkENbiAQFAaFk55Y+uJvOhAeCPoJgRkCSsJCdSIIKV7sUK6Vh+HTndgVTlx9JUcDddWEkQjqQTaUXj/Tn11FN57LHHWnUOERQIQjP8fj+vvfYaixYtYvfu3QQCAbKzsxk5ciSTJk3C4WioMauqquKpp57iu+++IxKJ0KdPH+6++26eeOIJCgsLmTVrVsK5161bxyuvvMKKFSsIBALk5uYyZswYrr/+elRVvCUFoTWiJvxuvso7m2R0RY4X2IOGxMPLNM7MMXjpZ5WZWxQsJBTJwqwKY+kSaBJRyyIzFOSnTC99CqpJ0lRCqgJGo+5AkkSFwwaNavXjTItil5N2vgBjt+zmky55hFQFzTC4cHshdiRshokSiWCoKsgysmGyMj0WJJQ5bHyUl4U3qmPXDc7YmES+Oxt7IEqKVY0rHAC/hSsQwu+JjSMwFZmdbXK4aNECUnbraHVlfgONIiOLoMNG53VldKGMorRkopqCFjWQLYOuxs8kWTVEcOAjHRmTCCpgIWNiEgtqIq+tQpnxISlmMSp6w6MAitoNoqwiDcuv40jRaV+1FJvdIHj9ufj/9AuQxUSHgnC4rVmzBrmV7zVRAhGEZpSWlvLxxx9z3nnncdFFF6EoCsuXL2f69Ols2LAhPuAnEokwefJkNm7cyKWXXkqfPn3YtGkTU6ZMISmp6Yqh8+fP57e//S3t2rXj2muvJSkpidWrVzNt2jQ2btzIo48+eqRvVRBOKC+vVXhjY13tfDO1hA8tUVlY0vDVZ0Qs0BullSQKFRVPdZBaSaZLTZCQIhO0JKJNvnCl2MrEe/Rb/rxzLlev30HPihq6VK2n1GknPRTBbsSCiKDdhoqEqhsoRgRXMIjXmzjQt1ZTyfUH2ZTVFp/mRrEsFNMkrDkIp9lZkJ7EwGAkPtYhKVDLsO3L2MwpCefR0fCHkuOrIOdWVLOlXRbVipOrtr+DnVi3IwOVjixDQScHDwo6DkLUkswm+uGhmnQzP97lqf7/PpIp3ZVE7CFCqEqlgG50Cq/G9cJX6H3bE776rH2/aIJwmFjSiROQfvTRR81ur6mpYenSpXz11VeMHz++VdcQQYEgNKNt27Z8+umnCTX3EyZM4LnnnuPll19mzZo19O3bl48//piNGzdy++23c/PNN/9/9u47PIqqbeDwb2ZLek9IQhJa6E2qVAFp0hVBRBQRFUQRG1hePwu+9gZIEREFKRZA9EWkKCog0otSpHdISEhvm2R3Z+f7I2RhSSgBQtpzX1eUzJw9c2YnszvPqc60NWvW5P333yc8PNy5LTc3lzfffJOGDRsyffp0Z94DBgygVq1aTJw4kW3bttGiRYubd6KXoaoKaikepGU412fbUNhgT1EiSsM1WRt7wbF1vUBgcDzzorLZCq7ua3BA07MZGACrqmAwq9g8zXmtBRYtLxAA3DWNHN0AuB4j3t+Lye3qUy0+nUEHTlA5y3WdArvR5CyXZjRiNZtpfeYsewP9OOHnA4C31UbHuESSPd3JNvjxU6MaxPl6UutsCoO27qfd2WTO+HgTabGgOnTC0xJQFDu5uhEHCgpgwo4BBwqu6yeEJqVhNdrIewTICwo8yHTu97rg3z6kUY8dgIPCPg0yCbzsNve1/6I90LGQV1ZspeFeEWXLSy+9dMl9AQEBjBw58rpmHgIJCoQolMl0fkSi3W7HYrHgcDi49dZbXYKCdevWYTAYuO+++1xef9dddzFt2jSXbZs3byYpKYnRo0eTmZnpsq9du3ZMnDiRzZs3l5qgIDDQq9iXVL8RfH1lKsXSpiSvSb1Kdn4/VXAwbb7GlVRij1+wwaAC5wMDH7tGPUuO8wHY3aETnp5DipcbGBXwViDdhoemoRqVc92KHGA4vxiSrijoBpWjlQP41W6n16HTzpVCHYCqO1DOBRYOVSXL3Y3dfsF0jU3gdEYmuysFcOexONLc3ckyqHzbrAbWc2MTDoQFMat9Y174ZQuegOPcCspn/UL5I7gbwQl5ny06YMWIyWhFcR1CgGrVSA/yYWnYHfQ8thIvm+s0qRfzwHLJfWYKvtbtgm3m+pGYA2QF5UuRzy9xtX7//fcC2xRFwdfXF29v7xtyDAkKhLiERYsWsXjxYo4ePYrjojm/MzLyBuHFxMQQHByMp6eny36TyUTlypWd6QCOHTsGwH//+99LHjMpKemS+2625OSsUt9S4OvrQXp6Npp26YdAcfOUhmsysi4s3m/kTNa5B3Yj5Nfk31rJwTstbWyLM5OYc+5v26yiGODcwsCEWG0FasRDsnLP/6IqROfkEOvhRlb+zEM6eYOQjeQFBobzOeyICCIJA41TMzCgUCcpBbcLPk9UhwOHwUglFOweHpgMKm+tWkHHw4dI9Pbj9V59nAFBvpgAH1LNRtxyc8n29ARdxzszi7QQdzKCzATEW8jy8yA12AtV06h1Io7Q5HQANEUhPsKTY5UjUIBZ/kPpcHw9t5z995LvqX7uHbTihplcl23+nCVZqUy2ntddUsFBGEfyjlUjlIwHOqKnZF0y74qqNNwrJS3gJgSL5WlKUkVRCAwMdBnTeKGcnBySk5OpXLnyNR9DggIhCjF//nwmTZpE69atGTx4MMHBwZhMJhISEhg/fnyBIOFq6HpezeDTTz9N7dq1C00TEhJyXeW+kRwOHYdDv3LCEqZpDuyFTLMoSk5JXpMwD1g/0Mry4yp2BzQO1tmSoBLuqdMt0oFRha135/D1YQP/JKp0qqxxYFsOyw9CmsmAj81eIE+X6UV1HQ+bnWxfzwLpGsencEtCGglmM+vDAsnw8wAFomwaWR55NcKmc58dGSYjayMqEePlQUiOlWCbxqEALyb873t6HtgLQEhmOo+u/4OV9R5xOY5R0whMySLbXyXb0xOvLAveWRasHnlf6Weqm8j1cDvXimBiV4Oq1DpwGo8cG5luZk6Gh6GoOrpDwWYws7Zae6JSYgm0peSdIq4doiz1a5Lz0p1kZXvhtu0gXrkJKP7u6AHe6J5u+HdujNteC464bNyb+6PsjCbdy43cns3Bwwxyf16SfH6Jq9WlSxc++OAD+vbtW+j+P/74g7Fjx7Jv375rPoYEBUIUYvny5VSuXJnJkye7jObfsGGDS7rKlSuzZcsWLBaLS2uB3W4nNjYWHx8f57YqVaoA4OHhQatWrYr5DISouLxNMKjW+QethkGu4wa8TDCynkZ+tyFHdTPdDzk4GuegRqgbX/+cw9nUvIBYB44Fna/R9M22EutZ+FSb9ZMyqJRtpVK2lYjsHGY3qo7DzcA/Ef40PZWCVVWxGgy4aRpf16nGWc+8Gr94r7yAwctho9ORQ/xRrykng8KolJ5Cu4O7CE9J5UyAv/M43XYexSvXhm7JgSDwyHYds4CiYLBrzq5FKApnQ/wJTMwgw9fj3MrL0O7kBgwODTVTIcEejjfZgAEHBowhBnIf6oj1tgbYW+dVYngA9I8upMMQuFc9/++cxmGFvj9C3GzlaUrS/IrFS7HZbDL7kBDFwWAwOJcNz2e32/nqq69c0t12221s3LiRb7/91mWg8Y8//khmZqZLUNCmTRsCAwP56quv6NatG35+rquE5uTkoGkaXl7S/1aIm0lVFVrVMdCqTt5DdMOqXqz7x8beeNivuhGfbAbNAZpOumoEL6NzsHG+qAwLERcMKPa32onKzuGEuzeZ7iZO+HsSkpHLYX9fAnJynAHBhayqyqJbb+dYpQgATgSHcaRSOP9d9gOL67ZHURXqxCbS+ORZACqfTcCkaljMV15UzOpmIr5yABbv82mrpZ3CLcvGmTot8H6oGhkRHfA4FYNWNYSMAa1lnQEhSlhmZibp6enO31NTU4mNjS2QLj09neXLl193bwMJCoQoRJcuXZg6dSpPPfUUt99+O1lZWfzyyy8F1hG46667+OGHH5g+fTqnT592Tkn622+/ERUVhaadr6H08PDgjTfeYNy4cQwYMIB+/foRFRVFRkYGx48fZ/Xq1Xz44YelZqCxEBWVl4dCjzZmegCgMy7VyteHVD7boaLnd6xR8n8UPDSN/kcKflFrF/RnTvZ2IyQjlxO+PsR6Fj641OTAGRCcf50/d+2OwWDbgCMnAPVcLKI4dPyS7WiGXJKq+2LKPl9/rwN20/nPKjdrLp7WLJICg5zbgtKTOKVVx9gynCo/9kUxKDgA6f0vROnx1VdfOSctURSFd955h3feeafQtLqu88wzz1zX8SQoEKIQQ4cORdd1lixZwscff0xQUBDdunWjX79+LvMAm81mpk+fzieffMLatWtZtWoVDRs25NNPP+Wtt94iJ8e1Wb9NmzbMmTOHOXPmsGLFClJSUvD19SUyMpL777+fWrVq3exTFUJcQW1/nTdaaqgaTNt5wRoIug5WO9lmAzE+HlRLPz9Lz1kvN05fMO5AuaDV0WY04m6zk3PBg7uC7jIA+WIP7F9Hm4depdmJBG49EktgZg5HaoUTGxUMQJrZiE9mJlFn4glOTCfWL5S0QE9MVo3A+AyMNo0qQcmk+PiQqbkTnJhBFWMMbjPuwWEoP10shHBRxv+027Vrh6enJ7qu8+GHH9K7d28aNGjgkkZRFDw8PGjQoAGNGjW6ruMp+pU6KQkhikzTNLp27UrDhg2ZMmVKSRfnmiQkZFw5UQkyGlUCArxIScmSgXqlRHm/JroO3x5Qmf6PyoFEPW/55HPfoGZNo31aOoGWXJLdzGyoUYkc8/mH/hrxGQRkWZ2/H3Q3k+FuAlXBM9fGIzv3siMqjHoZufhdMNg5MCuF53/7EqPuYETvYVQ/badyehaaqnKqZoTrOgy6TkByBgFJWVSKS0bXzs9a5O2wUNd2GgWNM/UiqNLIgeOZO9Bqnl9LRdw85Uqmo2UAAJNFSURBVP1euRohIT5XTnSdprT45bL7x2y7o9jLcKNMnTqV7t27X3KikhtBWgqEuE45OTkFpghbvHgxGRkZMqBYiHJEUWBIXQexKQ4+iHWtgrQaDFS/PYCNW3IJy8qldkImMf4e6EBEajYmixVVVUgxGkkwGsgwGpyz8lgUlWSzO90Ox/BrnRpUzczk1pjjRKbF0+XARoy6gzTFhz5/HyfFLQA4N4DygoBAcegYNY0sX0+yfD2JqRJE+PGz1Ig5i7cjh3AtGQA3Ugn740VssmiWqADK00DjJ598stiPIUGBENfp7bffJjc3l8aNG2M2m9m9ezcrV64kKiqK/v37l3TxhBA32J11YOJmHZvj/ANHh2rwakedOzfmPegHW6wEW/JaBhyA4nBgReWwl3uBQcoAWSYjR0NDMAMH/f2x6uGMjNlNgqc3+z2j8EmzkWs4P/DXqGm4Z+WQ45VXIWFwuK44rBtUEiIDcfjCgF1rcWDEjXTS8US1OlA8JCgQoizavn07e/fuJSMjo8D06IqiXNeqxhIUCHGdWrVqxaJFi/jyyy+xWCwEBQVx1113MWrUKJlJSIhyqFYgfN0fPt6kE5cJPWvCf9qChxHSvU0E5dhc0id5mohMyyHAZsPNoZN7UX4Gh4NwSzZxod54aw7Azim/Srze9X7cbFZe+PpPsgy5VM06yT6/us7XhZxJxNPLwsHQmi5jFvLpqoLF5MlZXyNhlgRS7cEkdutIZQ/56hcVQ3lavCw1NZXHHnuMXbt2oeu6ywyJ+f+WoECIEtanTx/69OlT0sUQQtxEnarm/Vys7S1m1m3VicjKRQFiPd3o31Bn718KRgd0SE5nh68XyUZD3he6oqAqCl+3qsej+45yyBSEj+bA59wqt22OHibDzwOfNNAyPKmhHCPWKxyzZiU66yh1jx3iB70fJwKrnF+X4BzjubEJPza+gxZHk6jUPojQN5sW91sjhCgGH3zwAQcOHODjjz+mcePGdO3alS+//JLIyEi++uor/vnnH2bOnHldx5D2QyGEEOIGebOdRqvmbuyI8ONotB+P9zbzYk8j3Tu4YTGreGsaHZPTaZ6ehUHXqWbJoUZGFvP7w9jJNejU2ozZBO5GnWpZ6Ri8vfGI0AnQ0klTg3Bk+NIuZg8dkrdTN+0Qa6Pak2wIwGi1oWpa3mhoXceck4vJasOs5dI4+ihdYgYTNrUVhgBZe0CIsujPP//k3nvvpVevXs5eCKqqUrVqVV5//XUiIiIuOV3p1ZKWAiGEEOIG8TbDtC4a07pcuFVhaE93hvZ05/3XzpKZohGSk0vz1Ax0oNbAIFpH5nVzGHqXJ0Pvyp/KNG9QsWF8DIa/j+OwK2yIbsDC8O44UHG35FA57iw1U2LZ5VMLo2ZnwN9L2FS5JUmeQfjnpNIpdgM7n2x5M98CIUqN8jTQOD09nZo1awI4g4KsrPMri7Rr146JEyde1zEkKBBCCCFukodGBbDwq1TOnrHj7qnQrZ8vt7YzX/Y12riOKMdTUFbsp92xf2l++gg5VjNK9UAOVwnnYEbeV7muqGyo3ore+3/By5qFIdCT9PeGkOtfuqcXFkJcWaVKlUhMTATy1kgKCgpi//79dO3aFYD4+HiU6wyCJCgQQgghbpLQyibGvBxCRpqGh6eK0XQVX+LeZuxfDYKUbDAoqG5GPFNyUMK8aQzUTcpl188J7P0lkVjfynzbeyTdhwfi17QSdgXY8Edxn5YQpVJ5ailo2bIlGzZs4PHHHwegZ8+efPnllxgMBhwOB3PmzOG22267rmNIUCCEEELcZD5+hisnuliAB3BukdYwb+dmc5AbLYZF0nhgONmpNnwru52vMbTbC+YjhChzHnroITZs2IDVasVsNjNmzBgOHz7MJ598AuQFDa+88sp1HUOCAiGEEKIcMHsZMHtdQ7AhhCj16tSpQ506dZy/+/n58dVXX5Geno6qqnh7e1/m1VdHggIhhBBCCFHulKfuQ5fi6+t7w/KSKUmFEEIIIYQo5WJjY3nttde44447uPXWW9m6dSsAycnJvPXWW+zdu/e68pegQAghhBBClDu6olz2pyw5fPgw/fv3Z8WKFURGRpKRkYH93JihwMBAtm/fzvz586/rGNJ9SAghhBBCiFLsww8/xMfHh4ULFwLQtm1bl/0dO3ZkxYoV13UMaSkQQgghhBDlTnlqKdi6dSv33XcfgYGBha5HULlyZeLj46/rGBIUCCGEEKXQqTSdLKte0sUQQpQCuq7j7u5+yf3JycmYzZdfCPFKJCgQQgghSpFDSTrtv3TQfCbUm6ozcb2jpIskhChh9evXZ+3atYXus9vtLFu2jFtuueW6jiFBgRBCCFGKjFyiE5fgoMPZVNrGpfH977ms3i+LkAlRVOWp+9DIkSNZt24dr7/+OocOHQIgKSmJDRs28PDDD3P06FFGjhx5XceQgcZCCCFEKZFl1Uk4mcPbv28nPCkNTVXYX70yM4y1OdjbRIgH9Kyh4yHf3kJUKB07duTdd9/lnXfecQ42fv7559F1HW9vb95//31atmx5XceQjxUhhBCiFEg/mM7e13fz9pEcAjKzATA4dBociSHF15PwH4+wOyycuV3rMPsxTwIu3b1YCAHoatlqDbiSu+66i+7du7N+/XpOnDiBw+GgSpUqtG/fXlY0FkIIIcqDzP1p7Oq3jhxPN8wm0IELH2daHttHg7PHqJGcxK3H4/m2cWeeuP36BhUKIUq3CRMm0KtXL+rWrevc5unpSbdu3YrleDKmQAghhChhO57fzcHGkZyoFcKZKsHEVA9BPxcVNM/YypDDP3JL9j/cnvEbdXP2oy4/WbIFFkIUu88//9w5fgAgJSWFevXqsXHjxmI5nrQUCCGEECXIocNx1QM3Sw4+KRmoDh2b2UiGjztRyXGEamfYWbkhRs1OnYRDaN5p7E228/3Av+g93B/rrljOVKtOeI8a+AUYSvp0hCg1ytpg4quh68U3TbEEBUIIIcRN9u9ZnSkb7CTE2dmdaeRlFXzSs8j1dAPAlGMj3teTjNAwdriPItvsAYCu2/ioTROyzCa6/DCDKsNXA1AT+OGWnoR81I+6t3iW1GkJIcowCQqEEEKIm+hIkoPuX9hpkZoJRpXMQHeUHCu5Ph6ku7txKtCfY0EB5JrNmOx26iclE5iTC4CimGgdk0Cim5VHt692ybfPnt/4YHpD6n7WsCROS4hSpzy2FBQnCQqEEEKIm0Bz6Ng0eOIHO+0yc/AyGLADnZPTSXc3k+Lvy/7KYc70qq5jMxrZExJM29OxGM91GwjKziUwM65A/mbNhj3Tyn83qTzZxIGXCfQrrHtmc4D9XBqZ5lSI0icmJoZ///0XgIyMDABOnDiBr69voekbNGhwzceSj4CrsG3bNkaNGsXrr79O3759b3j+LVq0oE+fPowfP/6G512ejBw5kjNnzrB06VLntvHjx/Pzzz+zbdu2G3acpUuX8sYbb/DZZ5/RokWLG5avEKLimr/ZzrQ1GllW8LdreBpV/vT3JsNkxMuu0fiomQNhlVxeowIOXUdTVdLc3AjKyQHgqL8Pp7392R1eBx0Ddc4ewk2zEesTwFvtb0XbpTJjj4JNB6PqRmvvZvS/qB+yrsN/txuZsdeIXQcccGsljS9utxEmvY9EOVEeWgo++eQTPvnkE5dtb7zxRoF0uq6jKAr79u275mOV6qBg6dKlZGRkMGTIkJIuynXJyMjgm2++oXnz5qX+IbMslfV6bNu2je3btzNkyBB8fHxKujhCiHLs2212PvhVI/+x3E2BeLM573fNQZbVzqw6NYhyQCVNw+TQUdHRFAUcOnaTEXe7HR1I8nDnhI8n/Y6e4esW9wLglZvFXbt+YlS/B9AMBtDzWgAA7Br8lRGB90c2Pmmv0KMauBth2h4D0/41nS+kClvOGrh7hcKGAVasGqgKaDqY1Lx/CyFurnffffemHq/UBwVnzpwpF0HBzJkzAQp90F6/fj0GQ+mYMeJKZS0vtm/fzsyZM+nbt2+BoKBXr150794dk8l0iVcLIcTV2R7j4IVfHOQaVPw0B3XsGgrgbrUTaLWTAQQ4HDiAWIMBg8NBFd1BrVPxdN+8h8AMCwfDgtjTqAZp3p5keLhx95Ez+J8bYwCQ5ebF5A7D2FCtVl4TwMUckO1QGLnWnYCVOaS6u6EblfMLIVzwmsMZKlXnu5FtO79fBdqFaczsZCNQFkwT4qbp37//TT1eqQ4KikNOTg5GoxGjsfScupubW0kXQVzAYDCUmiBNCFH2JFjg838UVh7UOBDngHOfJ+FWu8uCZArgp+uo5D14V9E0TpkM1EvPYuDqbRi1vOr+2nFJhFiy+V/XlliNRnwvCAjyudm0vH9cGBPoOg/tWEvvgzs46R/MpNt6Y3LYGf/bCsLTU/ix4a1827S9a0Y6ZNvVvMKdCxYcwLozBup/Df/58yf2V6vOjsaNaRumU8fPwdazKsFuDh5r6KCGn47mAEXJa12wO8B4iRWRNAcYZLUkUYzKQ/ehm6lIT8ZZWVnMmTOHzZs3c/r0aSwWC6GhoXTp0oURI0bg7p5XhXBhH/ycnBy+/fZb4uLiiIqK4sknn+S2227j8OHDfPLJJ+zatQuj0UiPHj149tlnnQ/rffv25cyZM4BrjXVR+nnn9zdftWoVkydPZv369aSkpLBkyRIqV65MZmYms2bN4o8//iA+Ph4vLy9uvfVWnnjiCSIjIy+bt8PhYPbs2WzatImTJ0+SlpZGUFAQ7du35/HHH8ff39/lvQCYOXOmsxY+PDzc2Tf+wjEFmqbRu3dvgoKC+Prrrwscd/Hixbz77rt89NFHdOrUCQCr1cr8+fNZuXIlp0+fxmw207RpUx577DGXVfCu5GrKarfbmT9/PsuWLSMmJgYPDw+aNm3KqFGjqFmz5lUfK9+vv/7KihUrOHjwIMnJyXh6etKkSRNGjRpFrVq1ipzf1cj/uwDo16+fc/uIESN47LHHCh1TkL/t008/ZefOnSxZsoSUlBRq1qzJuHHjaNSoEdu3b+fTTz/lwIEDeHl5cc899/Doo48WOP7evXuZNWsWf//9NxaLhfDwcHr37s2wYcNKVbAqhCg6qwbdv1OIyQCscOG6xIqC60N7IbwdOtGxCc6AIF9AuoWmWw6ztmMDcoxGPG12l/1H/L0Jzsom0csj72FeBRSVbVWjGf7PWu7eu5WqqYlYTCYG/LsVT5uVvvt3sKJuMwJzHFhMBuK886Y9RdfzCqsorsGBwcA7ne7itd8WQ0YOXzduDeRXoBj4er+daG8H+3LyKroUdHQUjIrOEw3tvNIsr8y/n1Z5ZYuJI+kqbUI1JrS1Ee1XfHOvCyGuTpGeQBISEliyZAmdO3emR48eGAwGduzYwdy5czlw4ABTp051Sb9o0SLS09O56667MJvNLFiwgHHjxvH+++/z1ltvcccdd9CxY0c2b97MggULCAgIcD5EjR07lqlTp5Kamspzzz3nzLN69epFPsnRo0cTFBTEI488QnZ2Np6enmRmZvLwww8TFxdHv379qFGjBomJiXz//fc89NBDzJs3j/Dw8EvmabPZmDdvHp07d6Zjx464u7uzd+9elixZwj///MP8+fMxmUxUr16d5557jgkTJnD77bdz++23A3nLVBfGYDDQs2dP5s2bx5EjR4iOjnbZv2zZMvz9/WnfPq92x263M2bMGHbt2kWvXr0YNGgQmZmZ/PjjjzzyyCPMnDmT+vXrX9X7dDVlffXVV1m1ahWtWrViwIABJCUlsWjRIoYPH87MmTOLFIQALFy4ED8/P/r3709wcDCnT592ln3+/PlUqVKlSPldjbvvvpusrCxWr17Nc8895wzgriYImTp1KpqmMXjwYGeA9OSTT/LGG2/w5ptv0r9/f3r27MmqVav47LPPqFy5Mr169XK+/q+//uL5558nKiqKBx54AF9fX3bv3s2MGTM4ePAg77///g0/XyHEzbPqOMRknKsmd7g+uJ81qPg6NJdt6kXdfdx1nTQvjwL52gwqu1vUwMdqw6HrHPbzpkZaJipw3NeTNVVCyTGd+0pXz3f92RNahW7DX8ZLs5Li6Q3AuIxUfvviLeJ8Qrln3xnMjrwynPD1ZHnNcBz5Awjy45kLalt1ReGN7vfwf6u+d9kOYDWa2Jdz/nf9XAZ2XWHybhNdIjSifXWGrzaTo+Xt2xhv4OE1CmvvLNj6IcT1kpaCoilSUBAREcGyZctcajMHDRrE9OnT+fLLL9mzZw8NG56fHzkhIYFFixbh7Z33QdSyZUvuu+8+nn/+ed5//306d+4MwMCBA3nggQdYtGiRMyjo1KkT33zzDbm5uS4PVdciOjqaN99802XbRx99RExMDLNnz6Z27drO7X379mXw4MHMmDHjsrMBmc1mVq5c6Wwdyde4cWPeeust1qxZQ7du3QgKCqJTp05MmDCBmjVrXtW59OnTh3nz5vHzzz/z9NNPO7efPn2aXbt2ce+99zqvwYIFC9i+fTtTpkyhTZs2zrQDBw7k3nvvZdKkSXz++edXPCZwxbJu2rSJVatW0a1bN9555x2Uczdbt27dGDp0KB999BFffPHFVR0r35QpU/DwcP0C7N27N0OGDOGbb77hpZdeKlJ+V6Nx48bUrFmT1atX06lTJypXrnzVr9U0ja+++so53qB69eqMHTuWF198kdmzZzsDsDvvvJM+ffqwaNEi5/uYm5vLm2++ScOGDZk+fbrzGg4YMIBatWoxceJEtm3bVmrGcqiqglqKRxcazvU7MEj/g1JDrgmk5OrnR+Ua1PPzfQJJBgOKDpU0BzqQoUDUBQ0CuarCUT9PVEM4bSNCqBmT4Ny3tkktMtzdcNc0VEUhy83EtKa1MDh0Mtzyxz/pQF5AEJSVTrtj+/mlThNyTWasbmZnXmd9/HmpxxDCc7xx184HJVXTLdRMyeRgkA9c4db/M/rqKpsuNO+QiS4RDmdAkG9fisppi0q1wmdYLJfkXhGlUZGCggsHXtrtdiwWCw6Hg1tvvbXQoKBPnz7OgADyamK9vLzw8vJyBgT5mjRpwnfffYfFYrlkLfq1euCBB1x+13WdFStW0LRpUypVqkRqaqpzn4eHBw0bNmTTpk2XzVNRFGdAoGkaFosFTdNo2bIlAHv27KFbt27XVN7o6Gjq1avHypUrGTNmDKqa96GxbNkyIO99zbdixQqqVatGvXr1XM4DoFWrVixbtoycnJwCwcu1WLNmDQAPP/ywMyAAqF27Nrfddhtr1qwhJSWFgICAq84zPyDQdZ2srCzsdjsBAQFUrVqVPXv2XHeZb7SBAwe63AdNmzYFoGHDhi4tMiaTiQYNGrBz507nts2bN5OUlMTo0aPJzMx0ybddu3ZMnDiRzZs3l5qgIDDQy+U6l1a+vgVrVUXJqsjXZFhLjed+y8mrRTcb8jrO64Cu46c50BWIMapkKgqaopCoqlTVNHI8zJz290DTYLfRwNw7WlHvRBwhqRkcCw/mRFgQwdk5uGt5LQ3VUzJYWS3M9eDn7tf+uzfz9YIprKnRgJ8a3FroA/6OiOr0P5hUYHtgdi4ovs744lJifa7+cz5f/UpG6oQp5I1SOM/dCNFhnvi6lf7PmxutIt8rovQpcgfmRYsWsXjxYo4ePYrD4Xpj5y+qkC8iIqLA6319fQkNDS2wPX8GmLS0tBseFFStWtXl95SUFNLS0ti0aRNdu3Yt9DX5D+KXs2rVKubPn8+BAwew212bidPT06+9wOTVln/00Uds2bKF1q1bo+s6y5cvp0aNGtSrV8+Z7tixY+Tm5l7yPABSU1MJCwu75P6rFRsbi6qqhXbhqlGjBmvWrCEmJqZIQcH+/fv57LPP2L59O9nZ2S77Cvv7KWkXlyl/8ZDCWht8fX1JS0tz/n7s2DEA/vvf/14y/6Skgl/SJSU5OavUtxT4+nqQnp6Npl1hhSZxU8g1yXuO7lZVZ9XJvD75/kAGOoGahscFPYW8dJ0zSt684nFGI4rVTqDFSoKbmRyDSqbJyL/VXT9X3O3nux7dcuIkzyaf5X+31Cfe3weL2QSKgkHTmPbTLDzsNiymc60DhTzgV08+yxkfbyIyXD93z/hcxfevrnMkuGD3WrPdhtVY+KxtviadR2rm4m2CThEm1sSc/44d08iOZsklxXLlQ5cXcq9AQIBXsR9Dug8VTZGCgvnz5zNp0iRat27N4MGDCQ4OxmQykZCQwPjx4wsECZeaweVyD9x6YdOpXaeLa8nzj3HrrbcybNiwa8rzjz/+4D//+Q8NGjRg3LhxhIaGYjabcTgcjBkz5rrPo0ePHkyaNIlly5bRunVr/vnnH2JiYhgzZkyBtDVr1uTZZ5+9ZF5FeUi/meLi4hg5ciReXl488sgjVKtWDXd3dxRF4eOPPy4QJJQGl/rbvZrZivL/Jp5++mmXLmsXCgkJufbC3WAOh47DUfoH/2maA7u9Yn6pllYV/Zp8fSfM2WVn/F8qmu6gRq5G9kUBthHw1SHHoGABTJrC8ys3s7h1fSIzs0lxdyNXVXFz6KgOB9Fnk9A88r7LIhKT6LB7Lz2sVurHnSXT28SzA/uBDqGZaYRnpALQ4+BOKmWkctbH//wAZwVMdjtx3r7sCwui1+EzBOTY0BTYXcmPE/5eOBM78tKjKOcGGyugO6h7NgZbWADhYe60q2THcPAMXmdT6F9P5UCDesw9aCBHAz+TzvFMlXoBDl5pZsdDBU2Dr7vk8vNxAwfSFNqHOWgf7uCierUKo6LfK6J0KVJQsHz5cipXrszkyZNdHo42bNhwwwsGFFvXhYCAAHx8fMjKyqJVq1bXlMfy5ctxc3NjxowZLkHH8ePHC6S9lvPw9/enXbt2rF69GovFwrJly1BVtUA//6ioKFJSUmjZsuVVtW5cyeXKGhERgcPh4NixYwUG5ebXgheldj//3CZMmFCgy0xaWhpms/kSr7x+JdEtJn/QtIeHxzX/3QkhyoZhjRWGNdaZt0tl8hJHgZ44GpBuNDhrMm2qyrYqofQ6HudMk+huRs21UvdsInajkUppqdSOPUOltPMt0XurVuHl1TOY3Lk1xwIrccbPnyOBoUQnx+Nly+WPL97kle738mutW7CYzaAr2IxGjgWHgwLfNKxKYI6VbKOBbKOhkHUO8qZM8jfrDA1L5x73RKrcH4anWQVseUmahgF5rdHBOGgXfvmHXJMK/Wtol00jxI2gS0NBkRTpKdJgMKAoikstuN1u56uvvrrR5QLyZr1JT0+/4a0HqqrSo0cP/v33X3777bdC0yQnJ18xD8CldUTXdb788ssCafP7zRe1S1GfPn3Iyclh+fLl/Pbbb7Rq1apATXLv3r1JSkoqdPpSKHp3lMuVtWPHjgDMnj3b5ZocPnyYP//8kyZNmhSpVSL/Pbz4+v7444/F3o0mv4va9XbzKoo2bdoQGBjIV1995dKtKF9OTg5ZWVk3rTxCiOI3tLGB+re4YbuopSBTVVy6Nvhn51Aj/gy37d5Dtbi8wCA4x0pkpoVcNzdCUtOplJyBxehG/uoBZ4Pd8VFMPDDkZY4F5H036KrKsEFPcMbHH4CaSXH0OniQSB8DrUI1OkVqdInQuPfodnrt2Qa6TrK7mexzrZ2hXjovNLPzZCM7oxvZGd/Sxr+Dcjg4JJdXO5up27byuYBACFHeFKmloEuXLkydOpWnnnqK22+/naysLH755Zdim1u9YcOGrFu3jg8++IDGjRujqiotW7YkMDDwuvMePXo0O3fu5D//+Q+///47jRo1wmQycebMGdavX0+9evUuO/tQly5d+OOPPxg1ahS9e/fGbrezdu1acnJyCqT19/cnKiqKX3/9lcjISAIDA/Hw8KBDhw6XLWP79u3x8/NjypQpZGVl0bt37wJp7rvvPjZv3swnn3zC1q1badmyJV5eXsTFxbF161bMZjMzZsy46vflcmVt3bo13bp149dffyUjI4P27ds7pyQ1m82MGzfuqo8DeYNrp0yZwmuvvcagQYPw8fFh586dbNiwgcjISDSt+GqS8gfET548mZ49e2I2m4mOjr6mtRauloeHB2+88Qbjxo1jwIAB9OvXj6ioKDIyMjh+/DirV6/mww8/LDUDjYUQN8acfrC/rYkxC+0kJDmwqwqWC7oceths/O/b76memldZUPf0abbXrMmOWjVxKApBiUm0OnDMmd6BThR70LVQ4DZqpObgnW3DrOvYDCrbImpx57C36XHkACeqhlOjZSwHHvYgISGd/MEFfzeow67nfuKN375ne0R1Zt/aCd92NZnSXlYtFqKiKtLT/NChQ9F1nSVLlvDxxx8TFBREt27d6NevH/fcc88NL9z9999PTEwMv//+O4sXL8bhcPDZZ5/dkKDA29ubWbNmMX/+fFatWsWff/6JwWCgUqVKNGnShLvuuuuyr7/jjjuwWCx88803fPLJJ/j4+NChQweefPJJunTpUiD9m2++yYQJE5g2bRo5OTmEh4dfMSgwmUzccccdLFy4EC8vL+diZRcyGo1MmjSJ77//nuXLlzsDgJCQEBo0aOAyU9HVulxZ33zzTerUqcPPP//MpEmT8PDwoFmzZjz++ONFfqCOjIxk8uTJTJs2jdmzZ6OqKrfccgszZszggw8+cC5eVxyaNGnCmDFj+OGHH3jrrbfQNI0RI0YUa1AAea0Fc+bMYc6cOaxYsYKUlBR8fX2JjIzk/vvvL7YF24QQJatusMKqJ0xYbDojlsKqEyrk5nWk73XwiDMgyNfo2DF2RNdg+q11+d+Uv132abhhwZ8sc95ATX+rneF7TwJg0DJQHm1Ivxo+NAhqjt1uZ8OGgjO5NY0w4j9zAAuPDsKgwPRojUhvW3GcuhAlRgYaF42iF8fIXiFEmZeQkHHlRCXIaFQJCPAiJSVLBuqVEnJNrk6mFVrPUzmb5kC1aozasoMX/9roksYBvDKgGweD/Zgz82eMFw3691dO8kPrLsT6hpPu4YF2rsX+zri/aPzDYGe6vKDgDwYMGODSUiBKltwrEBLiU+zH+O8dmy+7/7VfZHzfhYqn348QQgghCuVthg0POPhuv0JMkkrN/SbsqorxgjFqDrPG7MUzAYjz8MeaHYyDvC5HDgV+bNaVU37hWMxmtHNdkfwyz9KsWyAVdCIfIQqQloKiKXNBgcViwWK5/GTGBoOh1E7DWVISExOvmMbb2/uGLHKWkpJyxfEAnp6eN3w9ipycnAKLghUmODj4hh5XCCGKytcNRt6SN82nfvstfN89jXpnYgnKzMRm1mmYetCZNiw7lU2hISgWLxJ8vPindjRp/j7USIrBkJ7MV7e0YeDxHTzZzIplVNG7jAohBJTBoGDevHnMnDnzsmnCw8NZunTpTSpR2dCjR48rpnn99dfp27fvdR/rwQcfvOJ4gBEjRvDYY49d97EutGrVKt54440rptu2bdsNPa4QQlwPRVE4ObwZh5eFcrBKOJMWTUe9aNVff1sWrcY+SVhmLme93Phgz6/cO9Qfx519GaQowB1UoLW/hLgqDmkpKJIyFxT07t2bJk2aXDaNm5vbzSlMGTJt2rQrpomOjr4hx3rzzTfJzc29bJriWK24TZs2V3WeQghR2jx+tzdrvvuX0EPxWB0FW2yVXCPZJiPHAoz45dro8t7tOPxkalAhxI1T5oKCyMhIIiMjS7oYZc7NXCzrSkFbcQkODpauQUKIMsnTXeG27+7m0LStWLcayMYDD/JWdc/Gg+OeVWgWm4jDZOLp2xQC/aTySwhxY5W5oEAIIYQoj3w8FZo9fyunVv7D8d01cCMXUMjGA4evldHNVTp0NOPnIy0EQlwNXWbbKhL5ZBFCCCFKEcsrd+LnfRRvEvEiCXe/06SP60LfPl4SEAghio20FAghhBClSJ3bQ1nz1f9x4rt95Ggqwb1rc2evGztbmxAVgUxJWjQSFAghhBClTKcOntCheUkXQwhRgUg7pBBCCCGEEBWctBQIIYQQQohyR7oPFY20FAghhBBCCFHBSUuBEEIIIYQod6SloGikpUAIIYQQQogKTloKhBBCCCFEuaNLQ0GRSEuBEEIIIYQQFZy0FAghhBClnMPuYNo6jZmnPUhzqNwW7uC9NnYifUq6ZEKI8kKCAiGEEKIUS9ybzn9mZbCrUgB37/6XdA83ljSpT4sTZt5sZWNEY72kiyhEqeSQgcZFIt2HhBBCiFLIlpjL4XE7eG9SEoHJqYxcvp6dnn4kWRU+mr8U/+xsXv1T5feBq8joNg/e+xOyrCVdbCFEGSUtBUIIIUQpY1yzj6PP/cqz/QayuX40QWmZJNWrB1YNgN+rV+OBvw9R1aax1zOKtBwzxtV2Gu36nerf9Czh0gtROsiUpEUjLQVCCCFEKaKkZOE2dCb33fcwm6tEA5Dk5w0BHnDuGcdqNLA7KASr0YxDNXAquDKJHn78mRlExp7kEiy9EKKskqBACCGEKEXiVhxgd0AUx4JCXHeoCpjPN/CrDgeKw+H83eLliVd6Fid2Z92sogohyhHpPiSEEEKUEuqsTaRO/QdbRhhGTcNuMLgmOBcE9N93lD6HTmBw6GT5eBIXEUJwZirV02IImLAXo6EV9kEtSuAMhCg9pPtQ0UhQIIQQQpSwLUesVB7yCU2PHaE24cTiwZC/9jC34y3ONHVPnMWYYsHNAHcdOO7c7p1hIeRMEj1Pr6d6cgxW1cih16HyT4fgiwElcDZCiLJIggIhhBCiBP2xMxfHyO/pfewIABoqOvDsik20OXiKndWDaXNmN9327WdTRH1+bti8QB6BKekYU8zEuoeyLbo+p/3CcGQq9Pt+H1S5ySckRCkhU5IWjQQFQgghRAk6OW47d2TEk4MbB2hABn6ADujUPJLKrUcO40cSvqRzx6ndrKldr0Ae2e5mfmzVFs1kJNdsdm5ftjyX8FE371yEEGWXDDSugPr27cvIkSOvuE0UJO+TEOJGyo3PJjDLwvLaDThM3XMBAeRNM6RSn500YyPRHMQNCwoaz/+1AqvpfA2orkCmnxdWk8klIABI090InxxHznurIS3n5p2YEKWArlz+R7iSoEBcl23btjFjxgwyMjJKuihCCFHmqCaV2AAfzuaEkEKgc3umm4mzvp6si2rGvfe9yTN9nmZvaFXMpBGYa2HQkXU0ST5Mur8XiWGB2NzNlzzGyOb9GbHdg6w7vwGbdjNOSwhRBkn3IQHA4sWLUa6h79327duZOXMmffv2xcfHpxhKJoQQ5dfKzdlEnkqnbVw6OnntA/PbNmB5kxrYDQYCsnPxV1XifQJ5oddovvz+XQ4F1cauGqgXcxyLlzuKmle/p+o6isOBrp6v7zsQ7Me/lSvxb+VKnPIL4H91/ovatSa5ozpDs4iSOWkhRKkkQYEAwGy+dC2TEEKI6/NPosLcg0ZsDvC1WvnrgEaVg/EkuHvwXlw6AFbVwLZa4fzUvJbzdSkebijZuQSrKjkmN8b1eQ7d5AaAm9VKx7/3kRTsB+cqdeI9TOyKCqXxmTi2R1Zmc5VQZ17ralcnzeZG5f9twPN/f5L2cD+WDO/DskM6nf/+l35HD+IV6Y02ohVU8b95b44QxURH+ggVhQQF5VhcXByTJk1i48aNADRr1oyxY8cWmrZv376Eh4fz+eefO7ft3LmTL7/8kgMHDpCRkYGfnx+1atVixIgRNGrUiPHjx/Pzzz8D0K9fP+frRowYwWOPPUZCQgLz589n69atnDlzhtzcXCIiIujduzdDhw7FcMH820uXLuWNN95g+vTp7N+/n++//56zZ88SHh7Oww8/TJ8+fQqUedu2bcybN489e/aQnZ1NSEgIzZs356mnnsLf39+Z7tdff2XBggUcOnQITdOoWbMmQ4cOpWvXrtf1/uaLiYlhzJgxWCwWJk+eTO3atZkxYwYzZ85k4cKF/Pjjj/z6669kZmbSuHFjXnzxRapVq8Yff/zBl19+yfHjxwkMDGT48OHcfffdN6RMQoibb84BA9P3Gsm2K7SqpHHiZDYx6TpNT5zh4W2/MenIDma16Mhr3e4lRzGzr2okaDqvDWjLU6v+xt2osadKSIF8M41GGp5J4mhkMBY3DzzOrVWQazazu3oUzfceYeYdLYjz9+ZQiD+V0rLYXjmIDE93l3zc7Xa8NRs5BKOj4TFrPYNmbWYgKjoG8pdLdp+xCrNPDopJR/fxQE2z4KgciG6zYzydlDcEOtgXy+M9yHm0W3G/rUKIm0SCgnIqIyODkSNHEh8fz913302NGjXYsWMHjz32GLm5uVd8/fHjxxk9ejRBQUEMHjyYwMBAkpOT+eeffzh48CCNGjXi7rvvJisri9WrV/Pcc885H8Rr1cqr5Tp06BCrV6+mU6dOREZGYrfb2bhxI1OnTiUmJob/+7//K3DcadOmkZuby913343ZbOb7779n/PjxREZG0qRJE2e6xYsX895771GpUiUGDBhAeHg4cXFxrFu3jvj4eGdZPv30U2bNmkXbtm0ZNWoUqqqyevVqXnrpJV544QUGDRp0Xe/z/v37efrpp/Hx8WH27NmEh4e77B8/fjweHh4MHz6c1NRU5s+fz5gxYxg1ahSTJ09m4MCB+Pr6smTJEt555x1q1Kjhcp5CiLJh5UmV5zedb3H933Ej4EOdjHQe+OdPBu1Zyz+Vq/JCrwfAAWTk5k0wBGyqGU6zmLN0PXSKsLSCqxFHJGfQ4FAMiX5GMlQDoelZND19imRvb075B6Ho0OjQGY62rMPLi9dRLzaJHKOB/zzQhQRfL2c+j/+1Dne7HQAdAzoGFMCAjgMNB0YMZONJAuQPE0vOBEBNPV8uBeBUIj4vz0cP8SX3zlY37o0U4gaSKUmLRoKCcmru3LnExsby2muvOWvx77nnHj7++GO+/fbbK75+06ZN5OTk8Pbbb9OwYcNC0zRu3JiaNWs6H/wrV67ssr9Zs2YsWbLEZazCkCFDePXVV1myZAmPPfYYwcHBLq+xWq3MnTsXk8kEQJcuXbjzzjtZuHCh82E5Pj6ejz76iGrVqjFr1iyXsQyPP/44jnO1aPv372fWrFkMHz6c0aNHO9MMHjyYsWPHMm3aNHr37o2X1/kvzaLYtGkTL7zwAjVr1mTChAkurRP5goKCmDBhgvM98Pf356OPPuKDDz5gwYIFhIWFAdC9e3d69+7tcp4lTVUVVLX0fqAaDKrL/0XJq8jX5KeTBb9ODZoD/2wbXQ5vB2Bho9Z5U57YNWdAkC/HnNdyeuuxM2yuHs6RSgEAuNvs3L9tF342G+Eb8h7QM91N9Pl3B0ZdJ8YvgIM+YXTeeZz2e0+hueW99+52jTcWrGFjg8poZo2uB/Yz6J9/nMe7+M5Wzk2BaiKzSOftvmQL2oA2RXqNqNj3iii9JCgop9asWUNQUBC9e/d22T5s2LCrCgq8vb0BWLt2LbVq1cLNza3IZXB3P990bbPZsFgs6LpOmzZtWLFiBXv37qVDhw4ur7nnnnucAQFApUqVqFKlCqdOnXJu++2337DZbIwYMaLQwc3quUF2K1asQFEUevfuTWpqqkuaDh06sHbtWnbv3k3r1q2LfG7Lly/nv//9L23btuWdd95xOdcL3XvvvS5BUf4Df4cOHZwBAUBAQABVq1Z1Oc+SFhjodU2Dz282X1+Pki6CuEhFvCZhvhoXP+k7FAVNgXR3T8IzkwnOPvfAXch99WeNCHrtPY7J4eCZ37ZxKtAbXYUWJ2LxzbHiUGBvZCjZbia8c2zE+ARQNT2ZiLQUUhUP/DKtnA7yR7VbaZmyldCcs6Sa/KmZ3pQ2cYeuumd1Xjeiq2cO88cccG0VK6Ji3iui9JKgoJyKiYmhfv36Lv32AYKDg69qlqDu3buzfPlyZs+ezTfffEOjRo1o3bo1d9xxR4EuMpdit9v56quvWL58OadOnULXXb8w09PTC7wmIqLgbBh+fn7ExcU5f89/cK5Tp85lj3/s2DF0XWfgwIGXTJOUlHTZPAqzf/9+Xn/9ddq0acOHH35Y4D2+UGRkpMvvvr6+AAVaVQB8fHxczrOkJSdnlfqWAl9fD9LTs9E0R0kXR1Cxr8mD0Qpz/zWRbs2/Z3R0VeGMnwdzmvXgrV+/ZNi2tbx5+wBSzZ5gUEA7/5kYbMlhR40wPHPt+Gbn0vLYabxtNud+VYeQ9CxOhvgDYDGd76pkMuokhPnjbrHROuNPAmxpAATZkul49k9W1exO+yP/YtTPX5P8mY7yOc7NUG7HA53Ucy0Hl6d7u5P+UGccKQW7PInLq8j3Sr6AmxBM6mWgYqs0kaBAFMpsNvPpp5+yZ88eNm3axI4dO5yDZ9966y1uv/32K+YxceJEFixYQLdu3Xj44YcJCAjAaDSyf/9+pkyZUiBIgPO1/BcrLO3VUBSFyZMnXzLf6OjoIucZFRWF0Whk27ZtbNy4kfbt218y7aWOe6PPszg4HDoOR+kpz6VomgO7vWJ+qZZWFfGaVPOC3/s4+OaQAYtdoXuUnV0nbcRuPI2/l8b8nvfQzHqGNYkruMu7K+mqmapJZ9gdGI7dYMBhMtD4ZAIn/L0Jj83Aw2YvcAzlgs+HSpa8Tv86sLV+HRJ9fal9+hgB/6S5vMbssGE36cxqcwfVEo/R7PRJAi3Z5KgKXooFrXo4DrsK/h4YQo0o2XZS/RrhZs4GPzO6vydqUgZatUqQY8O4/zTYNBw1w8ge0hFHjVCoYNf6RqqI94oovSQoKKciIiI4deoUmqa51GQnJiYWaaGxhg0bOscUxMXFcf/99zN9+nRnUHC57iXLly+nWbNmvPvuuy7br7eLTJUqVQA4ePAgVatWvWS6qKgoNmzYQFhYGNWrV7+uY17Iy8uLCRMm8NRTT/H888/z7rvv0qlTpxuWvxCibKrqo/OfZucf5m8LN0KrakA1l3QbHTrfb9XIOuRBreRkFuqhbKkaxuRerWm8P4YW++PJwYQXVudrdCDR1xMdqGRJJSg7C4vZzF9165FtNBGUkkaWmweaomLQXR8yW5zeTtfDqzntUwV/Sy4aRow1g8maey/UCCr0XAqGJEKUPdJSUDQywqWc6tixI0lJSSxbtsxl+5w5c67q9Rf3wQcIDQ0lICCAtLTzNVGenp5A4V2BVFUtUPOdnZ3NN998c1VluJQuXbpgMpmYOXMmmZkFB8XlH7NXr15A3oxGmlZwFc9r6TqUz9vbm6lTp9KwYUNeeuklfv/992vOSwhRsRhUhXtbGXn4gUAm97DR8mQMddMziff0wM+SFwjkYCILMzZUrBjYVTWMk5GhHK9dlY3NmvD0vYO5f+hQfqhXD6PVhgLkGj34O/wWl2NZVSM5qjtZBi+iLScxjKqHbfez2P964pIBgRCiYpKWgnLqwQcfZOXKlbz99tvs27eP6Ohotm/fzq5duwqdJediX375JZs2baJ9+/ZERESg6zrr1q3j+PHjPPjgg850+a0IkydPpmfPnpjNZqKjo6lZsyZdunThhx9+4D//+Q+33norSUlJLF26FD8/v+s6t9DQUMaOHcv777/P4MGD6d27N+Hh4Zw9e5a1a9fy2muvUadOHRo0aMDIkSP5/PPPGTJkCF27diUkJITExET27dvH+vXr2bRp0zWXw9PTk8mTJ/Pss8/y8ssv8+abb9K9e/frOjchRMWi1gpjzJplTOrZkTSzyq7qoXT/5yigkOLhSWKYD7lueVOH1jkaj9uBGGa1a8yq0LyZ2/Z7eXDYy5NhB46gAmuq30aiMZjasccwORQWtupGkHs8wwZVJrFHQ/AqfFIEIcojhzQUFIkEBeWUr68vX3zxBRMmTGD58uVA3hShM2bM4PHHH7/i6zt27EhiYiK//fYbycnJuLm5ERUVxSuvvMKdd97pTNekSRPGjBnDDz/8wFtvvYWmaYwYMYKaNWvy3HPP4eXlxapVq1i7di2hoaH079+f+vXr88QTT1zX+Q0cOJDIyEjmzp3Ld999h81mIyQkhJYtWxIaen4Fz5EjR1K/fn2+++47vv32W7KzswkMDCQ6Oppx48ZdVxkAPDw8mDRpEuPGjePVV19F0zR69ux53fkKISoGJSsHPz0Xd4dOGnAwIohvb2tAj7+PEBftj+OCKSst2bkEJaXzV2QllzxivD055OdDnbS8rqF7IurhlmPmrL8Py6pFMai7FeWh2yGhYIuuEELkU/TSNLJRCFFqJCRc/diTkmA0qgQEeJGSkiUD9UoJuSbXJqftB/yn5YNsDfBDOzfj160nYmkT4zobmeLQqXUglntH3Fkgj54nYmiemIxDUcjy9CAkKYn1taMxdw2mn99qBgwYQEJCOgVXKBAlQe4VCAm58kyI1+vJQfsuu3/qwnrFXoayRMYUCCGEECXIe+JdDP1nJe0SU6iZacHfYafx6fgC6RRdxz/bSoPYRJftqkOn6fE4vNKyyfDyINHbi/X1atN+UBDv9ZQgQFRcuqJc9ke4ku5DosJLS0vDdsF84IVxd3d3LugmhBA3kr1VbZr9HEWTZ79l/V4Tn916OzM7N+Wp1Ttcau5CE9NRgJdXbuK5gbcT7+NJcFYOQzfvo05MIlaTgWyjQl3rccK/vYNG4Sp2u8wjJIS4OhIUiArv+eefZ8eOHZdN06dPH8aPH39zCiSEqHh8PFC/eJjbgLN7HDy+3Yu3e7ehy/4TBGTlkGky0Sk5m03VwlldpwrxvnkLP0WlZNAkJgEAzWjAqBuoEWqgZrh0BBDCId3likSCAlHhPfvss4VOqXqhkJCQm1QaIURF17+ByrzFsWyqEsZ3t9YjMCuHLodOMaFHK06bzS5p94TnTSvqUBQ8MnLJrONJfH0/apZEwYUQZZoEBaLCq1dPBhoJIUoPVYEXB3hyavRiKqXZOBMeTv/9v/N1g+a817qzS9pKGRbQwOphJLZWMHazkZCulUuo5EKIskzaF4UQQohSpk1DN/56vAsbq1YiIv4Mf9RtyaN/r6dJ/GlnGqOm0ffwEXa2rsGBJlXI8PckrJYH0a18S7DkQpQeMtC4aKSlQAghhCiFPrnXnfWt2vDLRguRX/7N7pAGfLJqBTsDK3HGPYB6J9IIm9CMoLYRnPwnE69AE1WbeqOq8rAjhCg6CQqEEEKIUkhRFNpXV2hf3ZujalXsY09jt3lTPzmbulgJeLs5/ndWB6Bht8ASLq0QpY+saFw0EhQIIYQQpVyNwVWwtQkkfdZBHCm5ePWrgmfXiJIulhCiHJGgQAghhCgDTFW9CXqjWUkXQ4gywyHjBopEBhoLIYQQQghRwUlQIIQQQgghRAUn3YeEEEIIIUS5I9OOFo20FAghhBBCCFHBSUuBEEIIIYQod2RK0qKRoEAIIYQoo2zZGlZNJ0c1EOQpT0BCiGsnQYEQQghRxmg2B39OPMaxzWlkGt2wGIykBbnz6H8qE13ZVNLFE0KUQTKmQAghhChjts46xfFNaRwPCeFERCUSwgKxmjz5Y+QetGx7SRdPiFJBR7nsj3AlQYEQQghRhtjtOgd+TyLV04MsT3eXfUerhrKl6Qr2Df6LrH1pJVRCIURZJEGBEEIIUUakpmq880IMDpuOrhes6bSZjdTP/JvsTbHsHbgOLVsrgVIKUTo4FOWyP8KVBAVCCCFEGbHy2yT849I46e1BtRNnURy6y/7GMfuoaT1Cq5y/0CwaqStiSqikQoiyRoICIYQQooxI3JTE5iA/FtSqRlByJpXiU/DMzsao2WlxchcjNi4AwN+RhsPXSurX/2LIkdYCIcSVyexDQgghRBlgzbKTrumsqhqBt10jPsCb4JRM6icfY/jf3xZIv7N+NW7b+Q+NXs1EH6IXkqMQ5Zt0ESoaaSkQQgghyoB135zluI83XiYFLciD54d15niEL4meIZz0q+yS9mBINQ6HV+Pv8MZs8K9Hyk8HS6jUQoiyQloKhBBCiFIuN1fnzy05bIkKxctixZRtpXFCMtHJ6aDrfNewP3XS9lM96TTHgqJYXr8jEUkJ3HrkIKkGT9a9uJMG7xrxbROCYpDaU1ExyIrGRSNBgRBCCFHKbdyYzdKocOpn5WDEirem4WWHHJMR3zQLvmnZrKvThsVN/AEYvHk1HQ7tAUBDYd+J6ux7cBMeBhu31EpHfboNjjvqluAZCSFKGwkKhLiJYmNj6devHyNGjOCxxx4r6eIIIUqJtBwdiw3Cfc5XbaZk62RYQddh+5oUVEMgfwb5YlVVVF3nlgwLXjm5eGflEHg2k45n95Hq54nZZKXD8T3OfAzo1M49SaLBH5tN5eROO9FDv4P59+HoXqckTleIm8IhC5QViQQFN9CBAwdYs2YNffv2pXLlyld+gSgWsbGxLF26lE6dOlGnTtG/8NLT01m2bBl//fUXx48fJzU1ldDQUJo3b84jjzxCWFjYZV9/6NAhHnjgATRN47333qNr167XeipCiHJO13Xu/1nl9zgzOhDuptG5hsK6kzonz9jh3Phgg0coqqJgU/OGAjoUhb99vaiWaaG62UhaoCf+yRb80yyE2xIKHMes26luScCogwOIJxyfh5bhcfe/6O2row1sDEbDzTtxIUSpIwONb6CDBw8yc+ZMYmNjS7ooFVpsbCwzZ87k4MFrG1i3Z88eJk2ahKIo3HPPPTz//PO0a9eO5cuXM3jwYI4ePXrJ1zocDt566y3c3NyutfhCiApA1+G30yodfjTzW7I7utkAZgNnNBNfHzZy0moCL5MzvWYwOAOCC8V4uvN7ZCiz29Xnky5NOBbkQ7rqXSCdDSNGPS/CUM/9N9ecytKDmeS8sBTPhm+j7j1dTGcrhCgLpKWghGiahs1mw93d/cqJxU1VrVo1Fi9eTGRkpMv29u3bM3r0aD777DM++OCDQl+7YMECjh49yoMPPsiMGTNuRnGFEKXMpniVI+kK7cMcVPXR+SNG5cVNJmItCmEeOpZsjSS7EVQFcu1gyQHNkfe7txnM52rsPUx5LQVZNoyahlGHHKOByOxcmmRY8NQcuFut+JxJ4GhQAGdCA7B6uxEZdxiVDBx4Awo2DKQSABd1pTBZPKmXeJw2zz3HmsmTsHb9Hj97KjoqXqThGe4g67+DwdMNJSkTa7db0IN8bvbbKcQ102VK0iKRoOAGmTFjBjNnzgRg1KhRzu19+vShefPmvPHGG0ybNo3du3ezdOlS4uLieOWVV+jbty+bNm1iyZIl7N27l8TEREwmEw0aNODhhx+mefPmLscZOXIkZ86cYdasWUycOJGNGzditVpp2rQpzz//PFWrVnWmzc3N5auvvuKXX34hPj4ek8lEaGgobdu25emnny7yOe7fv5/Zs2fz999/k5GRQWBgILfccgtPPPGEywP0//73PxYtWsTx48cxGo00bNiQESNG0KRJE2eay/Wtz38vf/rpJ2c3rPHjx/Pzzz+zZs0apkyZwh9//EFWVhZ169blueeeo2HDhgAsXbqUN954A4A33njD+e9mzZrx+eefX9V5XqrrV6tWrfDz8+PIkSOF7o+Li2P69OmMHDkSf3//Kx5n3bp1zJw5k8OHD+Pj40OvXr0YPXo0RqPclkLcLLoOM/YaWHjUiKdRZ1R9O32qOpz7j6YrvPu3kb0pKrdWcvCfpjYqeRTM53Smwjt/G1l+TMGS7QCzMe8ZXNdB08HuAJPKKSugq2DJBUWB3AsWFtN0SMuFQHcwnGsVcDdClg1NVWmZks5+b086pmSgAn6pWTTYf4qglAwGZRxgT+1wNI9UqtiP444VnVQcGFHxx04ll/IqOPAgl/qns5my6Ae+b3ArT2xehiep50OHM+Az4nN0VAxY0Y0GUr8di71jgxt4BYQQpYU8fdwgnTt3JjExkR9//JHhw4dTvXp1ACIjIzlx4gQAn3zyCXa7nf79++Pl5eV8gF+6dClpaWn06tWL0NBQzp49y5IlS3jiiSf47LPPaNq0qcuxsrOzGTFiBI0aNWL06NHExMTw3XffMXbsWBYsWIDBkFfL9P777/PTTz/Ru3dv7r//fjRN49SpU2zdurXI57du3TpeeOEFPDw8uPPOO4mKiiIpKYmNGzdy+PBhZ1AwefJk5s6dS4MGDXjiiSewWCz8+OOPPPbYY3z88ce0b9/+mt9jgCeffJKAgAAeffRR0tLS+Prrr3n66af56aef8PLyomnTpgwfPpzZs2fTv39/53sXGBh4XccFyMzMJCsri+jo6EL3v/fee0RERHDfffexYsWKy+a1fv16vv/+ewYMGEC/fv1Yu3Yt8+bNw8fHh4cffvi6yyqEuDrT9xoZv+18N52tZ1UWd7fSPtxBrgZ3/2Im1pL3gH4oTWVfisrK3rkueTh0GLTKzOE0BSw28DKf36koYLWDxwVft7qe1yKQnFN4oawaeFzQVcjXDXdNwytDpUdiGipgstrotP5fzLa8oOJg9XAsft6ANzNaPkyfAyuJTjmOASsmsvAnhWSCAR03LHhhwQ0NHTOdDx2mtfEEZ6hNJP/iTpbz0Cp2cvFDwYFqt+P32Kck7Z92LW+1EDedTElaNBIU3CC1atWicePG/Pjjj7Rq1YoWLVo49+UHBTk5OXzzzTcFugy98soreHi4Vj0NGDCAQYMGMXv27AJBQWpqKkOHDmXYsGHObQEBAUyePJktW7bQpk0bANasWUPbtm2dteXXKicnhzfeeANvb2++/vprKlU6X+M0YsQIHI68WrXjx48zb948brnlFj777DNMprwv2rvuuot77rmH999/nzZt2jiDlmtRt25dXnrpJefvNWrU4KWXXmLlypUMGDCAyMhIWrVqxezZs2ncuDG9evW65mNd7Msvv8Rut9O7d+8C+3799VfWr1/Pl19+eVU1/UePHmXhwoXOVokBAwZw7733smDBglITFKiqgqqW3k9Uw7ma1Pz/i5JXFq/JgiOun0c6CouOGekUZWf1GdUZEOTbkahyJNNAHf/zKwRvilc4nK6CXQO3Qu5/80WfeYqS113oUvK7PDj0vC5FbgayMfB7jUp0PXKWsKxcIs6kOAMCi6eZ1ODz4whsBjPLa95B153rqGE7QqpeiRw88eUsIRzDgEYWUVzYncjTbsOKFSPWAsUxYsGOF2bSUJIzMdrt4G4ukE5cvbJ4r4jyT4KCm2jgwIGFjiG4MCCwWCxYrVYMBgMNGzZkz549BdKrqsrgwYNdtrVs2RKAkydPOoMCb29vjh49yuHDh6lZs+Y1l3vjxo2kpqby5JNPugQEF5YHYO3atei6zoMPPugMCABCQkLo27cv3377LQcOHKB+/frXXJYhQ4a4/J4ffJ06deqa87wav/32G/Pnz6dt27b069fPZV96ejoff/wxd911F40bN76q/Dp16uTSTUlRFFq0aMHChQuxWCx4enre0PJfi8BAL5Qy0B/T17eQvhyiRJWla+LtZi+wzd/TSECAG5UyHOTN1eMqLNCDAL/z90aYVQc0QMlrBbgaxks8DBoUMKuQZc3rOnTBg7uuKBwM8iYsKxftgofJXA9TgWxyzW7s92xAiiWcIGsuoFOZfzFiR8/r18TFYwx0FCz44Uuiy3YFnfxpkBSDSkCwD5jk8eFGKEv3iij/5K6+iapUqVLo9tOnTzNt2jQ2bdpERkaGy77CHspCQkIKzG7j5+cHQFpamnPbc889x+uvv87gwYOJiIigRYsW3HbbbXTo0MH5IH81Tp48CeTV0l9O/qxLhXWvyd8WExNzXUFBRESEy+/5ffcvPO8b7a+//uLVV1+lXr16vPPOOwWuySeffIKu64wZM+aq87z4PMD1GpaGoCA5OavUtxT4+nqQnp6NdrlaV3HTlMVrMrKuyta48w/VHgadITWspKToNPKGJsEm/kk8/3nZp6qGnyOXlJTzeVQzQ/twE3+dUSHTmvfAn/85oeuQYwPPi2rWVQV8zeQtRHBum1EBkwFScvNaCUwGuKiRQT+XbUx4AJlebnhn5eJhKVi7b8q1Y7A78LLntSaYyMV0rhVAQcdEJjZ8nentGMjGg1xqYMSKJ+nOsMGOO0YyAch5qDPZmblALuLalcV75UYLCPAq9mM4ykDFVmkiQcFNVFgrgcViYcSIEWRnZ3PfffdRs2ZNvLzyami/+uqrQvv/X+6BXr+glqpTp0789NNPrF+/nh07drBlyxaWLFlC06ZN+fTTT11q82+2y9VAa5p2yX2X6nqkX23tXBFt2LCBF154gRo1ajB16lS8vV2n+tu/fz8//fQTjz32GGlpac7gJDk5GYCkpCROnTpFaGgoZvP5h4KrvYYlyeHQcThKR1kuR9Mc2O0V80u1tCpL1+TOqg58ujpYdNSApxEermOnjq+O/VwDwqJuuczcZ+TfZJVWlTSG19Wc+y409/ZcZu03sjVe5XSKjaPZBmy6glGFXHcDerYtb/CwAqDnrQngZswLIKxa3lgEu45L5jl2165Huo57Vt6DvcNg4I/bGhJxJomzIf7kuhnxz7IQlpKG0aYRdioFBVDPfZ7YMWPHiJG8/M2koGIjnVAA0vFFR0XDzCka404aVdiNAyNEeWKrE01uv5bk3ts+b9C0uCHK0r0iyj8JCm6ga+lqsWXLFhISEnjttdcKdEuZPn36dZfJz8+PXr160atXL3RdZ8qUKcydO5e1a9de9aJa+QOiDxw4QOvWrS+ZLr/2+8iRIwWm88yf2z8/ja9vXg1Venp6gXxiYmKuqlyXcqO6vGzYsIFx48ZRrVo1Pv30U2eZLxQXF4eu63z22Wd89tlnBfZ/+OGHAMydO/e6WkiEEMWnc4SDzhGFP5j5mWHcLYVEARfxNsFTjezQKH+La+XG/hSF7Qk6d0RpnMxS+OWYxvrjOjtiHdhthedptNjyHuHdjXmtCTk2YnSF4JRU9leuBO5Gci/o25/g74cdA+hwKjCIWkfP4HPKQnh2BjoqZ4kmjIOo5zoQZeFNGn5U4298cCPRHE2O4otZySbIPQ57RBSWcXdh7d2i8AIKUcrJisZFI0HBDZQ/NqCwB91Lya/5vrh2eNOmTYWOJ7hamqZhsVjw8Tk/p7SiKM4VfovS3aZ169b4+/vz9ddf07t3b4KDg13267qOoih06NCBKVOmMG/ePNq1a+cccJuYmMjSpUsJDw93Ht/Ly4ugoCC2bt3qfD3kdaVas2bNNZ834Ox6cz1dijZt2uSc4vXTTz91du25WIMGDXjvvfcKbN++fTuLFi3igQceoGHDhgWCJCFExVI3QKduQF6gEOyh0yxYh5Z5jQRtvoRThXxtVLLZyM7QSMk916qr63SKPcvOYF/+qB1G5yPxgGvAkuJ/vjUzMdiXOZ0b0eT4KQZu+ZeoZAcWWuJBOlY8sOOGv2cqma07Yn2nH6YaQeS3H2cWw3sghCjdJCi4gRo0aICqqsyaNYv09HQ8PDwK7Tt+oSZNmhAUFMSkSZM4c+YMlSpV4uDBgyxfvpyaNWty+PDhayqLxWKhR48edOjQgTp16hAQEEBsbCzff/89vr6+dOjQ4arzcnd359VXX+XFF1/k3nvvdU5JmpKSwqZNmxgyZAidOnWiWrVqDB06lLlz5zJixAi6devmnJLUYrHw5ptvunT/GTRoENOnT+epp56iY8eOJCYmsnjxYqKjo9m7d+81nTdA9erV8fLy4vvvv8fd3R0fHx8CAwOdg7GvZO/evYwdOxZd1+nbty8bNmwokCZ/VqOQkJBCW1yys7MBaNiw4VW3yAghKh6zQWHLozoL/4W1J6BDVbi3AUzeAlO2uJF54XABRWFZ9UjqnBt7luZuJiLz8n37fRwwo0tLZnRpSUBGJj9NnkulVIVkozeVH6gMH3SV0QGi3NKkoaBIJCi4gcLCwnjttdeYM2cO7733Hna73bl42aX4+PgwdepUJk+ezIIFC9A0jbp16/LJJ5+wZMmSaw4K3N3due+++9iyZQtbtmzBYrEQHBxMhw4dGD58OCEhIUXKr2PHjnzxxRfMnj2bJUuWYLFYCAwMpGnTpi4zGz311FNERUWxaNEipk6d6lyI7a233iowteqwYcPIzMxk+fLlbN++nerVq/Pqq6+yb9++6woK3N3defvtt5k+fToTJkzAarXSrFmzqw4Kjhw5Qm5u3tfkhAkTCk1zI6c6FUJUbAZV4b5GcF+j89uebZ33A+DQde6da+PfGGiSmkHnwyf4JNiXA8E+1E7KwJjf0Kzr5wc4n9P88BmqH44l10tl8KadBKdasbkpVL/TH/Wd22/OCQohygRFLy2jGoUQpUpCQsaVE5Ugo1ElIMCLlJQsGahXSsg1KT6xuzJov9TMfafj0RwOIuLTmN+xIUHZVuolZOCfmYWbzUZ8YMD5F+k6NY7FY3MzMGjNejwDDfjP7QaNwsC95CaaEHKvAISE+Fw50XXq98jlpyv/6cuoYi9DWSKrZgghhBClXFgDb+pbMolMTKZmUgo+uVaG/vIPig4oCjajkaCMLKrHncUvMwvPnFzQdTQPA/es34Ie4ov/vuHQMkoCAlFhOBTlsj/ClXQfqsDS0tKw2S4x7cU57u7uBabhLKsSExOvmMbb27vQqWOFEKIkqQaFZ+71YclUX1okpKC7KdQ9lkjckRiy/XzJ8nBnX1RlPHOtBCWlUf14IuEpKUSn5X3uBT5+6W6sQggBEhRUaM8//zw7duy4bJo+ffowfvz4m1OgYtajR48rpnn99dfp27fvTSiNEEIUTdfGZj6uFEx0WiYBVhsxNYKplZxKWq6Vs/6+2FUDnrm5BGRkUS8mlkBbFtkmI3pVlTrj25KQcPUz4wlRHjikMaBIJCiowJ599tkrTp9a1AHJpdm0adOumKaw1ZiFEKK0MLopnAoPxe/E6bz+v4qCnyUbP0u2M41iVAiyZeX9u04AR8Z70rTw7IQQwkmCggqsXr16JV2Em6pVq1YlXQQhhLguvTu4c2hJDvF+PoSnFZwMQFMUqp5Ndv7uP6wWcH0LQgohKgYZaCyEEEKUEaM6mvAPNZLk51dgoKQOZJrNNDp2Cl0B08CamO6tVTIFFaIUcKBc9ke4kqBACCGEKEOef9qPprVV4v18nH2mdeBMoD8nKoey9oUeBOwcgs+nt6MY5WteCHF1pPuQEEIIUYa4u6sMGR3CgrHJ7DUHg6KQYzZhNxhwc4M+T0WimqUWVAhNph0tEqlCEEIIIcqgez+uQ/vOXrh7KJjcVJo0c+PNt4IwS0AghLgG0lIghBBClFHd7g2m270lXQohSieZkrRopKVACCGEEEKICk6CAiGEEEIIISo46T4khBBCCCHKHU2mHS0SaSkQQgghhBCigpOWAiGEEEIIUe5o0lBQJNJSIIQQQgghRAUnLQVCCCFEGbc6RuWL/UZyNBgcrXFPtFbSRRJClDESFAghhBBl2MY4lcG/mdHPDapcd8ZAtt3Kg3UkMBAVm0NWNC4S6T4khBBClGHjtxmdAUG+lzebsDtKqEBCiDJJggIhhBCiDMq0wZQ9Rv5OKvhVbtUVvjpgKIFSCVF6aIpy2R/hSoICIYQQogwa8KuZN7eb4BJzsU/aJT2EhRBXTz4xhBBCiDJme4LC34mXbwk4m6Ow9ISRoJtUJiFKG3tJF6CMkZYCIYQQooyZufdq6vQUHvvLnVTNrdjLI4Qo+yQoEEIIIcoQiw1+OH614wUUVqZVK87iCCHKCek+JIQQQpQh9/xq5lLjCAqz2yIdiETFJIOJi0ZaCoQQQogyZGti0b66T9l8i6kkQojyRIICUWb07duXkSNHlnQximT8+PG0aNGipIshhKjALJhKughClAi7cvkf4UqCAiGEEKKM2JkIRek6lEfh9xOykpkQ4vIkKBCiGL3yyiusX7++pIshhCjjHDq8sNFEt2Xu1/Bqhd6LHWTabnixhBDliAQFQhQjo9GIm5tMByiEuHZZNrh9iZmvDhopeitBnlwHdFvqzpaz8rUvKg47ymV/hCv5dBClTlxcHC+99BIdO3akY8eOPPvss5w+fbrQtL/++ivPPvssvXv3pk2bNnTp0oWxY8dy6NAhl3T33XcfvXv3xuEo2IT+22+/0aJFC37++ecilfPnn3/mwQcfpFOnTrRv354777yTV155hZSUFGeawsYU5G/LzMzk3XffpVu3brRt25aHH36YPXv2FKkMQojy67vDKtW+dqf6N+7sS7vaKUgv7UiGSp8Vbjy3QSYeFEIUJEGBKFUyMjIYOXIkq1evplevXjz55JO4u7vz2GOPkZ2dXSD9woULUVWV/v378+KLL9K/f3/++ecfHnnkEU6ePOlMd9dddxEfH8/mzZsL5LFkyRK8vb3p2rXrVZdz2bJljB8/Hjc3N0aNGsXYsWPp2bMnJ06cIDk5+aryePLJJzl79iyPPvooDz30EEeOHOHpp58mKyvrqsshhCif/k5QeGq9GYtd4VpbBy5l/iETPx69/iBDiNLOplz+R7iS6gJRqsydO5fY2Fhee+01+vXrB8A999zDxx9/zLffflsg/ZQpU/Dw8HDZ1rt3b4YMGcI333zDSy+9BECvXr2YPHkyS5YsoU2bNs60cXFxbN68mbvvvht396vvq7tmzRq8vLyYPn06RuP522jUqFFXnUfdunWd5QOoUaMGL730EitXrmTAgAFXnU9xUVUFVS29n5oGg+ryf1Hy5JrcOK9vN3Gjg4ELzT1k5J7aerHlLy5P7hVRGklQIEqVNWvWEBQURO/evV22Dxs2rNCgID8g0HWdrKws7HY7AQEBVK1a1aUrjo+PD926deOXX34hNTUVf39/AJYuXYrD4eDOO+8sUjm9vb3Jycnhr7/+omPHjijXsEDKkCFDXH7P72Z06tSpIudVHAIDva7pvG42X1+PKycSN5Vck+tnNNqLNX+TyUBAgLlYjyGuTO6V4mUrA99hpYkEBaJUiYmJoX79+hgMrk3bwcHB+Pj4FEi/f/9+PvvsM7Zv316ge1FERITL7/379+fnn39m+fLlDBkyBF3XWbp0KbVr16ZevXpFKufw4cPZsWMH48aNw8/Pj2bNmtGuXTu6deuGl5fXVeVxcfnyA5W0tLQilaW4JCdnlfqWAl9fD9LTs9E0mW6xNJBrcuOMbw5dY4q2cnFRPFDTSkqKXKOSIvcKBARc3XeluHkkKBBlVlxcHCNHjsTLy4tHHnmEatWq4e7ujqIofPzxxwWChFtuuYXo6GiWLFnCkCFD2LJlC7GxsbzwwgtFPnaVKlVYtGgRW7ZsYevWrezYsYO33nqLGTNmMHPmTCIjI6+Yx8WBTz5dLx1N+g6HjsNROspyOZrmwG6vmF+qpZVck+vXOAAmt7Py0mYzFmejwfUGCDqRXjpvtLDRt4oDe/E2RoirIPeKKE0kKBClSkREBKdOnULTNJeH5sTERDIyMlzSrl69GovFwoQJEwrM8JOWlobZXLBpvH///nz00Ufs2bOHJUuW4ObmRs+ePa+prGazmfbt29O+fXsA/vrrL5555hm+/vprXnzxxWvKUwgh8g2u6WBwzRwAzljg1sXu5DquPTB4rbmNJxtqN6p4QpR6sjRH0cgIF1GqdOzYkaSkJJYtW+ayfc6cOQXSqmren+/FNes//vgjSUlJhebfq1cv3NzcmDdvHmvWrKFz586Fdku6ktTU1ALb6tatC5Se7j9CiPIj3BP23puDh+HaWu/ahcPj9aVpQAhxadJSIEqVBx98kJUrV/L222+zb98+oqOj2b59O7t27XL2uc/Xrl07pkyZwmuvvcagQYPw8fFh586dbNiwgcjISDStYI2Yr68vnTt3ZsWKFQBFHmCcb/To0fj4+NC0aVNCQ0PJyMhg6dKlKIpCr169rilPIYS4HB8zbBuQQ4OF7hStK5GDv+43k5BQXCUTonSyyEDjIpGWAlGq+Pr68sUXX9CxY0eWL1/OlClTyMnJYcaMGQWmHo2MjGTy5MlUrlyZ2bNnM3XqVNLT05kxYwaVKlW65DHuvvtuAKKiomjevPk1lXPgwIGoqsoPP/zAe++9x/z58wkLC2P69OnO7kRCCHGjBV7DAukqpX9skBCi5Cl6aRnVKMRNsmfPHh566CFGjx7N8OHDS7o4pVZCQsaVE5Ugo1ElIMCLlJQsGahXSsg1uTlC57ijF6GlwB0r2eM8SUhIpzjXPhBXT+4VCAkpetfdovJ/uvCuxPlSPwkq9jKUJdJSICqchQsXYjQa6du3b0kXRQghimxoraKNDYgypRdTSYQo3bKVy/8IVzKmQFQI2dnZ/Pnnnxw9epQVK1bQv39/goODC6RLTEy8Yl7e3t5FWv1YCCFupA/b2PktxkCs5erq9Rp7JAJhxVsoIUSZJ0GBqBBSUlL4v//7Pzw9PenSpQtPPfVUoel69Ohxxbxef/11aWUQQpQYRYFP2lm5Z9XVVE7odPY9BTQs7mIJUepYpbtckUhQICqEypUrs23btiummzZt2hXTREdH34giCSHENbstXCfc08GZy7YW6ExsnUNovOWmlUsIUXZJUCDEBVq1alXSRRBCiCtSFfiph5Uhv5k5lF54YBDlpXNvtJ0N8Te5cEKIMkkGGgshhBBlUFUfnfX9c4n0LHyV4qG1ZbEyUcEpV/gRLiQoEEIIIcqwCe0KPvyHejh4vEHhwYIQQhRGggIhhBCiDOtU2cF7rayEuOkY0ekZZWdj/1zcDCVdMiFKmKJc/ke4kDEFQgghRBn3cF2Nh+tKy4AQ4tpJS4EQQgghhBAVnAQFQgghhBBCVHASFAghhBBCCFHByZgCIYQQQghR/shg4iKRlgIhhBBCCCEqOGkpEEIIIYQQ5Y80FBSJtBQIIYQQQghRwUlQIIQQQpQTX+4zUPMbNyrPdee+30xk2Uq6REKIskKCAiGEEKIcWHjEwKsbVdJtKnZdYfuhHB6am1nSxRKiBClX+BEXkqBACCGEKAfe/8uO3XB+qGCqpzeex+M5kuJZgqUSQpQVEhQIIYQQZVxsJsTZTQW2r63ZgMMr9BIokRClgDQUFIkEBUIIIUQZ939bTdiMBYOCd5d/w8Bdm/nu7b9KoFRCiLJEpiQVQgghyri1pxQMdjua0Qi6jpvdxsNbV/P0X8sx6Dq7pqaij2gsazmJikX+3otEggIhhBCiDNufAg+sW0V4Ziodju5la1RNmsUco1ZSHImePoRmpdMw7jQnM6x4+bqVdHGFEKWUBAVCCCFEGTZzbRazlszGiM6jAx7jg+XzCczOcu7PMRhRANUkPYaFEJcmnxBCCCFEGaPr8OkeA/W+NvG/eE96P/of/tegBbqCS0AA4KbZ+fqWtry8w72ESitESZGRxkUhQYEQQghRxrywycT47WaS7EYy3D35tU4T7n5wHFZDwQ4ACnD33m3E/HLo5hdUCFFmSFAgypQWLVowfvz4Ejv+0qVLadGiBdu2bbuq9CNHjqRv377FXCohREUSb4E5BwwFttdMiiPGN4CjgZUK7PPPsfC/2R/AicSbUUQhSgdpKCgSCQqEEEKIMmLXSSu/DltIkCUDr9wcAAyaxnfzJ3Lwg2f47Yu3WVOjHpujogu81i83m+CWY/F874ebXWwhRBkgA42FKEbTpk1D12XhICHEddJ13OatpeH4xVQ3uVElKYF3u/RnR2Q09eNO8XXT21hZpwnPrlvGw9vW8k9YlQJZWFUDZoeG54QlcCYZ66D2OKoE44gKLoETEkKUNhIUiAovKysLLy+vYsnbZCq4mJAQQlxJvAXe3GHkYLKKl2rnvq+/46h7ABl33EvLU4cZec/jzrS7I6qxO6IaAIsat+HZtUt5c9Uil/x0wOzQgLxeE17frsPr23UA2KuGkP1gJ7TocLR6kTiqh96MUxTiJpA+QkUhQYFwERsby8SJE9myZQsAzZs3Z+zYsYwaNYrw8HA+//xzl/SbN29m7ty5/Pvvv1itVqpUqcLAgQMZOHCgS7q+ffsSHh7Oyy+/zMSJE/n7779RFIVWrVrxwgsvEBzsWlN15MgRJk2axN9//43ZbKZt27Y899xzlyz3r7/+yoIFCzh06BCaplGzZk2GDh1K165dXdK1aNGCPn360KtXL2bMmMHBgwepV69egfO6Ek3TmDFjBkuXLiUpKYmqVasyfPhw7rjjDpd0I0eO5MyZMyxdurTAtlmzZjFx4kQ2btyI1WqladOmPP/881StWrVIZRFClB3pVpi5z8ieZJVbKzkYXteOuwFMG/Zjnr+Wz801+aBuB854+AAKbY/tZ8H8iUSkp5BtNDFywEhGDhx1yfyz3NxJ8fLBoSgcCKlMeFoy/rnZl300Mp5IwOfN80GEroAjPJCs5+/C2q0Jnp//guFoPNaODcl5oCMYpOexEOWRBAXCKTU1lREjRpCUlMSAAQOoXr06f//9N6NGjSI7O7tA+h9++IF3332XRo0a8fDDD+Ph4cHmzZt57733iImJ4emnn3ZJn5CQwGOPPUanTp146qmnOHToED/88ANZWVlMmzbNmS4mJoYRI0ZgtVoZNGgQoaGhrFu3jjFjxhRa7k8//ZRZs2bRtm1bRo0ahaqqrF69mpdeeokXXniBQYMGuaTfu3cvf/zxB3fddRd9+vS5pvdqypQpZGdnO4OfpUuX8n//939YrdarGlicnZ3NiBEjaNSoEaNHjyYmJobvvvuOsWPHsmDBAgyGgoMIhRBlm67DPb+68XdS3kP1spMGNsarfKdtwfeBScxrdhvPDj7/maQ4HMz9bhoR6SkAxPn4802z27jSssQJXr7UfuETjgSH4Waz8vIfP/Lab4uvupyKDobYZHyfnYXD3ws1NW+KU7eft2H89ySZHwwr6qkLUTKkoaBIJCgQTnPmzCE+Pp4333yTnj17AjBw4EA++eQT5s2b55I2MTGRjz76iO7du/P22287t99zzz189NFHfP311wwYMIDIyEjnvlOnTvHuu+/SrVs35zZVVVm0aBHHjx+nWrVqQN5Dfnp6Op999hktWrQAYNCgQTz//PMcOHDApRz79+9n1qxZDB8+nNGjRzu3Dx48mLFjxzJt2jR69+7t0j3o6NGjTJs2jVatWl3ze5Wamsp3332Ht7e3830aPHgwEydOpFu3bri7X34+8NTUVIYOHcqwYee/XAMCApg8eTJbtmyhTZs211y2G0VVFVS19H6iGs7VVhqk1rLUkGtyeRvOKM6AIN/KUwaUn1ah6DoTOrhWUoRnpBKdHH/+9dXq4FAv/94aNY0/ohuQ6OMHQK7JzOt33MuLq5fgptmLXOb8gCCf+9dryRk/GHw9ipyXOE/uFVEaSVAgnNatW0dwcHCBLjBDhw4tEBT89ttvWK1W7rzzTlJTU1323XbbbXz33Xds2bLFJSgICQlxCQggrzvPokWLOHXqFNWqVcPhcLBu3Trq16/vDAgAFEXhwQcfZM2aNS6vX7FiBYqi0Lt37wLl6NChA2vXrmX37t20bt3aub127drXFRBAXhCQHxAAeHt7M2DAAKZNm8b27dtp167dZV+vqiqDBw922dayZUsATp48WSqCgsBAL5Qr1EiWBr7ycFLqyDUpnDHVATgKbDfk5j2sZxvNLtvPevsS5+1HWGYaAI3PnCj4Wk3j/h3rOFCpMoGWTA4FhXK4UkSBdKf8gqh5QYBxrRS7gwBvNwgonnFYFY3cK8Ws9H+FlSoSFAin2NhYGjRogHpRTVRgYCA+Pj4u244fPw7AE088ccn8kpOTXX6PiCj4ReXnl1eblZaW5nyNxWIptF99jRo1Cmw7duwYuq4XGMNwoaSkJJffq1QpOCtHUeW3alyoevXqQF73pysJCQnBzc3NZdvF70VJS07OKvUtBb6+HqSnZ6NpBR+0xM0n1+TymvhApJeZ01nn76umwQ4Y0g627OehbWt4udcQ5z67wciYux5m/rdTcNPsNIo7xciNv/J5m+4AGDU7n3//OQN2bWJF3SY8PmAkKZ7eef2ULgroT19jUOAwG1Gt51sYrD2akqWqkJJ1mVeJK5F7BQIksCx1JCgQ1yR/ms033nijwCDhfBcHARcHG4Xldy0URWHy5MmXzD862nW+7it17bkZiuu9uJEcDh2Ho3SU5XI0zYHdXjG/VEsruSaFU4HF3XN5728je1JUWoY4+E8zGxaPDjisdp6e9yfJmwL4ovFtpHp6gQ6LG7Xiz6q16Xj8AEeCQvls8Uye/msF/4ZF0e74ASqnpzC9dTeeGDDi/IEuCgj6795Mh+P7Llu2Ane6m4nswe3Jub8jXhOWnBto3ADLSwPQ5dreMHKviNJEggLhFB4ezqlTp3A4HC4PrcnJyWRkZLikjYqKAsDf3/+6u+JcKCAgAE9PT06cKNhMfvTo0QLboqKi2LBhA2FhYc6a+pshv6XkQseOHQMKbxERQgiA6r46MzraCmzPeagzPNSZF4AX8rZwOlNhU7yK44ydeXoEu30q81zfB/nm28ncs2sTAMcDQph0W89Cj1Ul+SzhaSl8vHQu6mUqG+yRQaSsfw88zIXuT5/7TNFOUohSo/S2dpdGMsJFOHXo0IHExER++eUXl+0XjycA6NatG2azmRkzZpCTk1Ngf2ZmJlartchlMBgMtG/fnr1797Jt2zbndl3XmTt3boH0vXr1AvIWCdM0rcD+i7sO3Sjff/89mZmZzt8zMzNZvHgxPj4+NG/evFiOKYSoWCK9dQZGawxq78vSZyrxbDMHMX4BtH/8DUb1f4Rhg56g7rgJHKwUWejrrUYTb//yHb/ValhgX06PpqRPeZTUhc+Tsu2jSwYEQoiKQ1oKhNOwYcNYuXIlb7zxBv/++y/VqlXj77//ZteuXfj7+7sMOg0NDeWll17irbfe4p577qFXr16Eh4eTkpLC4cOHWbNmDYsWLaJy5cpFLscTTzzBhg0beOaZZ7j33nupVKkS69atIyUlpUDaBg0aMHLkSD7//HOGDBlC165dCQkJITExkX379rF+/Xo2bdp0Xe9LYfz9/Rk2bJhz+tGlS5cSFxfHK6+8Uiq6Jwkhyp9xTR14mYNYvCSGT3/8klovTSbXfG5s0kXjCAyaRpxvABuq1ub+v/9ifdXatDx9BLOmkdO3JRlfPllCZyHETSQNBUUiQYFw8vf354svvmDSpEn89NNPKIpC8+bN+eyzz3jwwQcLDIzt168fVapUYf78+fzwww9kZGTg7+9P1apVefzxxwkKCrqmckRGRvLFF18wceJEFixY4Fy87L///S/du3cvkH7kyJHUr1+f7777jm+//Zbs7GwCAwOJjo5m3Lhx11SGKxkzZgz//PMPixYtIjk5mSpVqvDWW2/Ro0ePYjmeEEIAPN5Ao0tEOPv/V52zXnmTE/hmZ5Hu4TpoUzu31snU9j2plpLAS72G8N6yb+g7tgW2O5re9HILIUo/RS8toxpFqZWamkrXrl25++67efnll0u6OOImSUjIuHKiEmQ0qgQEeJGSkiUD9UoJuSY3j/V0Cv/58DDzmnWgy8Fd/F678SXTmux2ohPP0OL0ESZMuXFjwMS1k3sFQkJ8rpzoOikvZ152v/6O92X3VzQypkC4KGx8wJw5cwBu6IBiIYQQ184cGcB/xzekb9x+zHYrHY7svWTaLod2E2zJoLl/wQHOQpRrinL5H+FCug8JF08//TTh4eHUrVsXh8PB1q1bWbduHY0bN6ZTp04lXbxiYbPZrmptgICAAAznmuSFEKKkeQV48OWLVRk2MYY3v51DvG8Ar9xxLwcvWLxMdTj4aNk8dodF0bFbeAmWVghR2klQIFzcdtttLFu2jNWrV5Obm0toaCgPPPAAI0aMKLcPxDt37mTUqFFXTPfTTz9d08BpIYQoTlOrnGFg32FEpyRw7z8b2BFZgxV1mxKVmsi7K76ldkIs1ZPPsv/1/yOqpAsrhCi1JCgQLh544AEeeOCBki7GTVW7dm2mTZt2xXTXOnBaCCGKk0/fJtyydjtfNe/EqA2/8vPs99FxnXgl1wAR7QquFC+EEPkkKBAVnq+vr4yXEEKUXWYj9YfeAnshwdsXcA0IdODs9DH4SBdqUdHI33yRyEBjIYQQoowb2twdHA5+qt+Cf8JdWwR2V69KjUfalVDJhBBlhbQUCCGEEGWcQYUosjhl9OG2J/7LQ9vWUDMpjl9rNuLx6nu49ISlQgiRR1oKhBBCiHLgyTZueOVkk+nuwdT2PXnmzuH4oJHbIKCkiyZECVGu8CMuJC0FQgghRDnwUB2NvYkqu/48htlmo4EjjWfG1eTg/riSLpoQogyQoEAIIYQoBxQFPmzvIP3WMCx2CPOMwm63c7CkCyZESZHGgCKRoEAIIYQoR3zNeT9CCFEUMqZACCGEEEKICk5aCoQQQgghRPkj3YeKRFoKhBBCCCGEqOCkpUAIIYQQQpRD0lRQFNJSIIQQQgghRAUnLQVCCCFEObY1K4zvf9YwO0w8WlejboBe0kUS4uaQhoIikaBACCGEKKdm7Tfx/tlWcFYHTHx7yMifd+YS7SeBgRDClXQfEkIIIcqhAykKr2x3c9lm0xVe2CT1gUKIgiQoEEIIIcoZhw7dl7lRWP+Jv+IMN79AQohST4ICIYQQopz5I0YlWyu8Q7WOwryD8vUvhHAlnwpCCCFEOfPryct/vY/daMbmuEmFEaKkKFf4ES4kKBBCCCHKmTOWK6VQ+HyvPAIIIc6TTwQhhBCiHDmUpvBLzJUHE88/KAOOhRDnySeCEEIIUY489ZeJq+kbccYi/SdEOafI33hRSEuBEEIIUU7EZcH2xKv7ardoCunWYi6QEKLMkKBAlEp9+/Zl5MiRJV0MIYQoU25bUvg0pIVTWHBYpicVQuSRoEAIIYQoBw6kKqTZiva1Pn6bibTcYiqQEKJMkaBACCGEKAde2lT0Wn+brlDvOzfOZhdDgYQQZYoEBUIIIUQZtvyESsf/mVgfb7qm19tRabjQnSm7pSuRKGdknYIikdmHRImKi4tj0qRJbNy4EYBmzZoxduzYQtP++uuvrFixgoMHD5KcnIynpydNmjRh1KhR1KpVy5nuvvvuIz09naVLl6KqrnHvb7/9xksvvcT48ePp06dPkcr6+++/s2DBAg4ePIjNZiM0NJQ2bdrwzDPPYDLlfRlnZ2fz5ZdfsmrVKs6ePYuvry+tWrXi8ccfJzw83JmXw+Hgu+++46effiI2NhZFUQgKCqJJkya8/PLLGI1yawohCncqU+HrQwZSrQpfH1TJddyI+j2FN3eYWX5S47tuVvzMNyBLIUSZIk8eosRkZGQwcuRI4uPjufvuu6lRowY7duzgscceIze3YCfXhQsX4ufnR//+/QkODub06dP8+OOPPPLII8yfP58qVaoAcNddd/Hhhx+yefNm2rRp45LHkiVL8Pb2pmvXrkUq67Rp05g9ezY1atRgyJAhzuP/8ccfjBo1CpPJhN1u58knn2Tnzp106dKFBx54gJMnT7J48WI2b97M3LlzCQ0NBWDWrFl89tln3HbbbQwYMABVVYmNjeXPP//EarVKUCCEKNSJDIXuy9xIyS2eas7tiQbuWObGmn65uEvDgSjzpDmgKOTJQ5SYuXPnEhsby2uvvUa/fv0AuOeee/j444/59ttvC6SfMmUKHh4eLtt69+7NkCFD+Oabb3jppZcA6NWrF5MnT2bJkiUuQUFcXBybN2/m7rvvxt3d/arLuWfPHmbPnk2LFi345JNPcHNzc+4bM2aM899Lly5l586dDB06lKefftq5vVWrVjzzzDNMnTqVN998E4DVq1dTvXp1Jk6c6HKsC/MraaqqoKql9wPVYFBd/i9KnlyT4jfnkKHYAoJ8R9NVfjltZEC0o1iPU5HJvSJKIwkKRIlZs2YNQUFB9O7d22X7sGHDCg0K8gMCXdfJysrCbrcTEBBA1apV2bNnjzOdj48P3bp145dffiE1NRV/f38g76Hd4XBw5513FqmcK1euBODJJ590CQgAlAsWRlm9ejWqqjJ8+HCXNO3bt6d27dr8+eefOBwOVFXF29ub/fv3888//9CkSZMiledmCQz0cjm/0srX1+PKicRNJdek+Fh0DdCL/Tg5qhsBAfLAWtzkXilmpf8rrFSRoECUmJiYGOrXr4/B4NpGHRwcjI+PT4H0+/fv57PPPmP79u1kZ7tOlREREeHye//+/fn5559Zvnw5Q4YMQdd1li5dSu3atalXr16Rynny5EkURXEZt1CY2NhYQkJC8PX1LbAvOjqagwcPkpqaSmBgIKNHj2bcuHE8+uijhISE0Lx5c9q3b0+XLl2c4xNKWnJyVqlvKfD19SA9PRtNkxrN0kCuSfHrFaEwa0/xdvg3qzodQ7JJSSnWw1Rocq9AQIBXSRdBXESCAlEmxMXFMXLkSLy8vHjkkUeoVq0a7u7uKIrCxx9/XCBIuOWWW4iOjmbJkiUMGTKELVu2EBsbywsvvHBNx1cU5YbWmjdu3Jj//e9/bNy4kW3btrF9+3ZWrlzJl19+yRdffIGfn98NO9a1cjh0HI7ir5G8XprmwG6vmF+qpZVck+LTIQwmtbUy7V8jyTkKmTbIdcCNqRLVCffQmXKbjTB3B3b7DchSXJbcK6I0kaBAlJiIiAhOnTqFpmkurQWJiYlkZGS4pF29ejUWi4UJEybQokULl31paWmYzQVrzvr3789HH33Enj17WLJkCW5ubvTs2bPI5axatSobNmzg4MGDNGzY8LLns3HjRjIyMgq0dBw9ehQvLy9nVyYAT09PunTpQpcuXQBYtGgR77//PkuWLOHBBx8scjmFEBXDkFoaQ2ppLttm/Gvg1W0mrjU4CHHT+F9PG7X8Sn9FgBCieEiHQVFiOnbsSFJSEsuWLXPZPmfOnAJp86cW1XXXL6wff/yRpKSkQvPv1asXbm5uzJs3jzVr1tC5c+dCuyVdyR133AHAp59+is1mK7A/v0ydOnXC4XDw1Vdfuexfv349Bw4coEOHDs7zSE1NLZBP3bp1AUhPTy9yGYUQFdtjDTSqel1bjXOQ2cGOe6wSEAhRwUlLgSgxDz74ICtXruTtt99m3759REdHs337dnbt2uVSow7Qrl07pkyZwmuvvcagQYPw8fFh586dbNiwgcjISDRNK5C/r68vnTt3ZsWKFQBFHmCcr2HDhgwbNow5c+Zw//330717d4KCgoiNjeX3339nzpw5+Pj40LdvX37++WfmzJlDbGwszZo149SpU3z//fcEBQUxevRoZ54DBw6kUaNGNGjQgJCQEBITE/nxxx8xmUx07979msophKjYnmpkZ2wRVzV2Ux3sHJSLWaYfFeVR6R0WVyop+sVVr0LcRHFxcUyYMIHNmzcD5xcvy1/s6/PPP3em3bFjB9OmTePQoUOoqsott9zCmDFj+OCDDzhz5gxLly4tkP/ff//NiBEjiIqK4ocffriucQErV65k4cKFHD58GIfDQWhoKG3btuWpp54qdPGy+Ph4fHx8aN26NU888YTL4mVfffUV69ev5/jx42RmZhIYGEjDhg0ZPny4s8WgpCUkZFw5UQkyGlUCArxIScmSPrmlhFyTkpWrQY2v3bHpV/8592ozK2MaFaxUEcVL7hUICSl6y31RKW8VXPPoQvorbpfdX9FIUCDKtT179vDQQw8xevToAlOFisuToEAUlVyTkncgVeG2JW5cXRWpztlhOcVdJFEIuVckKCiNZEyBKNcWLlyI0Wikb9++JV0UIYQodnX8dZ5rVHDsU2GCzFInKIQ4T8YUiHInOzubP//8k6NHj7JixQr69+9PcHBwgXSJiYlXzMvb27tIqx8LIURJe6GpxlcHHCRbL1/v5+8uQYEQ4jwJCkS5k5KSwv/93/85p/x86qmnCk3Xo0ePK+b1+uuvSyuDEKJMURVoH6bx08nLBwUDqstYAlHO3cD1hSoCCQpEuVO5cmW2bdt2xXTTpk27Ypro6OgbUSQhhLipGgfr/HTycil0HqsvQYEQ4jwJCkSF1apVq5IughBCFIu7qjt4a4dO4QOOdT7vYMWn4JqPQpQv0lBQJDLQWAghhChnqnjrNPAvfFYbA3lBgxBCXEiCAiGEEKIc+rmXFSg4mLhpsAQEQoiCJCgQQgghyiEvE//f3p2HRVX2fQD/ghuyg2AYLig2A8i+iWAUyKIpD4sXpCLai6WFWrmUtD/6eImKaYJWZgmm8hSxhJYJoSaJIhApZWSlQoI7JMMq6Jz3j17mdZxBlpRB5vu5Lq6r+c095/zOOXPs/Oa+73MwefgthfhLdooxIiIWBURERH1UomczvHQq0V8DMBgo4N+urQgcyZ4CIlLEicZERER9lM4AYMnQHxAaNgrV1+vAmZekVvh17xL2FBAREfVxmrxfOxF1gEUBEREREZGa4/AhIiIiIuqD2EPWFewpICIiIiJSc+wpICIiIqK+hx0FXcKeAiIiIiIiNceigIiIiIhIzbEoICIiIiJScywKiIiIiIjUHCcaExEREVHfw4nGXcKeAiIiIiIiNceigIiIiIhIzbEoICIiIiJScywKiIiIiIjUHCcaExEREVHfw4nGXcKeAiIiIiIiNceigIiIiIhIzbEoICIiIiL6P4mJiXByclJ1Gj2OcwqIiIiIqO/R4KSCrmBPARERERGRmmNRQERERETUSWfOnMG8efPg6OgIFxcXvPjii7h48aLs/ddffx2zZs2Sva6pqYGVlRWmT58uizU0NGDcuHH45ptvejT3e2FRQERERER9j0YHf91w6dIlzJ49G3/99Rfi4+OxcuVKnD59GrNnz0Z9fT0AwM3NDT/99BNu3rwJACguLsbAgQNRVlYma/Pjjz/i1q1bcHNz+2fbeB9xTgERKWVsrKPqFDpFX3+wqlOgu/CY9B6CIGDy5MkAAGNjXRVnQ3fjufLwSU5Oxq1bt7Bjxw4YGhoCAKytrTF16lRkZmYiKioKrq6uaGlpwalTp+Du7o6ioiL4+/vj6NGjKCkpgbe3N4qKimBhYQETExPVbtAdWBQQkVL9+vXujsTLly8DAMzMzFScCbXhMemdrl+vQ11dHY9LL8JzpWcIy+//ZW5xcTHGjx8vKwgAwNLSElZWVvjhhx8QFRWFESNGwMzMDEVFRXB3d0dxcTFmzJiB5uZmFBUVwdvbG8XFxb2qlwBgUUBED6kFCxYAALKyslScCbXhMemdeFx6Hx6Th5dEIoG1tbVCfMiQIaitrZW9dnNzQ3FxMerr6/Hrr7/C1dUVTU1NOHDgAFpaWlBaWorw8PCeTL1DvfunQCIiIiKiXsLAwADV1dUK8erqahgYGMheu7m54eTJkzhx4gSMjIxgaWkJV1dX/PzzzygoKEBLSwtcXV17MvUOsSggIiIiIuoEFxcXFBQUyPUKnDt3DmfOnIGLi4ss5urqisbGRiQnJ8su/q2trTFo0CBs374dw4YNw/Dhw3s8/3vh8CEiIiIiojvcvn0bBw4cUIjPmTMHGRkZiI6OxgsvvICbN2/ivffew7BhwxAaGiprZ2lpiSFDhqCwsBBvvvkmAKBfv35wdnZGXl4egoKCemxbOotFARERERHRHW7evImXXnpJIb5+/Xrs2rUL69evx/Lly6GpqQkvLy/ExsZCV1f+Dl+urq7Izs6Wm1Ds5uaGvLy8XjfJGGBRQEREREQks3jxYixevPiebXbs2NHhchISEhRi8+fPx/z587ud24PEOQVERERERGpOQxAEQdVJEBERERGR6rCngIiIiIhIzbEoICIiIiJScywKiIiIiIjUHIsCIiIiIiI1x1uSEtFDp6CgAPv27cPPP/+MqqoqhIeHY8WKFQrtWltb8f7772P//v1oaGiAvb09Xn31VVhYWPR80mro3//+N7766iuFeEJCAjw9PVWQkXopLy/H+vXrUVpaCh0dHTz11FOIiYnBgAEDVJ2a2tq3bx9WrlypEJ87d26Ht8AketBYFBDRQ+f48eP4/fff4ezsDIlE0m67+Ph45OTkYMmSJRg6dCh27NiBmJgYpKamKjxkhh4Mc3NzrF69Wi42evRoFWWjPiQSCZ5//nmMHDkS8fHxuHr1KjZt2oTm5malBTT1rMTERLl/g0xNTVWYDdHfWBQQ0UPnpZdewpIlSwAAxcXFSttcuXIFWVlZWLFiBYKDgwEANjY2mDZtGtLT0zF37twey1edDRo0CHZ2dqpOQ+2kp6ejoaEB8fHxMDAwAADcvn0b69atQ3R0NC9CVcza2hqGhoaqToNIDucUENFDR1Oz43+6CgoKIJVK4efnJ4sZGBjAw8MD+fn5DzI9IpU7duwY3N3dZQUBAPj7+0MqlaKgoECFmRFRb8WigIj6pPLychgbG0NfX18ubmFhgYqKChVlpX4qKyvxxBNPwMPDA7Nnz8Z3332n6pTUQnl5ucLcGT09PZiYmKC8vFwlOdH/i4iIgLu7O4KDg5GUlITbt2+rOiUiDh8ior6prq5O6bwBfX191NbWqiAj9SMWi2FjY4MxY8agvr4eaWlpWL58OdauXSvXg0P3n0QigZ6enkJcT0/vnvNw6MEyMTHBggULYGtrCw0NDRw5cgQffPABrl69yrkepHIsCohI5err63H9+vUO25mbm/POKSrU1eM0c+ZMubi3tzeio6Oxbds2FgWkliZMmIAJEybIXnt4eEBLSwspKSmYN28eTExMVJgdqTsWBUSkcrm5uQp3qFEmLS2t07cT1dPTQ319vUJcIpHIjbOmzvunx0lTUxO+vr5ISEhAc3MztLS0HkCWBPzdI6bs+19XV6cwpI5Uy8/PD7t27cKZM2dYFJBKsSggIpULCQlBSEjIfV2mhYUFampqIJFI5C6CysvLMWrUqPu6LnXxII4TPRgWFhYKcwfaenr4nA4iUoYTjYmoT/Lw8ICmpiYOHToki0kkEpw4cQJeXl4qzEx9SaVS5ObmYsyYMewleMA8PT1RWFiIuro6WSw3Nxeamprw8PBQYWZ0t5ycHPTr1w9isVjVqZCaY08BET10Ll26hNOnTwMAmpubUVVVhdzcXACQjVV/5JFHEBwcjM2bN0NTU1P28DJdXV1Mnz5dZbmri0uXLuGdd95BYGAgRowYAYlEgvT0dJSVlWH9+vWqTq/Pmz59Oj7//HMsW7YM0dHRuHr1KjZv3oywsDA+o0CFFi1aBFdXV4wdOxYAkJeXh8zMTMyYMYNDh0jlNARBEFSdBBFRV+zbtw8rV65U+t6dDzNraWnB+++/j/3796OhoQEODg549dVXOXyiB9TW1mLlypU4c+YMampqMGDAAFhbW+OZZ56Rm2hJD8758+cRHx+PU6dOQUdHB1OnTkVMTAwn66vQhg0bcOzYMVy5cgWCIGDkyJEICQnB008/DQ0NDVWnR2qORQERERERkZrjnAIiIiIiIjXHooCIiIiISM2xKCAiIiIiUnMsCoiIiIiI1ByLAiIiIiIiNceigIiIiIhIzbEoICIiIiJScywKiIiIiIjUHIsCIqI+JjY2FmKxWNVpAAB+++032NjYID8/XxY7ceIExGIxMjIyVJgZ9QYZGRkQi8U4ceJEtz7P75JyZWVlsLKyQmFhoapToYcIiwIieihcuHABb731FiZPngwHBwe4ublhypQpWLFiBQoKCuTa+vr6Ytq0ae0uq+2iuaamRun7Z8+ehVgshlgsRnFxcbvLaWvT9mdnZ4eAgADExcXhxo0b3drOvmbt2rVwdnaGl5eXqlPpEZWVlUhMTERZWZmqU6EeIpFIkJiY2O3Cprvu9V2ztraGn58f1q5dC0EQejQvenj1V3UCREQd+emnnxAVFYX+/fsjJCQEY8eORXNzMyoqKpCfnw8dHR14eHjct/WlpaVBR0cHWlpaSE9Ph6ura7ttra2t8T//8z8AgNraWhw5cgTJyck4duwY0tPTMXDgwPuW18Pmxx9/RH5+PrZu3SoXd3NzQ2lpKfr373v/C6qqqsKWLVtgbm4Oa2trVadDPUAikWDLli1YtGgRxo8f32Pr7ei7NnfuXMyePRtHjhzBk08+2WN50cOr7/2LTER9ztatW9HU1ISsrCxYWVkpvH/t2rX7tq7W1lZkZWVh8uTJ0NPTQ2pqKt544w3o6uoqbf/II48gODhY9nrOnDl4/vnncfjwYRw8eBBTpky5b7k9bFJSUmBkZIQnnnhCLq6pqYlBgwapKCsi9eDq6gpzc3N89tlnLAqoUzh8iIh6vfLychgaGiotCADA1NT0vq3r8OHDqK6uRmhoKEJDQ9HY2IhvvvmmS8uYOHEiAODPP/9st01KSgrEYjEOHjyo8J5UKoW3t7dcsXH06FG8/PLLmDRpEuzt7eHq6oro6OhOjxmOioqCr6+vQryyshJisRiJiYlycUEQkJKSgrCwMDg4OMDJyQlRUVEKQ7Xac+vWLeTm5sLT0xMDBgyQe0/ZOPA7Y3v27EFgYCDs7OwQFBSEw4cPAwDOnDmDefPmwdnZGePHj8fq1avR2tqqdDsvXLiAF154AS4uLnB2dsbChQtx4cIFubZSqRQffPABIiMj4eXlBVtbWzz55JN455138NdffyndruzsbERFRcHV1RUODg4IDAzE6tWr0dLSgoyMDMyZMwcA8Nprr8mGlUVFRXW4vyorK/HKK6/A09MTtra28PPzw8aNG9HU1CTXLjExEWKxGOfOncPGjRvh7e0NW1tb/Otf/8KRI0c6XA/w/+P4jx8/ji1btsDHxwf29vYIDw/HyZMnAQCFhYWYOXMmHB0dMXHiRIXenja5ubmYMWMGHB0d4eTkhBkzZiA3N1dp29TUVEyePBm2trbw9/dHcnJyu0Nb6urqEB8fD39/f9ja2sLDwwNLly5VOIZd1dn9fK95OWKxGLGxsQD+/t5OmjQJALBlyxbZMW871+48v7766isEBQXBzs4OTz75JBITE3Hr1i25ZXf2PO3Md01DQwMTJ07E999/j4aGhu7sLlIz7Ckgol5v5MiROH/+PHJychAQENCpz9y+fbvdOQMtLS3tfi4tLQ3Dhw+Hq6srNDQ0YGNjg/T0dISHh3c63/LycgCAkZFRu22mTp2KuLg4ZGVlyS4q2hw/fhxXrlxBdHS0LJaZmYna2lqEhITAzMwMV65cwRdffIFnnnkGn3766T2HOHXHK6+8gq+//hqBgYEICwtDS0sL9u3bh+joaCQmJirkfLfTp0+jsbER9vb2XVrvnj17IJFIEB4ejoEDB2LXrl1YtGgRNm/ejDfffBPTpk2Dn58f8vPzsWvXLhgbGyMmJkZuGY2NjYiKioK9vT2WLl2KiooKpKSk4NSpU8jMzJQVka2trfjkk08QEBCASZMmYfDgwfjpp5+Qnp6OkpISheFfmzZtwocffoixY8fimWeegampKf7880/k5OTgxRdfhJubG55//nl8+OGHePrpp+Hi4gIAMDExuec2V1VVITw8HHV1dZg1axZGjRqFwsJCbNu2DSUlJUhOTlYYahUbG4v+/fsjOjoara2t2LlzJxYuXIgDBw5g+PDhndrXGzZsgFQqxZw5c9Da2oodO3YgOjoa69evxxtvvIGIiAgEBQXhm2++QUJCAoYPHy5XqO7ZswerVq3CmDFjZMcgMzMTCxcuxKpVq/D000/L2iYnJyMuLg5WVlZYunQpmpqasGPHDgwZMkQhr7q6OsyYMQMXL17E9OnT8dhjj+HatWtISUlBeHg40tPTYW5u3qlt/Kf7uSOWlpZ47bXXEBcXB39/f/j7+wMAdHR05NodOnQIFy5cQGRkJExMTHDo0CFs2bIFFy9eRFxcXJe3pbPfNScnJ3z++ef44Ycf4O3t3eX1kJoRiIh6uZKSEmHcuHGCSCQSAgIChNjYWGHPnj3CH3/8obS9j4+PIBKJOvyrrq6W+9zly5cFa2trISEhQRZLTk4WRCKR0nWJRCIhOjpaqK6uFqqrq4Xz588LSUlJwrhx4wQXFxfh+vXr99yuxYsXC7a2tsKNGzfk4suXLxdsbGzkPt/Q0KDw+WvXrgnu7u7Cs88+KxdfsWKFIBKJ5GKzZ88WfHx8FJZx4cIFQSQSyW1zTk6OIBKJhM8++0yubWtrqxAaGir4+PgIUqn0ntuWlpYmiEQiITc3V+G9goICQSQSCenp6QqxiRMnChKJRBYvKysTRCKRIBaLhezsbLnlhIaGCl5eXgrbKRKJhNWrV8vF27bprbfeksWkUqnQ1NSkkF9qaqogEomEr7/+WhY7deqUIBKJhKioKKG5uVmuvVQqle0PZdvWkaVLlwoikUj47rvv5OJr164VRCKRkJqaKoslJCQIIpFImD9/vtwxaMtvw4YNHa4vPT1dEIlEQkhIiHDz5k1ZPDc3VxCJRIKNjY1QWloqi9+8eVPw8vISIiIiZLEbN24Ijo6Ogp+fn1BXVyeL19XVCZMmTRIcHR2F2tpaQRAEoba2VnBwcBCmTJkiNDY2ytpeunRJcHR0FEQikVBQUCCL/+c//xHs7OyEsrIyubwrKysFJycnYcWKFbJYV/Z3V/azsnOojUgkkstB2Tl093tWVlbCzz//LItLpVIhJiZGEIlEwo8//iiLd+U87cy2FxUVCSKRSPjkk0/abUPUhsOHiKjXc3JyQnp6OkJDQ1FXV4eMjAysXLkSTz31FCIjI5UOKTA3N0dSUpLSv7bhPXfLzMyEVCpFSEiILBYUFIQBAwYgLS1N6WeOHj2KCRMmYMKECQgMDERcXBwsLS3b/RX0TqGhoWhpacH+/ftlsYaGBuTm5uLxxx+X+7y2trZcm7/++guamppwcHBAaWnpPdfTVXv37oWOjg78/PxQU1Mj+5NIJPD19UVVVZWsN6Q9bb00BgYGXVp3WFgY9PT0ZK+trKygq6uLoUOHKvQSOTs749q1a0qHRsyfP1/utb+/P0aPHi03XEtDQwNaWloA/u5ZkkgkqKmpkU1av3O/7t27FwCwbNkyhfkQGhoa0NDQ6NJ2tpFKpTh06BBsbGwU5l4sWLAAmpqaSofjzJkzR26d9vb20NbWRkVFRafXPXPmTLmekLbeJnt7e9jZ2cniAwcOhJ2dndwxz8/Pl/XI3DnfRldXF1FRUWhsbMSxY8cA/H2ONDU1ITIyEoMHD5a1NTMzQ1BQkFxOgiBg3759cHNzw9ChQ+W+f4MHD4ajoyOOHj3a6W1s0939fL94enpi3LhxstcaGhp49tlnAQDffvvtA1tvW29ldXX1A1sH9R0cPkREDwWxWIy1a9cC+HsYQFFREb744gsUFxcjJiZGYaiHtrY2PD09lS6r7QLvToIgID09HWKxGFKpVO7iysnJCXv37sWyZcsUhhc4ODjg5ZdfBvD3xdOjjz6KRx99tFPb1Hbhn5WVhZkzZwIAcnJy0NjYKDdMA/h7fsKmTZtw9OhRSCQSufe6e0HanrNnz6KhoaHd/Qf8fZExevTodt/vbk7Khr4YGBjAzMxMaRwAbty4ITdcQ19fX+k8E0tLS+Tm5qKxsVFWZO3fvx9JSUkoKytTmJ9QW1sr+++KigpoaGi0O6+lu2pqatDY2IixY8cqvGdoaAhTU1OlRe+IESMUYkZGRu3OhVDm7mW07c/2jsGdt9mtrKwEADz22GMKbdtibXm3tR0zZoxCW0tLS7nXNTU1uHHjhqzYVkZTs+u/Z3Z3P98vd28nAFkuD3K9wv/N2bjf/0ZQ38SigIgeOubm5jA3N0dwcDBmzZqFkpISlJaW/qNx9YWFhbKJwe3NW/juu+/g5+cnFzMyMrrnxfO99O/fH9OmTcPOnTtRUVGBUaNG4csvv4SBgYHcmP2GhgZERkaiqakJc+fOhUgkgo6ODjQ1NbFt27ZOT/5V5vbt2woxQRBgbGyMd999t93PKbsYvJOxsTEAdPl5Df369etSHEC378Oek5ODJUuWwN7eHq+//jqGDRuGQYMG4fbt23j22WcVlvtPegTut+5cGHd2Gffa1w9a2z739PTEc889p7I82jvOd08M7inKztPOaDv/2s5HonthUUBEDy0NDQ04ODigpKQEV69e/UfLautpWLdundKLpXfeeQdpaWkKRcE/FRoaip07d+LLL79EREQECgsLERERIdfrcfz4cVy9ehVr1qzB9OnT5T7/3nvvdWo9hoaGOH36tEJc2a+Uo0aNQnl5ORwcHBQmTHZWW9HQleEs94tEIsG1a9cUegvOnj2LIUOGyHoJsrKyMGjQIHz66adyw1rOnj2rsEwLCwvk5eXh119/vefk6a4WDcbGxtDR0cEff/yh8F5tbS2uXbvWK5930NbL8Pvvvyv8ot+2LW1t2noezp07p9D27n1tbGwMfX191NfXd7vYVqar+/nOXihDQ0NZXNn50pljruw7dfd+Arp2nnZmvW0/dHRUxBMBvCUpET0E8vPzlf5C19zcjPz8fADKu+c7q66uDtnZ2fDy8sJTTz2FyZMnK/z5+voiLy/vHxcfd7O2toZYLMbevXuRlZUFqVSK0NBQuTZtv9ze/cv10aNHcerUqU6tx8LCAg0NDXLj5KVSKZKTkxXahoSEQCqVYuPGjUqXdf369Q7XZ2NjA11d3U7nd7999NFHcq+//fZbnD9/Xq6o69evHzQ0NCCVSmUxQRDwwQcfKCyvbez7xo0bld69qu3YtBUcdw49uhdNTU34+Pjgl19+QV5ensI2SKXS+16I3g9eXl7Q1tbG7t27UV9fL4vX19dj9+7d0NbWlj3F2svLC1paWtizZ4/crT8vX76Mffv2yS1XU1MTQUFBKC0txYEDB5Suuzvj47u6ny0sLABANi+iTVJSksKyO3PMjx07JnexLwgCPv74YwBQWG9nz9POrPfkyZPo378/nJ2d221D1IY9BUTU68XFxeHGjRvw9fWFSCSClpaW7IKivLwcISEh7d5TvDO++uorNDc3IzAwsN02AQEByMjIwJdffqkwifWfCg0Nxdq1a7F9+3ZYWFjA0dFR7n0XFxeYmppi3bp1qKqqgpmZGcrKypCVlQWRSITffvutw3VEREQgKSkJCxcuxJw5czBgwABkZ2crHZYwefJkhIWFYffu3Th9+jR8fHxgZGSEy5cv4+TJk6ioqFD6fIU79evXDwEBAcjNzUVLS0uPPtnZyMgI3377La5evQp3d3fZLUlNTEywaNEiWbvAwEBkZ2dj7ty5CAkJkT1b4e571gN/T7597rnnsH37doSFhWHKlCkwNTVFZWUlsrOz8cUXX0BfXx9jx46Fjo4OUlJSoKWlBX19fRgbG7c7Ph4Ali5dimPHjmHhwoWYNWsWRo4cieLiYuzfvx9ubm4KRWJvoK+vj+XLl2PVqlWIiIiQ5ZiZmYmKigqsWrVKNmHcwMAAL730EtatW4cZM2YgJCQETU1N+Oyzz2BhYYFffvlFbtlLlixBSUkJXn75ZUyZMgUODg4YMGAALl68iLy8PIwbN042v6grurKfp02bhk2bNuHtt9/GuXPnYGhoiO+//17pnA0jIyOMGjUKX3/9NUaMGAETExMMHjxY7nkDVlZWmDt3LiIjI2FqaoqDBw/i2LFjCA4OhpOTk6xdV87Tjr5rgiDg6NGjePzxx7vd40fqhUUBEfV6sbGxOHjwIH744QdkZ2ejrq4Oenp6EIlEeO655xAWFvaPlp+Wlob+/fsrfWhQGy8vL+jo6CA9Pf2+FwVBQUHYsGED6uvrZXckuZO+vj4+/vhjxMfHY/fu3bh16xZsbW2xfft2pKWldaooGDFiBLZu3YqNGzdi8+bNMDQ0RHBwMKZPn670qctxcXEYP348UlNTsW3bNrS2tsLU1BQ2NjZYtmxZp7Zr5syZyMjIwOHDh+9ZcN1v2tra2LlzJ9asWYN3330XgiDg8ccfR2xsLIYOHSprN3XqVDQ0NCA5ORnr1q2DgYEBfHx8sGzZMowfP15hucuXL4eVlRV2796Njz/+GIIgwMzMDN7e3rK7GGlpaWHTpk147733sGbNGrS0tMDd3f2eRYG5uTlSU1ORkJCAvXv3oq6uDo888ggWLFiAF154ocv3zu8pkZGRGDp0KD755BPZw82srKywdetWhd6N6OhoaGtrIykpCe+++y6GDRuG6Oho6Onp4fXXX5drq6enh//+97/YsWMHDhw4gIMHD6Jfv34wMzODi4tLl54Zcqeu7GddXV189NFHiIuLw7Zt26CtrY2AgADEx8fDzc1NYdkbNmzAmjVrsGnTJjQ1NcHc3Fzu3xNfX1+MHj0a27Ztw/nz5zFkyBDExMQoPGOjK+dpR9+1oqIiVFVV4e233+7W/iL1oyF0d4YWERFRB+bNm4empiakpKT0yPqioqJQVVWFQ4cO9cj6iO6lsrISkyZNwqJFi7B48eIeXffChQtx6dIlpKen95oJ8tS7cU4BERE9MLGxsTh58mS37i1PRN3zyy+/4ODBg4iNjWVBQJ3WO/skiYioT3jssccUxowT0YNlY2ODX3/9VdVp0EOGPQVERERERGqOcwqIiIiIiNQcewqIiIiIiNQciwIiIiIiIjXHooCIiIiISM2xKCAiIiIiUnMsCoiIiIiI1ByLAiIiIiIiNceigIiIiIhIzbEoICIiIiJScywKiIiIiIjU3P8CixfBkkUuBE8AAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":70},{"id":"5d06f9d4-a10c-49c0-97f8-7bf90c0cac66","cell_type":"markdown","source":"### **Executive Summary**\n\nThe model is **behaviorally driven**, not just rule-based. The dominance of transaction amount (`amt_log`) and spending deviations (`amt_to_avg_ratio_24h`) confirms that the model is successfully catching **\"burst\" fraud**β€”where fraudsters try to extract maximum value quicklyβ€”rather than just relying on static user demographics.\n\n---\n\n### **Top Feature Interpretations**\n\n#### **1. `amt_log` (Transaction Amount)**\n\n* **Importance:** This is the #1 predictor of fraud.\n* **Interpretation:**\n* **Red Dots (High Value):** Are clustered heavily on the **right side** (positive SHAP value). This means **high transaction amounts strongly push the model to predict \"Fraud.\"**\n* **Blue Dots (Low Value):** Are clustered on the **left side**. Small transactions decrease the risk score.\n\n\n* **Business Logic:** Fraudsters aim to maximize theft before the card is blocked. The model has correctly learned that high-value transactions are inherently riskier.\n\n#### **2. `category` (Merchant Category)**\n\n* **Importance:** 2nd most important feature.\n* **Interpretation:**\n* **Red Dots (High Risk Categories):** Since you used Weight of Evidence (WoE) encoding, a \"high value\" (Red) corresponds to categories with historically high fraud rates (e.g., online shopping, electronics). These dots push the prediction to the right (Fraud).\n* **Blue Dots (Safe Categories):** Categories with low fraud rates (e.g., fuel, groceries) push the prediction to the left (Legitimate).\n\n\n* **Validation:** This proves your `WOEEncoder` worked correctly by successfully mapping risky merchant types to higher numerical values.\n\n#### **3. `amt_to_avg_ratio_24h` (Spending Anomaly)**\n\n* **Importance:** 3rd most important feature.\n* **Interpretation:**\n* **Red Dots (High Ratio):** When a transaction is significantly larger than the user's 24-hour average (red dots), the SHAP value is positive.\n* **Meaning:** This validates your feature engineering. The model is flagging **anomalous spikes** in spending. If a user usually spends $50 but suddenly spends $500, this feature lights up red and signals fraud.\n\n\n\n#### **4. `hour_cos` / `hour_sin` (Time of Day)**\n\n* **Importance:** 4th & 6th features.\n* **Interpretation:** The mixture of red and blue clusters shows that fraud has a specific temporal pattern.\n* **Context:** Fraud often occurs during \"unsociable hours\" (e.g., 2 AM - 5 AM). These features capture those cyclic high-risk time windows.\n\n---\n\n### **Nuanced Observations**\n\n* **`distance_km` (10th place):** Surprisingly, geospatial distance is less impactful than spending behavior. This suggests that in this dataset, fraudsters are likely using stolen card details online (Card Not Present) or locally, rather than physically traveling long distances.\n* **`gender_bin` (Low Importance):** Demographic features like gender are near the bottom. This is **excellent** for fairness. It shows the model judges the *transaction behavior*, not the *person*, which is crucial for regulatory compliance (avoiding bias).\n\n### **Conclusion for Stakeholders**\n\n\"The SHAP analysis confirms our model is robust and logically sound. It prioritizes **high-value transactions** and **spending anomalies** (sudden spikes against a user's history) as the primary indicators of fraud. It has also successfully learned to identify high-risk merchant categories automatically.\"","metadata":{}},{"id":"e9b09c2b-6544-42b8-9013-7ac889d728b2","cell_type":"code","source":"# Explain the first transaction in the sample\n# 0-index represents the 'is_fraud=1' class contribution\nimport pandas as pd\nimport shap\n\n# 1. Create the missing DataFrame\n# We use the numpy array (X_sample) and the list of names (feature_names) from the previous cell\nX_sample_df = pd.DataFrame(X_sample, columns=feature_names)\n\n# 2. Generate the SHAP Explanation Object\n# Calling the explainer on a DataFrame automatically attaches feature names to the result\nexplanation = explainer(X_sample_df)\n\n# 3. Generate the Waterfall Plot\n# We visualize the first transaction in the sample (index 0)\n# This shows exactly how each feature pushed the prediction from the \"Base Value\" to the final score\nshap.plots.waterfall(explanation[0])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T19:58:45.107151Z","iopub.execute_input":"2026-01-17T19:58:45.107491Z","iopub.status.idle":"2026-01-17T19:58:52.384519Z","shell.execute_reply.started":"2026-01-17T19:58:45.107465Z","shell.execute_reply":"2026-01-17T19:58:52.383817Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAA9MAAAJfCAYAAAB8CIVSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdcVFfeP/DPnRmYoQ8gIKKCCFLFhj3W2GKP3XSNMTG7Kc8mmx7zZLPZJP42edI2iSnGJGZNYo0m9thFsAtYKIoURXovM8zc+/uDMDLOADNI5/N+vXwp55577rnHGWa+9zRBkiQJRERERERERGQxWWtXgIiIiIiIiKi9YTBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNRNRGiaKIzz77DBMmTEBYWBgmTJiAr776ClOmTIEoilaXt379eowdOxZarbYZaktERETUuQiSJEmtXQkiIjK1bt06/POf/8SSJUsQFBQEJycnvPLKK3jhhRcwd+5cq8vTaDQYP348Hn/8cTz00EPNUOOmU1VVhfPnzyM7Oxs5OTnQaDQYM2YMgoKCGpWvPkVFRTh58iSysrJQWVkJR0dHBAQEoF+/flAoFACAgwcPIjExsc4y7r//fjg4OAAAsrOzkZiYiMzMTJSUlECpVMLLywuRkZFQq9XWNwYRERG1SYrWrgAREZm3efNmjBw5Ei+++CIAYO3atdDpdJg+fXqjylMqlZg9ezbWrl2LBx98EIIgNGV1m1RlZSXOnDkDR0dHuLm5ITMz847y1aW0tBRbtmyBra0twsLCoFQqkZWVhdOnTyM3NxeTJ08GAISEhMDHx8foXEmScPToUTg5ORkCaQA4f/48bt68CX9/f7i7u6O8vBwXLlzA5s2bMXv2bLi5uVnZGkRERNQWMZgmImqDNBoNLl++jKeeesqQtnnzZowfPx5KpbLR5d5zzz34+uuvER0djeHDhzdFVZuFvb09HnjgAdjb2yMnJwdbtmy5o3x1SUpKglarxcyZMw1BbkhICCRJQlJSEjQajaFn2cvLy+jcmzdvQqfTISAgwCi9b9++GD9+PORyuSGtd+/e2LhxI86dO4fx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9a8z3CaLqDPiAmRERERERBawsTEd0v1AoA5yfqMm6pT41iciIiIiskDtId413FTAAn895AJ3myXqbBhMExERERFZIC0t2Wz6Y6HcJouoM2IwTURERER0B0JdJQz30kPG3mmiToXBNBERERGRBdRq9zqPPR6qg8je6RbhoRJhwyiG2gCu5k1EREREZAFX1y51HpvcXcSRWZV3fA25XAYXZzsUFVdArxfvuLyOqCI7CUp5QGtXg4jBNBERERHRnZLLgCD1nQ/zVigkuLoKKJBL0Ok4bNyclAJ9a1eBCACHeRMRERERUTvi4dGttatABIDBNBERERERtSMaTUVrV4EIAINpIiIiIiJqR4qLC1q7CkQAGEwTERERERERWY3BNBERERERtRt+fn1auwpEABhMExERERFRO5KRkdLaVSACwK2xiIiIiIioHdHpquo8ti9DhuWHbGHNpmL3Berw9hDdnVeMOh32TBMRERERUbthb+9Y57HPLypQrgPKdILFf3antmDlqUNhzzQREREREbUbarW72fTEQgFHMuVWl6cXxTutEnVS7JkmIiIiIqJ248YN813JX19SQC5YM8C7mlzGkIgah68cIiIiIiJq14o0wPpkOfSSYP3JQiPOIQKDaSIiIiIiake6dOlqkrYuUQ5tI0dr6/X6O6wRdVYMpomIiIiIqN24fTVvvSjhiwtyq1bwJmoKDKaJiIiIiKjdKCzMM/r5t6sSrpcJABo3XFuh4JrM1DgMpomIiIiIqN36v1NioxYeqyFymDc1Eh/DEBERERFRu+HrG2D498V8AYcygMb2SgOAKHGAODUOe6aJiIiIiKjduHEjzfDvLy/KobjDxbi5ljc1FoNpIiIiIiJqN6qqtACAAg3wU5IMujvsWFbY2DRBragz4jBvIiIiIiJCkRb4xykb7EiTo0IPDOgi4s3IKkS4NxytPnXUBj9fMQ0tApxFRN2rMfycVCTgv0lyHLwhx7USAQ42QISbiBf6V6F/F8uiYpXKHgCwLkmBqkZuh1VbVVVVw5mIzGAwTUT1mjFjBm7evImTJ0+2dlUaZdmyZThy5AhOnToFJyen1q4OERFRmyRKwH37bHGhQIa/hOngppKw9rICs3crsW+6Bv7ODQe6SpmED0YYB6bOtsbnrUuU47/JCkz31WNJsIhirYDvE+W4Z4cSP03QYky3hqNjd3dP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OERFRcHGxgb+/v4YOnSoRYFaz549UVZWhqtXr6KiogKSJMHBwQH+/v6IiIgwCSZkMhnuuecenDlzBleuXMHVq1ehUqkQEhKCwYMHm1wzJCQEKpUK58+fx6lTpyAIAjw9PTF+/Pg72tv2TqxevRqvvPIKzpw5g+joaLi7u+OBBx6AWq3GqlWrmuWa7777Ll588UVs2bLFMK98wYIFFgfTb775JgoLC7Fv3z7DytgDBgyAm5sbnnrqKXh6emLNmjXYuHEjAMDb2xsvv/yy0b7JlpDL5fj222/x6quv4ujRo9i/fz+8vLzwt7/9DdeuXcNPP/1k9rwHHngAO3fuhFarxZQpU8zm+eSTT/Dmm29i165d+O6779ClSxesWLECycnJuH79eqPn95sTEBCADz/8EP/+97+xdetWCIKAXr164bPPPsO7775rskBcfe1rzr333gsnJyd8/PHH2L59O/R6PTw8PPD444/j2Weftbq+NUPGk5OT8f7775scnz59utFIECIiIqLHQ3U4nqW843JkAvdbpsZp1/tME3UECxYswIULFxAdHW2yBRS1fTk5JS12LYVCBldXBxQUlBlW4FQqFXB2tkNxcQVX876NufaiurG9rMP2sg7by3Jsq4YVFuZDrXaDXgQGbVLhRvmd9Uz7qDQ4u7B127qlPs876+vLw6N5vmPzMQxRCzE3Z/zcuXOIjY1F7969GUgTERERWaBmfRe5DHgiXN9EG2QRWa/dD/Om9isnJwcVFRX15rGzszMsKnYn8vPzG1wAzdbWtlmH3n///ffYvHkzhg0bhi5duiAlJQV//PEH5HK5YWh0WVkZ8vLyGiyre/fuhsXk2qqioiKz+5jXJpPJmnwfdSIiIurY8vOz4eLiCgB4oI8e/zpdvWBaYynkCgDaBvMR3Y7BNLWapUuXIjExsd48kZGR+PHHH+/4Wi+88AKOHDlSbx5fX1/s2bPnjq9Vl/79+2P37t3YsWMHKioqYGtri8DAQDz11FMYP348AODnn3/Ge++912BZp06davM92R988EGdc8xrODs74+TJky1UIyIiIupo1Erg4XABX8eKjd4mS5Q6z3BnaloMpqnVvPLKK8jOzq43j7e3d5Nc669//WuD2zXV3je8OYwYMQK//vprvXkmTZrU4PZmgGX7k7e2+++/HwMHDqw3j1J554uGEBERUefSvXsv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l956663WrgIRERF1AN279zL829EGeDBQj68vW79NFpei6nz4+ISIiIiIiDqt3Nwso5+XBusgNiIuZjDd+TCYJiIiIiKiTquystzo517OEu72ESEXGBxT/RhMExERERFRp2VjY7od1uOhOquHecvlnEHb2TCYJiIiIiKiTsvbu4dJ2mhvEb2drdsmS69vvv2hqW1iME1ERERERJ1WWlqySZogAE+E6hq54zR1FgymiYiIiIiIbjPPXw9HK0ZuC4J1w8Kp/WMwTUREREREnZZa7W423cEGeDjI8qHbkV30TVUlaic4S56IiIiIiDotV9cudR57fZAOLw+wLKBOT00AENREtaL2gME0ERERERGRGTIBsJVbnpc6Fw7zJiIiIiIiukMeHt1auwrUwhhMExERERER3SGNpqK1q0AtjME0ERERERHRHSouLmjtKlALYzBNREREREREZCUG00RERERERHfIz69Pa1eBWhhX8yYiIiIios6rTAOhQtNwPqUNJCe7Og9nZKSgRw//JqwYtXUMpomIiIiIqFMS8krgNvIlyPJLG8yr93ZF/un3AYX5vbJ0uqqmrh61cRzmTUREREREnZIst9iiQBoA5JkFsN11ts7j9vaOTVUtaicYTBMRERERETVAkgmwX72rzuNqtXsL1obaAgbTREREREREDRBECTYxSZDHpZo9fuOG+XTquBhMExERERERWUCSy2D39d7Wrga1EQymiYiIiIiILCDoRag2RkHIKzE51qVL11aoEbUmBtNERERERESW0otQrTtokszVvDsfBtNEREREREQWEkQJ9l/uAap0RumFhXmtVCNqLQymiYiIiIiIrCDLKYZyx+nWrga1MgbTREREREREVpBkAuy+2G2U5usb0Eq1odbCYJqIiIiIiMgKgijB5vQVKM6nGNJu3EhrxRpRa2AwTUREREREZCVJLoPdl3sMP1dVaVuxNtQaFK1dASIiIiIiovZG0ItQbolB6RuLIHm6QKWyb75rFZXB4R8/Q7njDIQKDaoG+KPszcXQRfhZV1CVDgh9Gq6XMlD6xkJU/GWq4ZD9qi1w+PfWOk8t2P4qdEP7NO4GOij2TLcDy5YtQ1BQEEpKTPez60zWrFmDoKAgbNy4sd40AEhOTsaCBQswYMAABAUF4f777wcAlJeX46mnnsLgwYMRHByMwYMHW3z9GTNmWJWf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Y63cm4iIiKi23L+fCk/P5rqv27sK6Oquwfl0MbQw7J0uf3kyqo+4ABkREREREZGZCgvzDcpeDFQbTaQBQCZXGC2n+ovJNBERERERkZlkMsPkeIiPFh7Wxlf1VhUV1XRIZGFMpomIiIiIiMxUeoh3CakYeCHA+DZZArfOanCYTBMREREREZnpzp3rRssnt1VDYiTLEouZejU0/BslIiIiIiKqJi5WwPhWhit3u1kz9WpouJo3ERERERGRmZycXMs89nYnFQY110+omxTEA2hdw1GRJTGZJiIiIiIiMpOzs1uZx5raFC9GVtqtW+qaDoksjGMNiIiIiIiIapi7e7PaDoGqGZNpIiIiIiKiGqZUFtR2CFTNmEwTERERERHVsJycB7UdAlUzJtNEREREREREZmIyTUREREREVMN8fdvVdghUzZhMExERERER1bDExFu1HQJVMybTRERERERENUytVpV57EiSCADwyXkp+m1X4LsrEkuFRVXAZJqIiIiIiKiG2djYGS1XaYFdd4uT58Q8Ea48EOOHK0zT6gP+LREREREREdUwJydXo+V/3JEgp0ikVyZoNZYIiaqIyTQREREREVENS06+bbT8+ysSiESCXplIzGHe9QGTaSIiIiIiolpwOUOE8/clEAT9nmmRSFTGGVSXMJkmIiIiIiKqYW5uTQ3KfrwqheSRXmkA0GrUlgiJqojJNBERERERUQ17dDXvtAIg4pYEGoG90PUVk2kiIiIiIqIalpWVoff1r3FSaMuoK5FIaz4gqjIm00RERERERBZUpAFWXpNCW0avtFZbVppNdQmTaSIiIiIiohrWokUb3Z933JYgQ1n28G5BYDJdHzCZJiIiIiIiqmHJyXd0f/7+qhRiGC489g/Oo64PmEwTERERERHVMJWqCABwPl2EyxliaMtJmKVSzpmuD/i3RERERERE9VZWoYBZx6XYlSBGgQbo5KbF/C4qdHAtr+cX0ArAhhsS7LotQVSmCFlFIvjYCRjtq8FLwWpYSfTrpxUAn5yX4UCSBLkqoK2jgNfbqzDS17Qh2VZWNgCAH/7eDqu8VbwfXfmb6ib2TBORUd999x38/PzwzTff1HYoJjt8+DC6du2KZ599trZDISIiIgvQCsCwCA023xDjOX81PgxV4X6BCKP3KnAzp/yh0vlq4LW/5LivFGGqnwYfd1Whk5sWiy9L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Ozujb9++1br69KMWLlyITp064ddff8XOnTuhUqlga2uLZs2a4YUXXtDVCwwMxJIlS/Dll18iIiICIpEIrVu3xo8//oh58+YhIyND77rz58/HG2+8gb1792Lbtm0AgJ49e8LR0REzZsxAamoqduzYgZ9//hnOzs6YMmUKxGIx/vvf/5ocu0KhwKZNm/Dll19i3759utXJ7e3t0bp1a4wdO1ZXd9SoUTh16hR27doFpVIJW1tbtG7dGq+++iq6d+9elSYkIiIiqpDG3wv4M6rC7bGo/hAJgokD94mIyEB6uuHc75oilYrh7GyLBw/ydIusKBRSODhYIyengAuQPcJYe1HZ2F7mYXuZh+1lOraVeepTeyk2/gWHl38wfnBiL2DNG7rP86ysTDg5mT4s3FT1qb2qk7t71RfuNYZzpomIiIiIiGqYxs+0rVWB6lvolmoWk2kiIiIiIqIapm7jCcHEHDkzM61mg6FqwWSaiIiIiIioptkooG3qXNtRUDViMk1ERERERGQB6iAfk3qnvb1b1nwwVGVMpomIiIiIiCxA4+8FSCQV1rt/P9UC0VBVMZkmIiIiIiKyAHU7L4hM2BqrsDDfAtFQVTGZJiIiIiIisgCNXzOT6slkihqOhKoDk2kiIiIiIiILULc1LZn29Gxew5FQdWAyTUREREREZAl2VtA0daqw2p0712s+FqoyJtNEREREREQWog7whlDbQVC1YDJNRERERERkIRp/b1S0O5aTk6tFYqGqkdZ2AERERERERI1F/usjUDipt16ZzM0e9qW+dnZ2s2xQVClMpomIiIiIiCxEcLGDxsVOr0yqYFpWH3GYNxEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZRIIgCLUdBBFRfWXpH6EikcjgnsbKqBjbxjxsL/OwvczD9jId28o8DaW9LPUcDaW9zCESiWrmukymiYjqh5If1zX1gdDQsL3Mw/YyD9vLPGwv07GtzNNQ2kutVgMApFJpjd6nobRXXcFkmoionujfvz8A4ODBg7UcSf3A9jIP28s8bC/zsL1Mx7YyT0Npr8DAQADA1atXa/Q+DaW96grOmSYiIiIiIiIyE5NpIiIiIiIiIjMxmSYiIiIiIiIyE5NpIiIiIiIiIjMxmSYiIiIiIiIyE5NpIiIiIiIiIjNxaywiIiIiIiIiM7FnmoiIiIiIiMhMTKaJiIiIiIiIzMRkmoiIiIiIiMhMTKaJiIiIiIiIzMRkmoiIiIiIiMhMTKaJiIiIiIiIzCSt7QCIiKhi69atw9mzZ3HlyhXcvn0bWq0WsbGxBvUEQcD27dtx+PBhREdHIy0tDc7OzvD398fMmTMREhJSC9FbnqntVeLmzZtYsmQJzp49C5VKhcDAQLz66qsIDw+3YNR1i0qlwoYNG7B582bcuXMHANC8eXOMHj0aEydOhFwur+UI656CggL89NNP2L17N+7evQsrKyu0bNkS06dPx8CBA2s7vDpLq9Vi4sSJuHTpEvr27YsVK1bUdkh1SmpqKrZu3Ypjx44hISEBubm58PLyQu/evTFjxgw4OzvXdoi1QqvV4pdffsG6deuQlJQEFxcXDBkyBK+99hpsbGxqO7w65datW9i+fTv++usv3LlzB0qlEj4+PnjiiScwdepUtlcVcJ9pIqJ64PHHH8eDBw8QGBiIxMREpKSkGE0OlUolOnTogICAAPTp0wfe3t5IT0/HunXrkJaWhs8//xyjRo2qhSewLFPbCwDu3LmDcePGQSKRYOrUqbCzs8PGjRsRHx+PH3/8ET169LBw9HXDnDlzsHPnTgwePBjdu3eHVqvFoUOHcPz4cQwZMgRfffVVbYdYp2RnZ2PatGlISEjAU089BT8/PxQUFODGjRto2bIlpk2bVtsh1lm//fYbli5divz8fCbTRqxduxaffvop+vbti9DQUNja2iIyMhJbtmyBm5sbNm3aBHd399oO0+I++eQT/Prrrxg4cCB69+6NGzdu4LfffkNoaChWrVoFsZgDcEssWbIEv//+Ox5//HF07NgRUqkUp0+fxu7du+Hn54cNGzbAysqqtsOsnwQiIqrz7t69K2g0GkEQBGHGjBlCu3btjNZTqVTC6dOnDcrT09OFsLAwITw8XHedhszU9hIEQXjttdcEf39/4erVq7qy3NxcoW/fvsKgQYMErVZb4/HWNSkpKUK7du2El156Sa9cq9UKEydOFPz8/ISsrKxaiq5uevPNN4VOnToJ8fHxtR1KvXLv3j2hU6dOws8//yy0a9dOmDFjRm2HVOfExcUJaWlpBuUbNmwQ2rVrJ3z22We1EFXtiouLE/z8/IRXXnlFr/yXX34R2rVrJ2zfvr2WIqubIiMjhZycHIPy//znP0K7du2EX3/9tRaiahj4yoaIqB7w9vY26S27VCpFWFiYQbmbmxvCwsKQkZGBjIyMmgixTjG1vfLz8/Hnn38iLCwMAQEBunJbW1uMHTsWCQkJiIqKqslQ66S8vDwAQJMmTfTKRSIR3N3dIRaLoVAoaiO0OikxMRE7d+7E+PHj0aZNG2g0Gl0bUvnmz5+P5s2bY8qUKbUdSp3Vtm1boz3PQ4YMAQDExcVZOqRat3PnTgiCgKlTp+qVjx8/HtbW1ti+fXstRVY3tW/fHvb29gblQ4cOBdA4v4eqC+dMExE1EikpKZDJZHBwcKjtUOqM2NhYFBUVoWPHjgbHSsqioqLQoUMHywZWy3x8fODj44PNmzcjMDAQ4eHh0Gq1OHjwIPbv348ZM2ZwSGApx44dg1arRevWrfHWW29h9+7dUKlU8PDwwHPPPcch3mXYs2cPDh06hHXr1kEikdR2OPVOamoqgOKXpY1NdHQ0xGKxwc9mhUIBf3//RvkStDJSUlIANM7voerCZJqIqBE4cuQIIiMjMWrUKPYolpKWlgYA8PDwMDhWUlbyC2tjIpVKsXz5crz99tv44IMPdOUymQwffPABJk2aVIvR1T23bt0CAPznP/+Bs7Mz5s+fD5lMhnXr1mHRokXIycnBa6+9VstR1i0PHz7EJ598ggkTJhh9mUUV+/rrrwEAo0ePrt1AakHJ4prGFkL08PDAxYsXUVRUxIUSy6HRaLB8+XJIpVIMHz68tsOpt5hMExFZSE5ODlavXm1y/WeffRZOTk5Vvm9CQgLmzp0LDw8PvPPOO1W+nqVYor0KCgoAwOgvXCUvHUrq1EdVaUOFQgFfX1+0b98e3bt3R2FhIbZs2YKPP/4YNjY2DfIX+Mq2V8mQbpVKhd9//123uvKQIUMwbNgwrFy5ElOnToWjo2ONxF1bqvL99cUXX0AQBMyZM6eGoqt7qvNn2s8//4w9e/ZgwoQJjXLXgYKCgjIT5ZKf3YWFhUymy7Fw4UJcvHgRs2fPRqtWrWo7nHqLyTQRkYXk5ORg2bJlJtcfOXJklZPpu3fv6oaY/vjjj3BxcanS9SzJEu1lbW0NACgqKjI4plQq9erUR5Vtw/T0dIwdOxbjxo3Dm2++qXd84sSJWLBgAfr169cgk8PKtFfJkPe+ffvqbVMkk8kwfPhwfPvtt7h06RL69OlT7THXpsq217lz57BhwwYsXry4UU07qa6faRs3bsTixYvRt29ffPjhh9UYYf1hbW1d5vofJT+7ORWlbF999RV+++03TJgwAf/6179qO5x6jck0EZGFeHt7l7vXcXVLTEzE1KlTkZ+fj1WrVsHPz89i964OlmivkgW2jA3lLikzNgS8vqhsG65fvx5ZWVl44okn9MrFYjEGDx6MS5cu4erVqw2uR6yy7VXyPWJskaiSspycnKoFVwdVtr0WLFgAf39/hISE4Pbt23rHCgoKcPv2bdjb29erl3+mqI6faZs2bcKHH36Ixx57DN988w1kMlk1RVe/NGnSBNevXzc6lDs1NbXMIeAEfPPNN1i+fDnGjBmD+fPn13Y49R6TaSKiBigxMRFTpkzBw4cP8b///Q+BgYG1HVKd1K5dO8jlcly6dMngWElZcHCwZYOqA0rmkmu1WoNjarVa7/8E3SJIJYv5lFZS5urqatGY6rLk5GQ8fPgQgwYNMjh2+vRpDBo0CM888wzmzZtXC9HVXZs2bcIHH3yAHj164LvvvmvUyWJwcDCOHz+OyMhIdOnSRVeuVCoRExOjV0b/+Oabb7Bs2TI8+eST+PTTTyESiWo7pHqPyTQRUQOTlJSEKVOmICcnBz///HOjTAZNZWtri379+mH//v2IiYmBv78/gOKtoTZt2gRfX99Gt5I3ALRu3RoAEBERoff8KpUKO3fuhFQq5QuaUrp27QovLy8cOnQIqampup7q/Px8bNu2DQ4ODlxkq5TPP/8cKpXKoPz1119HUFAQZsyYgRYtWtRCZHVXREQEPvzwQ3Tv3h3fffddo19IcujQoVixYgVWr16tlzhv2LABBQUFGDFiRC1GVzctW7YMy5Ytw6hRo7Bw4UKTto+kiokEQRBqOwgiIirfn3/+iZiYGADA9u3bcevWLbz++usAAAcHB0yePBkAkJubi1GjRiExMRHPPvss2rdvb3Ctxx57rMFvg2FqewHA7du3MW7cOEilUkybNg22trbYuHEj4uLisGLFCvTq1atWnqE2lf4+6tevH3r16oWCggJs374dsbGxeP755zF37tzaDrNOOXLkCGbOnIkmTZpg0qRJkMlkiIiIQFxcHD799FOMHTu2tkOs8/z8/NC3b1+sWLGitkOpUw4ePIhXXnkFdnZ2eOuttwwSaVtbWwwYMKCWoqs9H3/8MX777TcMHDgQffr0wY0bN/Drr7+ic+fOWL16NZPFUn7//XcsWLAAzZo1w+uvv27QI+3m5obHHnuslqKr35hMExHVA++88w62bNli9JiXlxf+/PNPAMXDu/v371/utX755Rd069at2mOsS0xtrxI3btzAkiVLcPbsWahUKgQGBuLVV19Fjx49LBFunZSRkYFvv/0Whw8fRlpaGqRSKdq0aYPx48dj3LhxHB5oxJkzZ7Bs2TJERUVBq9UiICAAM2bMwOOPP17bodULTKaNKxmaWxZjP9MaA41Gg9WrV2P9+vVISkqCs7Mzhg4ditdeew22tra1HV6dUt5nIgCEhYXh119/tWBEDQeTaSIiIiIiIiIzcfwDERERERERkZmYTBMRERERERGZick0ERERERERkZmYTBMRERERERGZick0ERERERERkZmYTBMRERERERGZick0ERERERERkZmYTBMREREREVXRO++8Az8/P/j5+WH48OEGx7VaLb777jsMGDAAQUFBGDBgAADgxx9/xBNPPAGtVlup+65duxZ9+/ZFUVGRwbFVq1bpYvLz80NmZmal7kHGSWs7ACIiIiIiorrs2LFjmD59epnHP//8cwCAs7Mz3n33XTg4OBjUWbNmDb7++mv83//9H/z8/NCkSRPk5uZi5cqVmDt3LsRi/X7OZcuWYdmyZdi1axdat26td+zdd9/F1q1bsXz5cowZMwbLli3DunXrMGXKFL16vXr1grOzM/bv34/9+/dX9vErTaVS4fLly0hLS0N6ejqUSiX69OkDPz8/k87PzMzE+fPncf/+feTn50MqlcLZ2RkhISFo0aJFpe5T1ZhKYzJNRERERERUjpiYGADABx98YDRR7tWrF06dOgUbGxuMGjXK6DUiIiLw2GOP4e2339aVrVq1Cmq12mhP9sSJE/HDDz9g9erVWLBgga78119/RUREBGbNmoW+ffsCAEaPHo1Vq1bh2WefhUgk0tVt3bo1WrdujTt37tRKMl1YWIgLFy7Azs4OLi4uuHfvnlnn5+bmQqVSoV27drCxsYFarcatW7ewd+9e9OrVCwEBAWbfp6oxlcZkmoiIiIiIqByxsbGwt7fH5MmT9ZJVUymVSsTExODVV1/VK4+IiMDjjz8OhUJhcI6rqytGjBiBbdu2YdasWXBxccGZM2fw2WefYfDgwZg5c6au7pAhQ7By5UqcOnUK4eHh5j9gDbGxscHkyZNhY2OD9PR0bNmyxazzfXx84OPjo1cWFBSELVu2IDIyUpdMm3OfqsZUGudMExERERERlSM2NhYBAQGVSqTfe+89dOjQARqNBl999RX8/PwwYcIE3L17F7GxsejRo0eZ506bNg2FhYVYt24d7t27h1mzZqFVq1ZYtGiRXr3g4GA4OTnh4MGDZsdXkyQSCWxsbKr1mmKxGLa2tnpzxM25T3XGxJ5pIiIiIiKiMhQVFeHWrVt46qmnjC7gZW9vD5lMVub5I0aMgFQqxfr16/H+++/D0dERXl5euHjxIgAgMDCwzHPbtm2Lnj17Ys2aNThw4ADUajW+/fZb2NraGtQNDAzEhQsXKvGExmm1WqOLmhmjUCgq9aLBVCqVChqNBkVFRUhISMDdu3cN5pHXBibTREREREREZbhx4wZUKhXWrVuHdevWGRzfs2cPWrZsWeb54eHhuvnUkydP1i009tVXXwEAvL29y73/tGnTMH36dGRkZOCHH34wGPZconnz5tWaTKekpGDnzp0m1Z04cSLs7e2r7d6POnXqFK5duwYAEIlE8PX1xWOPPVZj9zMVk2kiIiIiIqIyxMbGAgA+++wzeHh4GBz39fU16Rpt2rTRW7E7KysLUqnUaC9zaTdu3ABQnCz36tWrzHoODg4oLCxEQUEBrK2tK4ypIq6urhg6dKhJdavjfuVp3749WrZsifz8fNy8eROCIECj0dToPU3BZJqIiIiIiKgMMTExkEqlGDZsGORyeaWv0bNnT7PPO3HiBBYvXgxfX18kJCTg+PHjZV5HEAQAqLbh1gqFosJec0txcnKCk5MTAKBdu3bYtWsX9u7di9GjR9fo8PKKcAEyIiIiIiKiMsTGxsLb27vSiXROTg7u3buHdu3a6ZU7OTlBrVYjNzfX6Hl3797FG2+8gYCAAGzatAmurq5YtWpVufextraGlZVVpeJ8lEajQX5+vkn/abXaarmnqVq1aoX09HRkZ2db9L6PYs80ERERERFRGWJjYxESElKl8wHAz89Pr7xVq1YAgMTERPj7++sdy8vLw0svvQSpVIpvv/0W9vb2mDRpEpYtW4YbN24YXXwrMTFRd83qkJqaWmfmTD9KrVYDgMkLpNUUJtNERERERERGpKenIyMjo0pJakxMDADDZLpTp04AgOjoaL1kWhAEzJ07F7du3cLq1avRtGlTAMCkSZPwww8/YPXq1ViwYIHBfa5evYoRI0ZUOs5HWXLOdEkPvZWVlV7PurH531qtFvHx8ZBIJHB2dq7SfauKyTQREREREZERJYlwZmYmtm3bZnDc39/fIEl+VGxsLDw8PHRzfks0b94c7dq1w8mTJzF27Fhd+TfffIMDBw5gwYIFCA0N1ZW7uLhg5MiR2LZtG9544w29RDI6OhpZWVno379/ZR7TqOqaMx0dHY2ioiLk5+cDAG7fvo28vDwAxftjy+VypKWlYefOnejcuTO6dOmiO/fYsWMoKiqCp6cnbG1tkZ+fj+vXryMrKwvdu3fX25LMlPtUpm55mEwTEREREREZUTJEOyIiAhEREQbHP//8c5OS6bLqPPXUU/jvf/+LwsJCWFlZYf/+/fjuu+/w9NNPY8KECQb1p02bhk2bNmHdunWYOXOmrnzPnj1o1qwZunfvbs7jWURkZKTevPCEhAQkJCQAKN5Hu7zEtVWrVoiNjcXVq1dRWFgIuVwONzc3hIWFGayibs59qhJTaSKhZNk3IiIiIiIiqpR33nkHp06dQkREBKRSKRwcHCo85+HDhxgwYADefPNNjBs3rlL3LSoqwuOPP44XXngBU6dO1TumVCqRl5eHlStX4qeffsLJkyfh4uJSqfuQIa7mTUREREREVA3u3buH8PBwTJo0yaT69vb2eP755/HTTz9VekXszZs3QyqVYuLEiQbH1q5di/DwcPz000+VujaVjz3TREREREREVXT9+nWkpaUBAGxsbNCxY8faDQjFyf2tW7d0X3ft2lVvnjFVDZNpIiIiIiIiIjNxmDcRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREYqMpeMAAAAISURBVJnp/wEtcYc7U7kByQAAAABJRU5ErkJggg==\n"},"metadata":{}}],"execution_count":72},{"id":"f597c0af-be5a-4257-958f-e2e5b068438a","cell_type":"markdown","source":"### **Transaction Analysis: Legitimate (Safe)**\n\nThe plot visualizes why the model decided this specific transaction (Index 0) was **Legitimate**.\n\n* **Final Score (): -11.872**\n* This is the model's raw output (log-odds).\n* A highly negative score translates to a probability near **0%** (0.000007%).\n* **Verdict:** The model is extremely confident this is **NOT fraud**.\n\n\n* **Key Drivers (Why it's Safe):**\n* **`amt_log` (Blue Bar, -5.63):** This is the massive blue bar pushing the score to the left. It indicates the **transaction amount was low**. In fraud detection, low amounts are strong indicators of normal behavior, and this feature alone did most of the work to clear this transaction.\n* **`category` (Blue Bar, -3.56):** The merchant category (likely something like 'grocery_pos' or 'gas_transport' which had low WoE scores) heavily signaled safety.\n* **`hour_cos` (Blue Bar, -2.58):** The time of day aligned with normal human activity patterns, further reducing risk.\n\n\n* **Minor Risk Factors:**\n* **`hours_diff_bet_trans_log` (Red Bar, +0.47):** There was a tiny push towards fraud here (perhaps the time since the last transaction was slightly shorter than average), but it was completely overwhelmed by the \"safe\" signals (Amount and Category).","metadata":{}},{"id":"85363bac-4138-4a65-a4fe-6de9f42a6977","cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport shap\n\n# 1. Increase sample size to 2000 to ensure we capture the fraud case at index 1006\nsample_size = 2000 \n\n# 2. Get the numerical data for calculations\n# We use the transformed data (from the pipeline) for the math\nX_sample_nums = X_test_transformed[:sample_size]\n\n# 3. Create the DataFrame for the plot (so we get nice feature names)\n# Using the feature_names list we created earlier\nX_sample_df = pd.DataFrame(X_sample_nums, columns=feature_names)\n\n# 4. RE-GENERATE the Explanation Object for the larger sample\n# This is the critical step that was missing\nprint(f\"Calculating SHAP values for {sample_size} transactions...\")\nexplanation = explainer(X_sample_df)\n\n# 5. Find the fraud index within this new aligned range\n# We slice y_test to match the exact size of the explanation object\nsample_y_test = y_test[:sample_size].reset_index(drop=True)\nfraud_indices = np.where(sample_y_test == 1)[0]\n\n# 6. Plot the Waterfall\nif len(fraud_indices) > 0:\n target_index = fraud_indices[0]\n print(f\"Success! Plotting Fraud Case at Index: {target_index}\")\n \n # Now explanation[1006] will exist because we calculated 2000 rows\n shap.plots.waterfall(explanation[target_index])\nelse:\n print(\"No fraud cases found in the first 2000 samples. You may need to increase sample_size to 5000.\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-01-17T20:04:18.931198Z","iopub.execute_input":"2026-01-17T20:04:18.931556Z","iopub.status.idle":"2026-01-17T20:04:30.887928Z","shell.execute_reply.started":"2026-01-17T20:04:18.931529Z","shell.execute_reply":"2026-01-17T20:04:30.887278Z"}},"outputs":[{"name":"stdout","text":"Calculating SHAP values for 2000 transactions...\nSuccess! Plotting Fraud Case at Index: 1006\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAA/YAAAJfCAYAAADVfE3GAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA7+VJREFUeJzs3Xd4VGXax/HvlGTSK6GFGkroTZogiIA0RQVsqIsNEcvq2tvadtf6quuuva7rujY60pEiSif0FnoNJYSE9GTa+8dsRoZJmYQkk8Dvc11cIc95znPuMzmZyX2ecgxOp9OJiIiIiIiIiNRKRn8HICIiIiIiIiIVp8ReREREREREpBZTYi8iIiIiIiJSiymxFxEREREREanFlNiLiIiIiIiI1GJK7EVERERERERqMSX2IiIiIiIiIrWYEnsRERERERGRWkyJvYiIiIiIiEgtpsReREREREREpBZTYi8iIiIiIiJSiymxFxERERERuQg5HA4+/PBDBg8eTPv27Rk8eDCfffYZw4YNw+FwlLu97777jgEDBlBYWFgF0UppDE6n0+nvIERERERERKR6ffPNN/ztb3/jzjvvJDExkfDwcJ599lmefPJJxowZU+72CgoKGDhwIPfeey/jxo2rgog9nTx5kl27dnHs2DGysrKwWCzUq1eP7t27ExUV5VHXbrezbt06du/eTUFBATExMfTo0YNGjRr5dCxf9z99+jRJSUmcOnWK3NxczGYz0dHRdO7cmaZNm1a4blnUYy8iIiIiInIRmjp1Kn379uWpp57iuuuu4/Dhw9hsNq6++uoKtWexWLjuuuv46quvqI7+402bNrF//34aNmxInz59aNu2LceOHWPq1KmcPn3ao+7SpUvZvHkzLVu2pE+fPhiNRubOncvx48d9Opav+2dnZ2O1WmndujV9+vShW7duAMyfP58dO3ZUuG5Z1GMvIiIiIiJykSkoKKBr16788Y9/5L777gPgmmuuITExkf/7v/+rcLtbt25lzJgxfPXVV1x66aWVFW6xjh8/TlxcHCaTyV125swZJk+eTPPmzRk4cCDg6tmfPn06vXr1onPnzgDYbDYmT55McHAw1157banHOd/9HQ4H06ZNw2azcdNNN1Va3bOpx15EREREROQi8uyzz9KpUyfsdjvvvvsuiYmJXHbZZSQnJ9OnTx+v+idOnKBjx44888wzHuUrVqygffv2vPrqq+6yDh06EBUVxaJFi6r8POrXr++R1ANERkYSHR1NRkaGu2zfvn0YDAbatm3rLjObzSQmJnLixAmys7NLPc757m80GgkNDfVp7YHy1D2buVy1RUREREREpFYbOXIkZrOZH374geeee47IyEgOHz7Me++9R7t27bzq16tXjxtuuIEff/yRBx98kPj4ePbu3cvDDz9Mv379ePrppz3qt2vXjvXr15cag8Ph8Dl5tVgsGAwGn+o6nU7y8vKIjo52l6WlpREZGUlgYKBH3bp167q3h4WFldhmRfa3Wq3Y7XYKCws5cOAAhw8fpkWLFsW2X566JVFiLyIiIiIichG59NJLWbVqFSEhIdx2220YjUbeffddgBIXk7v33nuZNGkSn332GQ8//DATJ04kPj6ed955B6PRcyB448aNy0zsjx8/zqxZs3yKd+zYsYSHh/tUd8+ePeTk5HDJJZe4y3JzcwkJCfGqW1SWk5NTapsV2X/VqlXuefIGg4FmzZrRt2/fYtsvT92SKLEXERERERG5yCQnJ9OyZUt3Up6RkYHZbCY0NLTY+vXq1ePGG2/kxx9/ZPv27eTn5/PNN98Um/BGRESQn59PXl4ewcHBxbYXGxvLiBEjfIq1pDbOlZGRwW+//Ua9evVo3bq1u9xms3kN2QfcZXa7vdR2K7J/x44dad68Obm5uezbtw+n01niccpTtyRK7EVERERERC4yO3fu5LLLLivXPnfddRfffPMNycnJ/Pe//6VevXrF1itan7204fMWi8XnR835Ijc3l7lz5xIYGMjgwYM9RhGYzeZiE+WisuKS9rNVZP+oqCj3I/dat27N7NmzmT9/Ptddd53X61KeuiXR4nkiIiIiIiIXkczMTI4dO+bRqx0VFYXNZit1IbiPP/4YcCW0kZGRpbYfHBxMUFBQiXXsdju5ubk+/XM4HKWeT2FhIXPnzqWwsJARI0Z4jToICQkhNzfXa7+ispJGKVTW/gAJCQmkpqZy5syZSq1bRD32IiIiIiIiF5Hk5GQAEhMT3WUJCQkAHDlyhDZt2njt8/nnnzNp0iReeOEF3nzzTT7++GNeeeWVYts/cuSIu72SnDhxolLm2NtsNubNm8eZM2e46qqrPBbNKxIbG0tKSgqFhYUeC+CdPHnSvb0057t/UZyATwsGlqduESX2IiIiIiIiF5GdO3cCnol9165dAddz6M9N7H/++WfefvttHn74YW699VYOHDjAd999x8SJE2ncuLFX+9u3b2fkyJGlxlAZc+wdDgeLFi3ixIkTDB06tMSpAQkJCWzevJkdO3a4n0Nvt9tJTk6mbt26HivaF41aCAoKco84KM/+xa0r4HA42L17NyaTyePGQ3nqlkWJvYiIiIiIyEUkOTmZevXqued1g2sl+9atW7Ny5Uquv/56d/nWrVt5/PHHGTlyJPfddx8A48eP5/vvvy+2137r1q1kZGQwaNCgUmOojDn2q1at4uDBgzRp0oSCggJ2797tsb1Vq1aA67F0CQkJrFmzhry8PCIjI9m1axdZWVlcfvnlHvucPHmSWbNm0a1bN7p3717u/X/99VcKCwtp0KABoaGh5ObmsmfPHjIyMujduzcBAQEVqlsWJfYiIiIiIiIXkeTkZI/e+iJjxozhH//4B/n5+QQFBXH8+HEmTpxI27Zt+dvf/uauV69ePcaMGcPkyZO9eu3nzZtHw4YN6d27d5WfR1paGgCHDh3i0KFDXtuLEnuAAQMGEBYWxu7duyksLCQmJoZhw4bRoEEDn47l6/4JCQkkJye7nxwQGBhInTp16NmzJ82aNatw3bIYnEVLFoqIiIiIiMhFKysri8GDB/P4449zww03lHv/wsJCBg4cyD333MPtt99eBRFKSbQqvoiIiIiIiBAeHs7dd9/NF198UeZK9MWZMmUKZrOZsWPHVkF0Uhr12IuIiIiIiIjUYuqxFxEREREREanFlNiLiIiIiIiI1GJK7EVERERERERqMSX2IiIiIiIiIrWYEnsRERERERGRWkyJvYiIiIiIiEgtpsReREREREREitWuXTvatWvn7zCkDErsRURERERERGoxJfYiIiIiIiIitZgSexEREREREZFaTIm9iIiIiIiISC2mxF5ERERERESkFlNiLyIiIiIiIlKLKbEXERERERERqcUMTqfT6e8gRET8KTU1y98hnDej0UBMTCinT+fgcPj3bd1sNhIVFUJGRi42m8OvsVzsatJ1ITWHrgspjq4LKU7RdQH4/XM9Li7cb8euDdRjLyJyATAaDRgMBoxGg79DwWQyYjAYMJn0EeNvNem6kJpD14UUR9eFFKfoutDnes2nn46IiIiIiIhILabEXkRERERERKQWU2IvIiIiIiIiUospsRcR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du/e7fNr5UusAGlpafzxj3+kR48etG3blu7duzN+/Hj2799frmOBazrLK6+8wogRI+jWrRtt27alR48e3HXXXezbt6/c7fmqT58+7Nixg8zMTLp37+4+z6+//hoofo59Udn27du555576NKlCx06dGDUqFFs374dgE8++YR+/frRrl07+vTpw6efflrs8b///nuGDx/u/j0aOHAgH330kfv6F5EqZjQQ/OUi/c6JiIjUMOXqsbfb7ZjNZo957QAGgwGz2UxWVhb5+fkEBQWV2gaA2ex96KKykydPEhYWhtPp5NSpU9SpU8erft26rt6C1NTUMuMuulEQHOzbEL2CggKc/1sgqCwBAQGYTKZS66xYsYLNmzdzySWX0LhxYwoLC/nll1/48ssvOXHiBO+8847XPq+//jpms5nrr7+e7OxsZsyYwSOPPMK9997Lhx9+yJVXXklcXBxz587l66+/pnnz5txyyy3ExMTw5JNP8uabb9K4cWOPxLK49QtKk5WVxR133EGXLl244447yM3NJSAggA0bNnD77bdjsVgYNGgQ8fHx7N69m8WLF7Njxw6mTJlCdHR0ie3u2LGD5cuX06NHD5o2bYrT6WT16tVMmTKFgwcP8vXXX2MymRgxYgQpKSksXLiQIUOG0LFjRwAaNSp+UaVWrVrRvHlzNmzYQGpqKnFxv6+EnJ2dzerVq2nRogWdOnUCXDdBRo0ahdVq5fLLL6d58+YcPXqUefPmcdttt/H999/TvHlzn16rsmLNysriuuuu4+TJk/Tq1YtOnTqxe/duli5dyi233ML3339P06ZNfToWgNVq5ccff6RLly707t2b8PBwtm/fzm+//ca4ceOYPn06derU8bk9Xz366KP885//JDMzk3vuuce9bsWll15a5r5//OMfiYiI4NZbb+XYsWPMmTOHBx54gBEjRjBlyhSuvPJKwsLCmD59On//+99p27Yt/fr1c+//8ssv8+2339KqVStuvvlmAgIC+PXXX3n33Xc5evQof/vb3yr9fEXEk8HuIOjfizlzQzuiomJLrmi1YcjM89zXaoNCK4a0LI9yZ3SohsWLiIicp3Il9tHR0Rw4cMCdbBc5deoUBQUFgCuBKi2xL0r4UlJSiI39/Y8Cm83GyZMn3W2AK8G22+3FDrc2mUwEBQWRm5tbaswOh4MNGzZgMBg8pg+UZsqU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oWCIiIiIGggm9kREZDFqtarCOplFHLEnIiIisiSptQMgIiLz5KqAWQkybE+VoEgLtPXQYWa0GhHuglnnX8gR4b14GY5miGEjBh5rrMWs9mp4KP6tk5ovQvR6hcnzv31UhaEB2nKvoVDYVRgHp+ITERERWRYTe6IynD9/HoMGDcKwYcMwZ84ca4cDADh37hzee+89pKSkoLCwEDExMVi2bJm1w6IaoBOAsXtscOauGC+EauCmELAsWYohO+XYM1CJILfyz79VAAzeIYejjYAZUWoUqEVYdEaKc3fF2DlACRuJYf1hARr09NMZlEV7Gv67Ke7uXsCN8uvkqQFBAETM74mIiIgsgok91TrBwcEmy2UyGZKSkix6rczMTHzxxReIjY1F//79Ldp2dXjttddw69YtjBgxAo0aNUJgYGC1Xm/OnDlwdnbG888/X63XoYptuSZBfKYES7sq8XizkgR7cDMtYn5VYO4pKZb0KH8kfUGiDIUaYPdAFRo7lIzwt/XQYeRuOValSPBkkOH54W4CRgaW36YpN29eBRBZbh21ToRCDWAvq3TzRERERGQCE3uqlQICAjBs2DCDMqnU8t01OzsbGzZsAIBan9gXFRXh8uXL6NmzJ957770aueavv/4Kd3d3Jva1wJarYngqBAxo+u+ouYcCGNRMi/WXJVBqy0/Ct16ToFdjrT6pB4CuvjoEOumw6apxYg8ABWpAJobRaL4l3FWKYC8zbwkBEREREZWPiT3VSt7e3pg6daq1w6hR+fn5sLGxgY2NjcnjN26UzG92dnauybCqjVKphEajgb29vbVDqRMSs8WIcNdB/MD09SgPHX68IEVKrgjeHqbPvV0A3CkWIdLDOJFu66HD3pvGmfu8v6WYeVwGEQREugt4u60a3f3MnIp/p+L7yVYCjR0qrkdEREREFeOu+FRrFRUVITc3t0rnqlQqzJw5E126dEFISAjatGmDkSNH4tixY/o627dvx6BBgwAAGzZsQHBwMIKDg9GhQwej9lavXo2ePXsiJCQE7dq1wyuvvAKVynj378TEREyYMAHt2rVD69at0aFDB7zyyitG9xEXF4fg4GDcvHkTEydORFRUFNq1a4crV66YvJ+4uDgMHDjQKNbt27fr63z//ffo06cPwsPDERoaisceewzLly83auv777/H8OHD0b59e/1nM2LECBw9etSg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tUZ1HGQ1HxcRERFRfcbEnoiILMr2n28WX3vAXcrReSIiIqLqxqn4RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdxsSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTERERERER1WFM7ImIiIiIiIjqMCb2RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdxsSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTERERERER1WFM7ImIiIiIiIjqMCb2RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdJhIEQbB2EERE1lRffg2KRKJacy+1KZaGjj8LMoX9gkxhvyBTRCIRAOv/vVQaB5nGxJ6IqB4o/VVeG770NBoNAEAqlVo5EqpN/YJqD/YLMoX9gkxhv6g7mNgTEdUDPXv2BADs3bvXypEAISEhAICzZ89aORKqTf2Cag/2CzKF/YJMYb+oO7jGnoiIiIiIiKgOY2JPREREREREVIcxsSciIiIiIiKqw5jYExEREREREdVhTOyJiIiIiIiI6jAm9kRERERERER1GF93R0RERERERFSHccSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTERERERER1WFM7ImIiIiIiIjqMCb2RERERERERHWY1NoBEBFR1eh0OqxYsQKrVq3CzZs34ebmhn79+uGll16CnZ2dtcMjKwkODjZZbmdnh5MnT9ZwNFTTvv32W5w5cwZnzpzBjRs34Ofnh99//73M+n///Tfmz5+Pv//+GyKRCG3btsXrr7+O1q1b12DUVN0q0y/eeust/PrrryaPffnll+jbt291hko16MqVK9i8eTMOHjyI1NRUKJVKNGnSBH379sVTTz1l9LfE5cuXMW/ePMTHx0OtViMkJAQvvvgiYmJirHQHdD8m9kREddTs2bPx448/olevXpg0aRJSUlLw448/4uzZs1i2bBnEYk7Kaqiio6MxatQogzKZTGalaKgmffHFF3BxcUFISAju3btXbt1Tp05hwoQJaNSoEV5++WUAwMqVKzF27FisWrWqzIdEVPdUpl+Umjt3rlFZRESEpUMjK1q/fj1++ukn9OjRA48//jikUimOHj2KBQsW4LfffsOaNWugUCgAAKmpqRgzZgwkEgmefvppODg4YO3atXj66aexePFidOrUycp3Q0zsiYjqoIsXL2LlypXo3bs3vvrqK31548aN8fHHH2Pbtm14/PHHrRghWZO/vz8GDx5s7TDICvbs2QN/f38AwMCBA1FYWFhm3Y8//hgymQw//fQTGjVqBADo168f+vXrh88++wzff/99jcRM1a8y/aIUf4fUf3369MEzzzwDR0dHfdmYMWPQtGlTfPPNN1i3bh3Gjx8PAPj888+Rl5eHDRs26Gf0DBkyBAMHDsTMmTOxY8cOiEQiq9wHleBwDhFRHbR161YIgoCnnnrKoHzUqFGwtbXF5s2brRQZ1RYqlQoFBQXWDoNqWGnyVpFr164hMTERffv21Sf1ANCoUSP07dsXhw4dQmZmZnWFSTXM3H5xP0EQkJ+fD51OVw0RUW0QHh5ukNSX6t+/PwDgwoULAIDCwkL8/vvv6NChg8EyHXt7e4wYMQJXr15FYmJizQRNZWJiT0RUByUlJUEsFhtNi5TL5WjVqhW/YBu4nTt3ok2bNoiKikJMTAw++ugjs6ffUsNQ+juibdu2RsfatGkDQRBw5syZmg6LapF27dqhXbt2iIiIwMSJE/H3339bOySqIWlpaQAADw8PAMD58+ehUqnQpk0bo7qlZfy7w/o4FZ+IqA7KyMiAq6srbGxsjI41atQIJ0+ehEqlMnmc6reIiAj07dsXTZs2RX5+Pvbv34+VK1fi2LFjWLVqFezt7a0dItUCGRkZAAAvLy+jY6Uj+Onp6TUaE9UOHh4eiIuLQ2hoKOzs7JCcnIzly5dj3Lhx+O6777iWup7TarX4+uuvIZVKMXDgQAD//r64f3ZPKf6+qD2Y2BMR1UFFRUVlJu1yuRwAUFxczMS+AVq7dq3Bvw8ZMgTBwcGYP38+VqxYgeeee85KkVFtUlRUBAAmf0eUlpXWoYbl9ddfN/j3xx57DAMHDsSQIUPw4YcfYteuXVaKjGrC7NmzcfLkSbz22mto3rw5gPJ/X5T+zcHfF9bHqfhERHWQra0tVCqVyWNKpRIA9DvZEk2ePBkymQz79++3dihUS9ja2gKAyd8jpWWldYiaNWuGfv364dq1a7hy5Yq1w6FqsmDBAqxcuRKjR4/GM888oy8v7/dF6d8c/H1hfUzsiYjqIC8vL9y9e9fkl2x6enqZ0/SpYZLJZPo+QwT8OwW/dIrt/Uqn1JqadksNl5+fHwDw90g99dVXX+Hrr7/GsGHDMHPmTINjpb8vTE235++L2oOJPRFRHRQWFgadTofTp08blCuVSiQnJyMsLMxKkVFtpFQqkZ6eDnd3d2uHQrVEeHg4AODkyZNGx06dOgWRSITQ0NCaDotqsatXrwL4d0M1qj+++uorLFy4EEOHDsUnn3xi9Nq6oKAg2NjY4NSpU0bnlpbx7w7rY2JPRFQH9e/fHyKRCMuXLzcoX7NmDYqKivgO+waqrJG0BQsWQKPRoHv37jUcEdVWTZs2RVhYGHbs2GEwCpeeno4dO3agY8eO8PT0tGKEZA2FhYX6qdX3O3v2LHbs2IHAwEA0adLECpFRdVm4cCEWLlyIwYMHY/bs2RCLjdNDe3t7dO/eHceOHUNycrK+vKCgAOvWrUOzZs2M3tJDNU8kCIJg7SCIiKjyPvroI6xcuRK9evVC165dkZKSgh9//BFRUVFYvny5yS9nqt9mz56Nv//+G4888gh8fHxQWFiI/fv34+jRo4iMjMSKFSu490I9t3HjRty6dQsAsHLlSqjVakycOBEA4OvriyFDhujrnjhxAk8++SS8vb0xfvx4/TlZWVn45Zdf0KpVqxqPn6qHuf3i3LlzmDJlCnr27IlmzZrB1tYWycnJWL9+PcRiMZYuXYro6Ghr3QZZ2E8//YRZs2bB19cXL7/8stFIvYeHBzp37gwAuHbtGkaOHAmpVIq4uDjY29tj7dq1uHDhAr799lvExsZa4xboPkzsiYjqKK1Wi+XLl2P16tW4efMmXF1d0b9/f7z00kt8pVkDtWfPHvzyyy+4cOECcnJyIJFI0LRpU/Tr1w8TJ07U715M9deECRNw7Ngxk8c6dOiAH3/80aDs5MmTWLBggX5ZT1RUFF577TVOw69nzO0XmZmZmDt3LhITE5GRkQGlUglPT0888sgjmDp1KgIDA2sybKpmb731Fn799dcyjz/4OyMlJQXz5s1DfHw81Go1QkJC8OKLL/IViLUEE3siIiIiIiKiOozzNImIiIiIiIjqMCb2RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdxsSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTEZGRt956C8HBwQgODsbAgQONjut0OixatAiPPfYYQkND8dhjjwEAFi9ejL59+0Kn01Xpur/88gu6desGlUpldGzZsmX6mIKDg5GdnV2laxARERHVN1JrB0BERDXrwIEDePrpp8s8/tlnnwEAXF1d8fbbb8PJycmozs8//4z//ve/mDhxIoKDg+Hl5YX8/HwsWbIE06dPh1hs+Nx44cKFWLhwIbZt24bAwECDY2+//TY2btyIr7/+GsOGDcPChQuxatUqPPnkkwb1YmNj4erqit27d2P37t1Vvf0qUavV+Pvvv5GRkYHMzEwolUp07doVwcHBZp2fnZ2N48eP486dOygsLIRUKoWrqysiIyPRtGnTKl3nYWMiIiKi+oOJPRFRA5OcnAwAePfdd00m7bGxsThy5Ajs7OwwePBgk21s2LABnTt3xptvvqkvW7ZsGTQajckR/jFjxuC7777D8uXLMWvWLH35jz/+iA0bNuCVV15Bt27dAABDhgzBsmXLMGHCBIhEIn3dwMBABAYGIjU1tcYT++LiYpw4cQIODg5wc3PD7du3K3V+fn4+1Go1goKCYGdnB41GgytXrmDnzp2IjY1F69atK32dh42JiIiI6g8m9kREDcz58+fh6OiI8ePHGyTO5lIqlUhOTsaLL75oUL5hwwb06NEDcrnc6Bx3d3c8/vjj2LRpE1555RW4ubnh2LFj+PTTT9GnTx8899xz+rr9+vXDkiVLcOTIEcTExFT+BquBnZ0dxo8fDzs7O2RmZuLXX3+t1PlNmjRBkyZNDMpCQ0Px66+/4vTp0/rEvjLXediYiIiIqP7gGnsiogbm/PnzaN26dZWS+nfeeQcRERHQarVYsGABgoODMXr0aFy/fh3nz59Hp06dyjw3Li4OxcXFWLVqFW7fvo1XXnkFzZs3x5w5cwzqhYWFwcXFBXv37q10fNVFIpHAzs7Oom2KxWLY29sb7CdQmetUR0xERERUN3HEnoioAVGpVLhy5QqGDx9ucvM5R0dHyGSyMs9//PHHIZVKsXr1asyYMQPOzs7w8/PDyZMnAQAhISFlntuyZUt06dIFP//8M/bs2QONRoP//e9/sLe3N6obEhKCEydOVOEOjel0OpOb8Zkil8ur9MDDXGq1GlqtFiqVClevXsX169eN9hwgIiIiqiwm9kREDUhKSgrUajVWrVqFVatWGR3fsWMHAgICyjw/JiZGv/5+/Pjx+k3yFixYAABo3LhxudePi4vD008/jaysLHz33XdG09NL+fv7WyyxT0tLw9atW82qO2bMGDg6OlrkuqYcOXIE586dAwCIRCI0a9YMnTt3rrbrERERUcPAxJ6IqAE5f/48AODTTz9Fo0aNjI43a9bMrDZatGhhsPN9Tk4OpFKpydH3+6WkpAAoSdxjY2PLrOfk5ITi4mIUFRXB1ta2wpjK4+7ujv79+5tV92GvVZHw8HAEBASgsLAQly9fhiAI0Gq11XpNIiIiqv+Y2BMRNSDJycmQSqUYMGAAbGxsqtxGly5dKn3eoUOHMHfuXDRr1gxXr17FX3/9VWY7giAAgEWmxcvl8gpnEtQUFxcXuLi4AACCgoKwbds27Ny5E0OGDKnWJQBERERUv3HzPCKiBuT8+fNo3LhxlZP6vLw83L59G0FBQQblLi4u0Gg0yM/PN3ne9evX8eqrr6J169ZYt24d3N3dsWzZsnKvY2trC4VCUaU476fValFYWGjW/3Q63UNfrzKaN2+OzMxM5Obm1uh1iYiIqH7hiD0RUQNy/vx5REZGPtT5ABAcHGxQ3rx5cwDAjRs30KpVK4NjBQUFeP755yGVSvG///0Pjo6OGDt2LBYuXIiUlBSTm8fduHFD3+bDSk9PrzVr7B+k0WgAwOzN/YiIiIhMYWJPRNRAZGZmIisr66ES5uTkZADGiX3btm0BAElJSQaJvSAImD59Oq5cuYLly5fD29sbADB27Fh89913WL58OWbNmmV0nbNnz+Lxxx+vcpz3q8k19qWzFhQKhcFsA1N7Beh0Oly8eBESiQSurq4PdV0iIiJq2JjYExE1EKVJeXZ2NjZt2mR0vFWrVkYJ+4POnz+PRo0a6deJl/L390dQUBAOHz6MESNG6Mu/+uor7NmzB7NmzUK7du305W5ubhg0aBA2bdqEV1991SCxTUpKQk5ODnr27FmV2zRiqTX2SUlJUKlUKCwsBABcu3YNBQUFAICwsDDY2NggIyMDW7duRVRUFKKjo/XnHjhwACqVCj4+PrC3t0dhYSEuXbqEnJwcdOzY0eAVg+Zcpyp1iYiIqP5iYk9E1ECUTqPfsGEDNmzYYHT8s88+MyuxL6vO8OHD8eWXX6K4uBgKhQK7d+/GokWL8MQTT2D06NFG9ePi4rBu3TqsWrUKzz33nL58x44d8PX1RceOHStze9Xu9OnTBnsIXL16FVevXgUAtGzZstwkunnz5jh//jzOnj2L4uJi2NjYwMPDAx06dDB6E0FlrvMwMREREVH9IRJKtx4mIiL6x1tvvYUjR45gw4YNkEqlcHJyqvCce/fu4bHHHsPrr7+OkSNHVum6KpUKPXr0wJQpU/DUU08ZHFMqlSgoKMCSJUuwdOlSHD58GG5ublW6DhEREVF9wl3xiYjIpNu3byMmJgZjx441q76joyMmT56MpUuXVnl3+fXr10MqlWLMmDFGx3755RfExMRg6dKlVWqbiIiIqL7iiD0RERm5dOkSMjIyAAB2dnZo06aNdQNCyYOGK1eu6P+9ffv2BmvTiYiIiBoqJvZEREREREREdRin4hMRERERERHVYUzsiYiIiIiIiOowJvZEREREREREdRgTeyIiIiIiIqI6jIk9ERERERERUR3GxJ6IiIiIiIioDmNiT0RERERERFSHMbEnIiIiIiIiqsOY2BMRERERERHVYUzsiYiIiIiIiOqw/wcQ5BH6XXKWBAAAAABJRU5ErkJggg==\n"},"metadata":{}}],"execution_count":75},{"id":"d1d82773-d37d-45e0-b013-651cf0e3d148","cell_type":"markdown","source":"### **Interpretation of the Fraud Case (Index 1006)**\n\n**1. The \"Smoking Gun\" Score**\n\n* **Final Score ($f(x)$): 20.033**\n* Compared to the legitimate transaction score of **-11.87**, this is a massive swing.\n* A score of +20 translates to a probability of **99.999% Fraud**. The model has zero doubt about this transaction.\n\n\n\n**2. The Anatomy of the Fraud (Red Bars)**\nEvery major feature pushed the score to the **right** (indicating higher risk).\n\n* **`amt_log` (+8.83 Impact):** This is the dominant signal. The transaction amount (1.304 on the log scale) was the primary trigger. Fraudsters typically try to drain funds quickly, and your model has learned that high value = high risk.\n\n\n* **`hour_sin` (+2.46 Impact):** The time of day was a strong risk factor. This likely occurred during the \"night\" window (0-4 AM) where you previously identified a high density of fraud.\n\n\n* \n**`job` (+1.72 Impact):** The cardholder's profession had a high Weight of Evidence (WoE) score, suggesting this account type is historically targeted or susceptible.\n\n\n* **`amt_to_avg_ratio_24h` (+1.24 Impact):** This is your **custom engineered feature** in action. It confirms the transaction was not just \"large\" in general, but large *relative to this specific user's recent history*. This proves the value of your behavioral feature engineering.","metadata":{}}]} \ No newline at end of file diff --git a/notebook/README.md b/notebook/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9cebb4a960eaea0d7dbe4e520ea736076c39b5f8 --- /dev/null +++ b/notebook/README.md @@ -0,0 +1,122 @@ +# πŸ›‘οΈ Behavioral Fraud Detection System (XGBoost + SHAP) + +**A production-grade machine learning pipeline identifying fraudulent credit card transactions with 97% precision and explainable AI.** + +## πŸ’Ό Executive Summary & Business Impact + +Financial fraud detection is not just about accuracy; it's about the **Precision-Recall trade-off**. A model that flags too many legitimate transactions (False Positives) causes customer churn, while missing fraud (False Negatives) causes direct financial loss. + +This project implements a cost-sensitive **XGBoost** classifier engineered to minimize **operational friction**. By optimizing the decision threshold to **0.895**, the system achieved: + +| Metric | Performance | Business Value | +| --- | --- | --- | +| **Precision** | **97%** | Only 3% of alerts are false alarms, drastically reducing manual review costs. | +| **Recall** | **80%** | Captures 80% of all fraud attempts (approx. $810k in prevented loss). | +| **Net Savings** | **$810,470** | Calculated ROI on the test set (Loss Prevented - Operational Costs). | +| **Latency** | **<50ms** | Inference speed optimized via `scikit-learn` Pipeline serialization. | + +--- + +## πŸ—οΈ Technical Architecture + +The solution moves beyond basic "fit-predict" workflows by implementing a robust preprocessing pipeline designed to prevent **data leakage** and handle extreme class imbalance (0.5% fraud rate). + +### 1. Advanced Feature Engineering + +Raw transaction data is insufficient for modern fraud. I engineered **14 behavioral features** to capture context: + +* **Velocity Metrics (`trans_count_24h`, `amt_to_avg_ratio_24h`)**: Detects "burst" behavior where a card is used rapidly or for amounts exceeding the user's historical norm. +* **Geospatial Analysis (`distance_km`)**: Calculates the Haversine distance between the cardholder's home and the merchant. +* **Cyclical Temporal Encoding (`hour_sin`, `hour_cos`)**: Captures high-risk time windows (e.g., 3 AM surges) while preserving the 24-hour cycle continuity. +* **Risk Profiling (`WOEEncoder`)**: Replaces high-cardinality categorical features (Merchant, Job) with their "Weight of Evidence" - a measure of how much a specific category supports the "Fraud" hypothesis. + +### 2. The Pipeline + +To ensure production stability, all steps are wrapped in a single Scikit-Learn `Pipeline`: + +```python +pipeline = Pipeline(steps=[ + ('preprocessor', ColumnTransformer(transformers=[ + ('cat', WOEEncoder(), ['job', 'category']), + ('num', RobustScaler(), numerical_features) + ])), + ('classifier', XGBClassifier(scale_pos_weight=imbalance_ratio, ...)) +]) + +``` + +--- + +## πŸ“Š Model Performance + +### Precision-Recall Strategy + +Instead of optimizing for ROC-AUC (which can be misleading in imbalanced datasets), I optimized for **PR-AUC (0.998)**. + +* **Default Threshold (0.50):** Precision was 65%. Too many false alarms. +* **Optimized Threshold (0.895):** Precision increased to **97%**, with minimal loss in Recall. + +*(Insert your Precision-Recall Curve image here)* + +--- + +## πŸ” Explainability & "The Why" + +Black-box models are dangerous in finance. I implemented **SHAP (SHapley Additive exPlanations)** to provide reason codes for every decision. + +### The "Smoking Gun" (Fraud Example) + +For a transaction flagged with **99.9% confidence**, the SHAP Waterfall plot reveals the exact drivers: + +1. **`amt_log` (+8.83)**: The transaction amount was significantly higher than normal. +2. **`hour_sin` (+2.46)**: The transaction occurred during a high-risk time window (late night). +3. **`job` (+1.72)**: The cardholder's profession falls into a statistically higher-risk segment. +4. **`amt_to_avg_ratio_24h` (+1.24)**: The amount was an outlier *specifically* for this user's 24-hour history. + +*(Insert your SHAP Waterfall Plot image here)* + +--- + +## πŸš€ How to Run + +### Prerequisites + +```bash +pip install pandas xgboost category_encoders shap scikit-learn + +``` + +### Inference + +The model is serialized as a `.pkl` file. You can load it to predict on new data immediately without re-training. + +```python +import joblib +import pandas as pd + +# Load the production pipeline +model = joblib.load('fraud_detection_model_v1.pkl') + +# Define a new transaction (Example) +new_transaction = pd.DataFrame([{ + 'amt_log': 5.2, + 'distance_km': 120.5, + 'trans_count_24h': 12, + 'amt_to_avg_ratio_24h': 4.5, + # ... include all 14 features +}]) + +# Get prediction (Probability of Fraud) +fraud_prob = model.predict_proba(new_transaction)[:, 1] +is_fraud = (fraud_prob >= 0.895).astype(int) + +print(f"Fraud Probability: {fraud_prob[0]:.4f}") +print(f"Action: {'BLOCK' if is_fraud[0] else 'APPROVE'}") + +``` + +--- + +### **Author** + +**Sibi Krishnamoorthy** *Machine Learning Engineer | Fintech & Risk Analytics* \ No newline at end of file diff --git a/notebook/credit-card-fraud-detection.ipynb b/notebook/credit-card-fraud-detection.ipynb new file mode 100755 index 0000000000000000000000000000000000000000..b29fa420b49417500966f5d782cdbd4c43c92ad7 --- /dev/null +++ b/notebook/credit-card-fraud-detection.ipynb @@ -0,0 +1,6111 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "5444e401-7cf9-4045-9c6d-4abc569cfd7a", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:32:57.421959Z", + "iopub.status.busy": "2026-01-17T19:32:57.421566Z", + "iopub.status.idle": "2026-01-17T19:32:57.432843Z", + "shell.execute_reply": "2026-01-17T19:32:57.432135Z", + "shell.execute_reply.started": "2026-01-17T19:32:57.421922Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/kaggle/input/fraud-detection/fraudTest.csv\n", + "/kaggle/input/fraud-detection/fraudTrain.csv\n" + ] + } + ], + "source": [ + "# Input data files are available in the read-only \"../input/\" directory\n", + "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n", + "\n", + "import os\n", + "\n", + "for dirname, _, filenames in os.walk(\"/kaggle/input\"):\n", + " for filename in filenames:\n", + " print(os.path.join(dirname, filename))\n", + "\n", + "# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\"\n", + "# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "63b24546-88e8-4443-9f29-7c4505daa6b1", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:32:57.434132Z", + "iopub.status.busy": "2026-01-17T19:32:57.433844Z", + "iopub.status.idle": "2026-01-17T19:33:00.862059Z", + "shell.execute_reply": "2026-01-17T19:33:00.861086Z", + "shell.execute_reply.started": "2026-01-17T19:32:57.434102Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: shap in /usr/local/lib/python3.12/dist-packages (0.50.0)\n", + "Requirement already satisfied: numpy>=2 in /usr/local/lib/python3.12/dist-packages (from shap) (2.0.2)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.12/dist-packages (from shap) (1.15.3)\n", + "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.12/dist-packages (from shap) (1.6.1)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.12/dist-packages (from shap) (2.2.2)\n", + "Requirement already satisfied: tqdm>=4.27.0 in /usr/local/lib/python3.12/dist-packages (from shap) (4.67.1)\n", + "Requirement already satisfied: packaging>20.9 in /usr/local/lib/python3.12/dist-packages (from shap) (26.0rc2)\n", + "Requirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.12/dist-packages (from shap) (0.0.8)\n", + "Requirement already satisfied: numba>=0.54 in /usr/local/lib/python3.12/dist-packages (from shap) (0.60.0)\n", + "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.12/dist-packages (from shap) (3.1.1)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.12/dist-packages (from shap) (4.15.0)\n", + "Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.54->shap) (0.43.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2025.2)\n", + "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn->shap) (1.5.3)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn->shap) (3.6.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas->shap) (1.17.0)\n" + ] + } + ], + "source": [ + "!pip install --upgrade shap" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f26f0479-2a1a-4bf3-8b13-7ebfc0900869", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:00.863901Z", + "iopub.status.busy": "2026-01-17T19:33:00.863443Z", + "iopub.status.idle": "2026-01-17T19:33:01.856326Z", + "shell.execute_reply": "2026-01-17T19:33:01.855732Z", + "shell.execute_reply.started": "2026-01-17T19:33:00.863852Z" + } + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "pd.set_option(\"display.max_columns\", None)\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "sns.set(rc={\"figure.figsize\": (18, 8)}, style=\"darkgrid\")\n", + "sns.set_palette(\"rocket\")\n", + "from time import time\n", + "import warnings\n", + "\n", + "warnings.filterwarnings(\"ignore\")\n", + "from sklearn.model_selection import TimeSeriesSplit" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e5f026d8-9a7c-46e6-acce-c19767e2dbcc", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:01.857835Z", + "iopub.status.busy": "2026-01-17T19:33:01.857343Z", + "iopub.status.idle": "2026-01-17T19:33:01.861735Z", + "shell.execute_reply": "2026-01-17T19:33:01.861044Z", + "shell.execute_reply.started": "2026-01-17T19:33:01.857801Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.metrics import *" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "909f283b-c0e9-470c-8f99-fe2ddeb3cedd", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:01.864320Z", + "iopub.status.busy": "2026-01-17T19:33:01.864103Z", + "iopub.status.idle": "2026-01-17T19:33:07.981218Z", + "shell.execute_reply": "2026-01-17T19:33:07.980387Z", + "shell.execute_reply.started": "2026-01-17T19:33:01.864300Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry CoveMoravian FallsNC2865436.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393OrientWA9916048.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530Malad CityID8325242.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038BoulderMT5963246.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley RestDoe HillVA2443338.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 trans_date_trans_time cc_num \\\n", + "0 0 2019-01-01 00:00:18 2703186189652095 \n", + "1 1 2019-01-01 00:00:44 630423337322 \n", + "2 2 2019-01-01 00:00:51 38859492057661 \n", + "3 3 2019-01-01 00:01:16 3534093764340240 \n", + "4 4 2019-01-01 00:03:06 375534208663984 \n", + "\n", + " merchant category amt first \\\n", + "0 fraud_Rippin, Kub and Mann misc_net 4.97 Jennifer \n", + "1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 Stephanie \n", + "2 fraud_Lind-Buckridge entertainment 220.11 Edward \n", + "3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 Jeremy \n", + "4 fraud_Keeling-Crist misc_pos 41.96 Tyler \n", + "\n", + " last gender street city state zip \\\n", + "0 Banks F 561 Perry Cove Moravian Falls NC 28654 \n", + "1 Gill F 43039 Riley Greens Suite 393 Orient WA 99160 \n", + "2 Sanchez M 594 White Dale Suite 530 Malad City ID 83252 \n", + "3 White M 9443 Cynthia Court Apt. 038 Boulder MT 59632 \n", + "4 Garcia M 408 Bradley Rest Doe Hill VA 24433 \n", + "\n", + " lat long city_pop job dob \\\n", + "0 36.0788 -81.1781 3495 Psychologist, counselling 1988-03-09 \n", + "1 48.8878 -118.2105 149 Special educational needs teacher 1978-06-21 \n", + "2 42.1808 -112.2620 4154 Nature conservation officer 1962-01-19 \n", + "3 46.2306 -112.1138 1939 Patent attorney 1967-01-12 \n", + "4 38.4207 -79.4629 99 Dance movement psychotherapist 1986-03-28 \n", + "\n", + " trans_num unix_time merch_lat merch_long \\\n", + "0 0b242abb623afc578575680df30655b9 1325376018 36.011293 -82.048315 \n", + "1 1f76529f8574734946361c461b024d99 1325376044 49.159047 -118.186462 \n", + "2 a1a22d70485983eac12b5b88dad1cf95 1325376051 43.150704 -112.154481 \n", + "3 6b849c168bdad6f867558c3793159a81 1325376076 47.034331 -112.561071 \n", + "4 a41d7549acf90789359a9aa5346dcb46 1325376186 38.674999 -78.632459 \n", + "\n", + " is_fraud \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train = pd.read_csv(\"/kaggle/input/fraud-detection/fraudTrain.csv\")\n", + "train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "04cea965-d858-4cbb-9f74-3cc0d924c695", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:07.982527Z", + "iopub.status.busy": "2026-01-17T19:33:07.982244Z", + "iopub.status.idle": "2026-01-17T19:33:10.451487Z", + "shell.execute_reply": "2026-01-17T19:33:10.450900Z", + "shell.execute_reply.started": "2026-01-17T19:33:07.982500Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002020-06-21 12:14:252291163933867244fraud_Kirlin and Sonspersonal_care2.86JeffElliottM351 Darlene GreenColumbiaSC2920933.9659-80.9355333497Mechanical engineer1968-03-192da90c7d74bd46a0caf3777415b3ebd3137181686533.986391-81.2007140
112020-06-21 12:14:333573030041201292fraud_Sporer-Keeblerpersonal_care29.84JoanneWilliamsF3638 Marsh UnionAltonahUT8400240.3207-110.4360302Sales professional, IT1990-01-17324cc204407e99f51b0d6ca0055005e7137181687339.450498-109.9604310
222020-06-21 12:14:533598215285024754fraud_Swaniawski, Nitzsche and Welchhealth_fitness41.28AshleyLopezF9333 Valentine PointBellmoreNY1171040.6729-73.536534496Librarian, public1970-10-21c81755dbbbea9d5c77f094348a7579be137181689340.495810-74.1961110
332020-06-21 12:15:153591919803438423fraud_Haley Groupmisc_pos60.05BrianWilliamsM32941 Krystal Mill Apt. 552TitusvilleFL3278028.5697-80.819154767Set designer1987-07-252159175b9efe66dc301f149d3d5abf8c137181691528.812398-80.8830610
442020-06-21 12:15:173526826139003047fraud_Johnston-Caspertravel3.19NathanMasseyM5783 Evan Roads Apt. 465FalmouthMI4963244.2529-85.01701126Furniture designer1955-07-0657ff021bd3f328f8738bb535c302a31b137181691744.959148-85.8847340
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 trans_date_trans_time cc_num \\\n", + "0 0 2020-06-21 12:14:25 2291163933867244 \n", + "1 1 2020-06-21 12:14:33 3573030041201292 \n", + "2 2 2020-06-21 12:14:53 3598215285024754 \n", + "3 3 2020-06-21 12:15:15 3591919803438423 \n", + "4 4 2020-06-21 12:15:17 3526826139003047 \n", + "\n", + " merchant category amt first \\\n", + "0 fraud_Kirlin and Sons personal_care 2.86 Jeff \n", + "1 fraud_Sporer-Keebler personal_care 29.84 Joanne \n", + "2 fraud_Swaniawski, Nitzsche and Welch health_fitness 41.28 Ashley \n", + "3 fraud_Haley Group misc_pos 60.05 Brian \n", + "4 fraud_Johnston-Casper travel 3.19 Nathan \n", + "\n", + " last gender street city state zip \\\n", + "0 Elliott M 351 Darlene Green Columbia SC 29209 \n", + "1 Williams F 3638 Marsh Union Altonah UT 84002 \n", + "2 Lopez F 9333 Valentine Point Bellmore NY 11710 \n", + "3 Williams M 32941 Krystal Mill Apt. 552 Titusville FL 32780 \n", + "4 Massey M 5783 Evan Roads Apt. 465 Falmouth MI 49632 \n", + "\n", + " lat long city_pop job dob \\\n", + "0 33.9659 -80.9355 333497 Mechanical engineer 1968-03-19 \n", + "1 40.3207 -110.4360 302 Sales professional, IT 1990-01-17 \n", + "2 40.6729 -73.5365 34496 Librarian, public 1970-10-21 \n", + "3 28.5697 -80.8191 54767 Set designer 1987-07-25 \n", + "4 44.2529 -85.0170 1126 Furniture designer 1955-07-06 \n", + "\n", + " trans_num unix_time merch_lat merch_long \\\n", + "0 2da90c7d74bd46a0caf3777415b3ebd3 1371816865 33.986391 -81.200714 \n", + "1 324cc204407e99f51b0d6ca0055005e7 1371816873 39.450498 -109.960431 \n", + "2 c81755dbbbea9d5c77f094348a7579be 1371816893 40.495810 -74.196111 \n", + "3 2159175b9efe66dc301f149d3d5abf8c 1371816915 28.812398 -80.883061 \n", + "4 57ff021bd3f328f8738bb535c302a31b 1371816917 44.959148 -85.884734 \n", + "\n", + " is_fraud \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test = pd.read_csv(\"/kaggle/input/fraud-detection/fraudTest.csv\")\n", + "test.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7ff01d64-72e6-46fc-b062-a4768f7e9f13", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:10.452561Z", + "iopub.status.busy": "2026-01-17T19:33:10.452340Z", + "iopub.status.idle": "2026-01-17T19:33:11.907517Z", + "shell.execute_reply": "2026-01-17T19:33:11.906747Z", + "shell.execute_reply.started": "2026-01-17T19:33:10.452540Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraudsplit
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry CoveMoravian FallsNC2865436.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150train
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393OrientWA9916048.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620train
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530Malad CityID8325242.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810train
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038BoulderMT5963246.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710train
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley RestDoe HillVA2443338.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590train
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 trans_date_trans_time cc_num \\\n", + "0 0 2019-01-01 00:00:18 2703186189652095 \n", + "1 1 2019-01-01 00:00:44 630423337322 \n", + "2 2 2019-01-01 00:00:51 38859492057661 \n", + "3 3 2019-01-01 00:01:16 3534093764340240 \n", + "4 4 2019-01-01 00:03:06 375534208663984 \n", + "\n", + " merchant category amt first \\\n", + "0 fraud_Rippin, Kub and Mann misc_net 4.97 Jennifer \n", + "1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 Stephanie \n", + "2 fraud_Lind-Buckridge entertainment 220.11 Edward \n", + "3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 Jeremy \n", + "4 fraud_Keeling-Crist misc_pos 41.96 Tyler \n", + "\n", + " last gender street city state zip \\\n", + "0 Banks F 561 Perry Cove Moravian Falls NC 28654 \n", + "1 Gill F 43039 Riley Greens Suite 393 Orient WA 99160 \n", + "2 Sanchez M 594 White Dale Suite 530 Malad City ID 83252 \n", + "3 White M 9443 Cynthia Court Apt. 038 Boulder MT 59632 \n", + "4 Garcia M 408 Bradley Rest Doe Hill VA 24433 \n", + "\n", + " lat long city_pop job dob \\\n", + "0 36.0788 -81.1781 3495 Psychologist, counselling 1988-03-09 \n", + "1 48.8878 -118.2105 149 Special educational needs teacher 1978-06-21 \n", + "2 42.1808 -112.2620 4154 Nature conservation officer 1962-01-19 \n", + "3 46.2306 -112.1138 1939 Patent attorney 1967-01-12 \n", + "4 38.4207 -79.4629 99 Dance movement psychotherapist 1986-03-28 \n", + "\n", + " trans_num unix_time merch_lat merch_long \\\n", + "0 0b242abb623afc578575680df30655b9 1325376018 36.011293 -82.048315 \n", + "1 1f76529f8574734946361c461b024d99 1325376044 49.159047 -118.186462 \n", + "2 a1a22d70485983eac12b5b88dad1cf95 1325376051 43.150704 -112.154481 \n", + "3 6b849c168bdad6f867558c3793159a81 1325376076 47.034331 -112.561071 \n", + "4 a41d7549acf90789359a9aa5346dcb46 1325376186 38.674999 -78.632459 \n", + "\n", + " is_fraud split \n", + "0 0 train \n", + "1 0 train \n", + "2 0 train \n", + "3 0 train \n", + "4 0 train " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test[\"split\"] = \"test\"\n", + "train[\"split\"] = \"train\"\n", + "df = pd.concat([train, test], axis=0).reset_index(drop=True)\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "46441191-f54c-4973-9fa4-b3cf994b10b9", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:11.908908Z", + "iopub.status.busy": "2026-01-17T19:33:11.908588Z", + "iopub.status.idle": "2026-01-17T19:33:11.917874Z", + "shell.execute_reply": "2026-01-17T19:33:11.917157Z", + "shell.execute_reply.started": "2026-01-17T19:33:11.908880Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 1852394 entries, 0 to 1852393\n", + "Data columns (total 24 columns):\n", + " # Column Dtype \n", + "--- ------ ----- \n", + " 0 Unnamed: 0 int64 \n", + " 1 trans_date_trans_time object \n", + " 2 cc_num int64 \n", + " 3 merchant object \n", + " 4 category object \n", + " 5 amt float64\n", + " 6 first object \n", + " 7 last object \n", + " 8 gender object \n", + " 9 street object \n", + " 10 city object \n", + " 11 state object \n", + " 12 zip int64 \n", + " 13 lat float64\n", + " 14 long float64\n", + " 15 city_pop int64 \n", + " 16 job object \n", + " 17 dob object \n", + " 18 trans_num object \n", + " 19 unix_time int64 \n", + " 20 merch_lat float64\n", + " 21 merch_long float64\n", + " 22 is_fraud int64 \n", + " 23 split object \n", + "dtypes: float64(5), int64(6), object(13)\n", + "memory usage: 339.2+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "27a6f718-5f88-44a8-9649-c5c208cf4207", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:11.919014Z", + "iopub.status.busy": "2026-01-17T19:33:11.918739Z", + "iopub.status.idle": "2026-01-17T19:33:12.489945Z", + "shell.execute_reply": "2026-01-17T19:33:12.489293Z", + "shell.execute_reply.started": "2026-01-17T19:33:11.918982Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0cc_numamtziplatlongcity_popunix_timemerch_latmerch_longis_fraud
count1.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+06
mean5.371934e+054.173860e+177.006357e+014.881326e+043.853931e+01-9.022783e+018.864367e+041.358674e+093.853898e+01-9.022794e+015.210015e-03
std3.669110e+051.309115e+181.592540e+022.688185e+045.071470e+001.374789e+013.014876e+051.819508e+075.105604e+001.375969e+017.199217e-02
min0.000000e+006.041621e+101.000000e+001.257000e+032.002710e+01-1.656723e+022.300000e+011.325376e+091.902742e+01-1.666716e+020.000000e+00
25%2.315490e+051.800429e+149.640000e+002.623700e+043.466890e+01-9.679800e+017.410000e+021.343017e+093.474012e+01-9.689944e+010.000000e+00
50%4.630980e+053.521417e+154.745000e+014.817400e+043.935430e+01-8.747690e+012.443000e+031.357089e+093.936890e+01-8.744069e+010.000000e+00
75%8.335758e+054.642255e+158.310000e+017.204200e+044.194040e+01-8.015800e+012.032800e+041.374581e+094.195626e+01-8.024511e+010.000000e+00
max1.296674e+064.992346e+182.894890e+049.992100e+046.669330e+01-6.795030e+012.906700e+061.388534e+096.751027e+01-6.695090e+011.000000e+00
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 cc_num amt zip lat \\\n", + "count 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 \n", + "mean 5.371934e+05 4.173860e+17 7.006357e+01 4.881326e+04 3.853931e+01 \n", + "std 3.669110e+05 1.309115e+18 1.592540e+02 2.688185e+04 5.071470e+00 \n", + "min 0.000000e+00 6.041621e+10 1.000000e+00 1.257000e+03 2.002710e+01 \n", + "25% 2.315490e+05 1.800429e+14 9.640000e+00 2.623700e+04 3.466890e+01 \n", + "50% 4.630980e+05 3.521417e+15 4.745000e+01 4.817400e+04 3.935430e+01 \n", + "75% 8.335758e+05 4.642255e+15 8.310000e+01 7.204200e+04 4.194040e+01 \n", + "max 1.296674e+06 4.992346e+18 2.894890e+04 9.992100e+04 6.669330e+01 \n", + "\n", + " long city_pop unix_time merch_lat merch_long \\\n", + "count 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 1.852394e+06 \n", + "mean -9.022783e+01 8.864367e+04 1.358674e+09 3.853898e+01 -9.022794e+01 \n", + "std 1.374789e+01 3.014876e+05 1.819508e+07 5.105604e+00 1.375969e+01 \n", + "min -1.656723e+02 2.300000e+01 1.325376e+09 1.902742e+01 -1.666716e+02 \n", + "25% -9.679800e+01 7.410000e+02 1.343017e+09 3.474012e+01 -9.689944e+01 \n", + "50% -8.747690e+01 2.443000e+03 1.357089e+09 3.936890e+01 -8.744069e+01 \n", + "75% -8.015800e+01 2.032800e+04 1.374581e+09 4.195626e+01 -8.024511e+01 \n", + "max -6.795030e+01 2.906700e+06 1.388534e+09 6.751027e+01 -6.695090e+01 \n", + "\n", + " is_fraud \n", + "count 1.852394e+06 \n", + "mean 5.210015e-03 \n", + "std 7.199217e-02 \n", + "min 0.000000e+00 \n", + "25% 0.000000e+00 \n", + "50% 0.000000e+00 \n", + "75% 0.000000e+00 \n", + "max 1.000000e+00 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6223dd28-0d28-4b1e-a115-5a9136f2ee1f", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:12.490944Z", + "iopub.status.busy": "2026-01-17T19:33:12.490742Z", + "iopub.status.idle": "2026-01-17T19:33:13.542361Z", + "shell.execute_reply": "2026-01-17T19:33:13.541541Z", + "shell.execute_reply.started": "2026-01-17T19:33:12.490926Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Unnamed: 0 0\n", + "trans_date_trans_time 0\n", + "cc_num 0\n", + "merchant 0\n", + "category 0\n", + "amt 0\n", + "first 0\n", + "last 0\n", + "gender 0\n", + "street 0\n", + "city 0\n", + "state 0\n", + "zip 0\n", + "lat 0\n", + "long 0\n", + "city_pop 0\n", + "job 0\n", + "dob 0\n", + "trans_num 0\n", + "unix_time 0\n", + "merch_lat 0\n", + "merch_long 0\n", + "is_fraud 0\n", + "split 0\n", + "dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "47ef36a1-6366-4e8e-93fa-9da4dec88145", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:13.543636Z", + "iopub.status.busy": "2026-01-17T19:33:13.543369Z", + "iopub.status.idle": "2026-01-17T19:33:17.900302Z", + "shell.execute_reply": "2026-01-17T19:33:17.899538Z", + "shell.execute_reply.started": "2026-01-17T19:33:13.543613Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.duplicated().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "ab9c641d-681b-4a53-a8ab-17f683edd9ff", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:17.901552Z", + "iopub.status.busy": "2026-01-17T19:33:17.901291Z", + "iopub.status.idle": "2026-01-17T19:33:17.906636Z", + "shell.execute_reply": "2026-01-17T19:33:17.906119Z", + "shell.execute_reply.started": "2026-01-17T19:33:17.901529Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Unnamed: 0', 'trans_date_trans_time', 'cc_num', 'merchant', 'category',\n", + " 'amt', 'first', 'last', 'gender', 'street', 'city', 'state', 'zip',\n", + " 'lat', 'long', 'city_pop', 'job', 'dob', 'trans_num', 'unix_time',\n", + " 'merch_lat', 'merch_long', 'is_fraud', 'split'],\n", + " dtype='object')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "502016b8-e8d9-46ea-88e3-607ebb710b29", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:17.907877Z", + "iopub.status.busy": "2026-01-17T19:33:17.907443Z", + "iopub.status.idle": "2026-01-17T19:33:18.087977Z", + "shell.execute_reply": "2026-01-17T19:33:18.087284Z", + "shell.execute_reply.started": "2026-01-17T19:33:17.907856Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplit
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train
.........................................................
18523892020-12-31 23:59:0730560609640617fraud_Reilly and Sonshealth_fitness43.77MLuray6345340.4931-91.8912519Town planner1966-02-13138853434739.946837-91.3333310test
18523902020-12-31 23:59:093556613125071656fraud_Hoppe-Parisiankids_pets111.84MLake Jackson7756629.0393-95.440128739Futures trader1999-12-27138853434929.661049-96.1866330test
18523912020-12-31 23:59:156011724471098086fraud_Rau-Robelkids_pets86.88FBurbank9932346.1966-118.90173684Musician1981-11-29138853435546.658340-119.7150540test
18523922020-12-31 23:59:244079773899158fraud_Breitenberg LLCtravel7.99MMesa8364344.6255-116.4493129Cartographer1965-12-15138853436444.470525-117.0808880test
18523932020-12-31 23:59:344170689372027579fraud_Dare-Marvinentertainment38.13MEdmond7303435.6665-97.4798116001Media buyer1993-05-10138853437436.210097-97.0363720test
\n", + "

1852394 rows Γ— 18 columns

\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time cc_num \\\n", + "0 2019-01-01 00:00:18 2703186189652095 \n", + "1 2019-01-01 00:00:44 630423337322 \n", + "2 2019-01-01 00:00:51 38859492057661 \n", + "3 2019-01-01 00:01:16 3534093764340240 \n", + "4 2019-01-01 00:03:06 375534208663984 \n", + "... ... ... \n", + "1852389 2020-12-31 23:59:07 30560609640617 \n", + "1852390 2020-12-31 23:59:09 3556613125071656 \n", + "1852391 2020-12-31 23:59:15 6011724471098086 \n", + "1852392 2020-12-31 23:59:24 4079773899158 \n", + "1852393 2020-12-31 23:59:34 4170689372027579 \n", + "\n", + " merchant category amt gender \\\n", + "0 fraud_Rippin, Kub and Mann misc_net 4.97 F \n", + "1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 F \n", + "2 fraud_Lind-Buckridge entertainment 220.11 M \n", + "3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 M \n", + "4 fraud_Keeling-Crist misc_pos 41.96 M \n", + "... ... ... ... ... \n", + "1852389 fraud_Reilly and Sons health_fitness 43.77 M \n", + "1852390 fraud_Hoppe-Parisian kids_pets 111.84 M \n", + "1852391 fraud_Rau-Robel kids_pets 86.88 F \n", + "1852392 fraud_Breitenberg LLC travel 7.99 M \n", + "1852393 fraud_Dare-Marvin entertainment 38.13 M \n", + "\n", + " city zip lat long city_pop \\\n", + "0 Moravian Falls 28654 36.0788 -81.1781 3495 \n", + "1 Orient 99160 48.8878 -118.2105 149 \n", + "2 Malad City 83252 42.1808 -112.2620 4154 \n", + "3 Boulder 59632 46.2306 -112.1138 1939 \n", + "4 Doe Hill 24433 38.4207 -79.4629 99 \n", + "... ... ... ... ... ... \n", + "1852389 Luray 63453 40.4931 -91.8912 519 \n", + "1852390 Lake Jackson 77566 29.0393 -95.4401 28739 \n", + "1852391 Burbank 99323 46.1966 -118.9017 3684 \n", + "1852392 Mesa 83643 44.6255 -116.4493 129 \n", + "1852393 Edmond 73034 35.6665 -97.4798 116001 \n", + "\n", + " job dob unix_time merch_lat \\\n", + "0 Psychologist, counselling 1988-03-09 1325376018 36.011293 \n", + "1 Special educational needs teacher 1978-06-21 1325376044 49.159047 \n", + "2 Nature conservation officer 1962-01-19 1325376051 43.150704 \n", + "3 Patent attorney 1967-01-12 1325376076 47.034331 \n", + "4 Dance movement psychotherapist 1986-03-28 1325376186 38.674999 \n", + "... ... ... ... ... \n", + "1852389 Town planner 1966-02-13 1388534347 39.946837 \n", + "1852390 Futures trader 1999-12-27 1388534349 29.661049 \n", + "1852391 Musician 1981-11-29 1388534355 46.658340 \n", + "1852392 Cartographer 1965-12-15 1388534364 44.470525 \n", + "1852393 Media buyer 1993-05-10 1388534374 36.210097 \n", + "\n", + " merch_long is_fraud split \n", + "0 -82.048315 0 train \n", + "1 -118.186462 0 train \n", + "2 -112.154481 0 train \n", + "3 -112.561071 0 train \n", + "4 -78.632459 0 train \n", + "... ... ... ... \n", + "1852389 -91.333331 0 test \n", + "1852390 -96.186633 0 test \n", + "1852391 -119.715054 0 test \n", + "1852392 -117.080888 0 test \n", + "1852393 -97.036372 0 test \n", + "\n", + "[1852394 rows x 18 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.drop(columns=[\"Unnamed: 0\", \"first\", \"last\", \"trans_num\", \"street\", \"state\"], inplace=True)\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1b8601fc-5f21-4b09-bc4e-0dddb11fef7e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:18.089004Z", + "iopub.status.busy": "2026-01-17T19:33:18.088763Z", + "iopub.status.idle": "2026-01-17T19:33:18.755773Z", + "shell.execute_reply": "2026-01-17T19:33:18.755002Z", + "shell.execute_reply.started": "2026-01-17T19:33:18.088983Z" + } + }, + "outputs": [], + "source": [ + "df[\"trans_date_trans_time\"] = pd.to_datetime(df[\"trans_date_trans_time\"], format=\"mixed\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "209b5fdf-66a1-4f2c-8255-c420ea34c5b2", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:18.757159Z", + "iopub.status.busy": "2026-01-17T19:33:18.756856Z", + "iopub.status.idle": "2026-01-17T19:33:18.876060Z", + "shell.execute_reply": "2026-01-17T19:33:18.875474Z", + "shell.execute_reply.started": "2026-01-17T19:33:18.757137Z" + } + }, + "outputs": [], + "source": [ + "# 1. Extract day of week (0=Monday, 6=Sunday)\n", + "df[\"day_of_week\"] = df[\"trans_date_trans_time\"].dt.dayofweek\n", + "\n", + "# 2. Apply cyclical transformation (Period = 7)\n", + "df[\"day_sin\"] = np.sin(2 * np.pi * df[\"day_of_week\"] / 7)\n", + "df[\"day_cos\"] = np.cos(2 * np.pi * df[\"day_of_week\"] / 7)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "354e5a10-3055-4ec3-b168-8bb02ee645c3", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:18.877187Z", + "iopub.status.busy": "2026-01-17T19:33:18.876928Z", + "iopub.status.idle": "2026-01-17T19:33:18.921727Z", + "shell.execute_reply": "2026-01-17T19:33:18.921174Z", + "shell.execute_reply.started": "2026-01-17T19:33:18.877166Z" + } + }, + "outputs": [], + "source": [ + "df[\"hour\"] = df[\"trans_date_trans_time\"].dt.hour" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "bfeccd31-fcfe-45be-b686-785b89785ea0", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:18.922665Z", + "iopub.status.busy": "2026-01-17T19:33:18.922472Z", + "iopub.status.idle": "2026-01-17T19:33:18.935100Z", + "shell.execute_reply": "2026-01-17T19:33:18.934496Z", + "shell.execute_reply.started": "2026-01-17T19:33:18.922647Z" + } + }, + "outputs": [], + "source": [ + "fraud = df[df[\"is_fraud\"] == 1]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "06742ab0-53f2-43ec-959c-3d5a2b3245eb", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:18.936119Z", + "iopub.status.busy": "2026-01-17T19:33:18.935935Z", + "iopub.status.idle": "2026-01-17T19:33:19.674689Z", + "shell.execute_reply": "2026-01-17T19:33:19.673919Z", + "shell.execute_reply.started": "2026-01-17T19:33:18.936102Z" + } + }, + "outputs": [], + "source": [ + "df[\"dob\"] = pd.to_datetime(df[\"dob\"], format=\"mixed\")\n", + "df[\"age\"] = (df[\"trans_date_trans_time\"].dt.year - df[\"dob\"].dt.year).astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "c19d97fc-8e35-4d66-aaea-a4f955809f1c", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:19.675891Z", + "iopub.status.busy": "2026-01-17T19:33:19.675640Z", + "iopub.status.idle": "2026-01-17T19:33:19.691463Z", + "shell.execute_reply": "2026-01-17T19:33:19.690755Z", + "shell.execute_reply.started": "2026-01-17T19:33:19.675871Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplitday_of_weekday_sinday_coshourage
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train10.7818310.62349031
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train10.7818310.62349041
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train10.7818310.62349057
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train10.7818310.62349052
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train10.7818310.62349033
\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time cc_num merchant \\\n", + "0 2019-01-01 00:00:18 2703186189652095 fraud_Rippin, Kub and Mann \n", + "1 2019-01-01 00:00:44 630423337322 fraud_Heller, Gutmann and Zieme \n", + "2 2019-01-01 00:00:51 38859492057661 fraud_Lind-Buckridge \n", + "3 2019-01-01 00:01:16 3534093764340240 fraud_Kutch, Hermiston and Farrell \n", + "4 2019-01-01 00:03:06 375534208663984 fraud_Keeling-Crist \n", + "\n", + " category amt gender city zip lat long \\\n", + "0 misc_net 4.97 F Moravian Falls 28654 36.0788 -81.1781 \n", + "1 grocery_pos 107.23 F Orient 99160 48.8878 -118.2105 \n", + "2 entertainment 220.11 M Malad City 83252 42.1808 -112.2620 \n", + "3 gas_transport 45.00 M Boulder 59632 46.2306 -112.1138 \n", + "4 misc_pos 41.96 M Doe Hill 24433 38.4207 -79.4629 \n", + "\n", + " city_pop job dob unix_time \\\n", + "0 3495 Psychologist, counselling 1988-03-09 1325376018 \n", + "1 149 Special educational needs teacher 1978-06-21 1325376044 \n", + "2 4154 Nature conservation officer 1962-01-19 1325376051 \n", + "3 1939 Patent attorney 1967-01-12 1325376076 \n", + "4 99 Dance movement psychotherapist 1986-03-28 1325376186 \n", + "\n", + " merch_lat merch_long is_fraud split day_of_week day_sin day_cos \\\n", + "0 36.011293 -82.048315 0 train 1 0.781831 0.62349 \n", + "1 49.159047 -118.186462 0 train 1 0.781831 0.62349 \n", + "2 43.150704 -112.154481 0 train 1 0.781831 0.62349 \n", + "3 47.034331 -112.561071 0 train 1 0.781831 0.62349 \n", + "4 38.674999 -78.632459 0 train 1 0.781831 0.62349 \n", + "\n", + " hour age \n", + "0 0 31 \n", + "1 0 41 \n", + "2 0 57 \n", + "3 0 52 \n", + "4 0 33 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "f6d0582f-0031-455f-844d-2177525af667", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:33:19.695989Z", + "iopub.status.busy": "2026-01-17T19:33:19.695741Z", + "iopub.status.idle": "2026-01-17T19:34:11.182631Z", + "shell.execute_reply": "2026-01-17T19:34:11.182015Z", + "shell.execute_reply.started": "2026-01-17T19:33:19.695961Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplitday_of_weekday_sinday_coshouragedistance_km
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train10.7818310.6234903178.60
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train10.7818310.6234904130.21
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train10.7818310.62349057108.21
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train10.7818310.6234905295.67
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train10.7818310.6234903377.56
\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time cc_num merchant \\\n", + "0 2019-01-01 00:00:18 2703186189652095 fraud_Rippin, Kub and Mann \n", + "1 2019-01-01 00:00:44 630423337322 fraud_Heller, Gutmann and Zieme \n", + "2 2019-01-01 00:00:51 38859492057661 fraud_Lind-Buckridge \n", + "3 2019-01-01 00:01:16 3534093764340240 fraud_Kutch, Hermiston and Farrell \n", + "4 2019-01-01 00:03:06 375534208663984 fraud_Keeling-Crist \n", + "\n", + " category amt gender city zip lat long \\\n", + "0 misc_net 4.97 F Moravian Falls 28654 36.0788 -81.1781 \n", + "1 grocery_pos 107.23 F Orient 99160 48.8878 -118.2105 \n", + "2 entertainment 220.11 M Malad City 83252 42.1808 -112.2620 \n", + "3 gas_transport 45.00 M Boulder 59632 46.2306 -112.1138 \n", + "4 misc_pos 41.96 M Doe Hill 24433 38.4207 -79.4629 \n", + "\n", + " city_pop job dob unix_time \\\n", + "0 3495 Psychologist, counselling 1988-03-09 1325376018 \n", + "1 149 Special educational needs teacher 1978-06-21 1325376044 \n", + "2 4154 Nature conservation officer 1962-01-19 1325376051 \n", + "3 1939 Patent attorney 1967-01-12 1325376076 \n", + "4 99 Dance movement psychotherapist 1986-03-28 1325376186 \n", + "\n", + " merch_lat merch_long is_fraud split day_of_week day_sin day_cos \\\n", + "0 36.011293 -82.048315 0 train 1 0.781831 0.62349 \n", + "1 49.159047 -118.186462 0 train 1 0.781831 0.62349 \n", + "2 43.150704 -112.154481 0 train 1 0.781831 0.62349 \n", + "3 47.034331 -112.561071 0 train 1 0.781831 0.62349 \n", + "4 38.674999 -78.632459 0 train 1 0.781831 0.62349 \n", + "\n", + " hour age distance_km \n", + "0 0 31 78.60 \n", + "1 0 41 30.21 \n", + "2 0 57 108.21 \n", + "3 0 52 95.67 \n", + "4 0 33 77.56 " + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def haversine_distance(lat1, lon1, lat2, lon2):\n", + " lat1, lon1, lat2, lon2 = map(np.radians, [lat1, lon1, lat2, lon2])\n", + " dlat = lat2 - lat1\n", + " dlon = lon2 - lon1\n", + " a = np.sin(dlat / 2.0) ** 2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon / 2.0) ** 2\n", + " c = 2 * np.arcsin(np.sqrt(a))\n", + " km = 6371 * c # Radius of Earth in kilometers\n", + " return round(km, 2)\n", + "\n", + "\n", + "# Apply the Haversine formula\n", + "df[\"distance_km\"] = df.apply(\n", + " lambda row: haversine_distance(row[\"merch_lat\"], row[\"merch_long\"], row[\"lat\"], row[\"long\"]),\n", + " axis=1,\n", + ")\n", + "\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "35de3a07-5469-49dc-ad58-c312b8ab16e8", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:11.183999Z", + "iopub.status.busy": "2026-01-17T19:34:11.183724Z", + "iopub.status.idle": "2026-01-17T19:34:11.368956Z", + "shell.execute_reply": "2026-01-17T19:34:11.368344Z", + "shell.execute_reply.started": "2026-01-17T19:34:11.183975Z" + } + }, + "outputs": [], + "source": [ + "df.drop(columns=[\"dob\", \"lat\", \"long\", \"merch_long\", \"merch_lat\"], inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "bc90597c-b288-4f78-add1-b969e6ad1a6b", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:11.370385Z", + "iopub.status.busy": "2026-01-17T19:34:11.370085Z", + "iopub.status.idle": "2026-01-17T19:34:12.046020Z", + "shell.execute_reply": "2026-01-17T19:34:12.045414Z", + "shell.execute_reply.started": "2026-01-17T19:34:11.370354Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countmeanmin25%50%75%maxstd
trans_date_trans_time18523942020-01-20 21:31:46.8018273282019-01-01 00:00:182019-07-23 04:13:43.7500001282020-01-02 01:15:312020-07-23 12:11:25.2499998722020-12-31 23:59:34NaN
cc_num1852394.0417386038393710400.060416207185.0180042946491150.03521417320836166.04642255475285942.04992346398065154048.01309115265318020352.0
amt1852394.070.0635671.09.6447.4583.128948.9159.253975
zip1852394.048813.2581911257.026237.048174.072042.099921.026881.845966
city_pop1852394.088643.67450923.0741.02443.020328.02906700.0301487.618344
unix_time1852394.01358674218.8343641325376018.01343016823.751357089331.01374581485.251388534374.018195081.38756
is_fraud1852394.00.005210.00.00.00.01.00.071992
day_of_week1852394.02.9674560.01.03.05.06.02.197983
day_sin1852394.0-0.074649-0.974928-0.7818310.00.4338840.9749280.685087
day_cos1852394.00.147219-0.900969-0.2225210.623490.623491.00.709514
hour1852394.012.8061190.07.014.019.023.06.815753
age1852394.046.2113814.033.044.057.096.017.395446
distance_km1852394.076.1117260.0255.3278.2298.51152.1229.116967
\n", + "
" + ], + "text/plain": [ + " count mean \\\n", + "trans_date_trans_time 1852394 2020-01-20 21:31:46.801827328 \n", + "cc_num 1852394.0 417386038393710400.0 \n", + "amt 1852394.0 70.063567 \n", + "zip 1852394.0 48813.258191 \n", + "city_pop 1852394.0 88643.674509 \n", + "unix_time 1852394.0 1358674218.834364 \n", + "is_fraud 1852394.0 0.00521 \n", + "day_of_week 1852394.0 2.967456 \n", + "day_sin 1852394.0 -0.074649 \n", + "day_cos 1852394.0 0.147219 \n", + "hour 1852394.0 12.806119 \n", + "age 1852394.0 46.21138 \n", + "distance_km 1852394.0 76.111726 \n", + "\n", + " min 25% \\\n", + "trans_date_trans_time 2019-01-01 00:00:18 2019-07-23 04:13:43.750000128 \n", + "cc_num 60416207185.0 180042946491150.0 \n", + "amt 1.0 9.64 \n", + "zip 1257.0 26237.0 \n", + "city_pop 23.0 741.0 \n", + "unix_time 1325376018.0 1343016823.75 \n", + "is_fraud 0.0 0.0 \n", + "day_of_week 0.0 1.0 \n", + "day_sin -0.974928 -0.781831 \n", + "day_cos -0.900969 -0.222521 \n", + "hour 0.0 7.0 \n", + "age 14.0 33.0 \n", + "distance_km 0.02 55.32 \n", + "\n", + " 50% 75% \\\n", + "trans_date_trans_time 2020-01-02 01:15:31 2020-07-23 12:11:25.249999872 \n", + "cc_num 3521417320836166.0 4642255475285942.0 \n", + "amt 47.45 83.1 \n", + "zip 48174.0 72042.0 \n", + "city_pop 2443.0 20328.0 \n", + "unix_time 1357089331.0 1374581485.25 \n", + "is_fraud 0.0 0.0 \n", + "day_of_week 3.0 5.0 \n", + "day_sin 0.0 0.433884 \n", + "day_cos 0.62349 0.62349 \n", + "hour 14.0 19.0 \n", + "age 44.0 57.0 \n", + "distance_km 78.22 98.51 \n", + "\n", + " max std \n", + "trans_date_trans_time 2020-12-31 23:59:34 NaN \n", + "cc_num 4992346398065154048.0 1309115265318020352.0 \n", + "amt 28948.9 159.253975 \n", + "zip 99921.0 26881.845966 \n", + "city_pop 2906700.0 301487.618344 \n", + "unix_time 1388534374.0 18195081.38756 \n", + "is_fraud 1.0 0.071992 \n", + "day_of_week 6.0 2.197983 \n", + "day_sin 0.974928 0.685087 \n", + "day_cos 1.0 0.709514 \n", + "hour 23.0 6.815753 \n", + "age 96.0 17.395446 \n", + "distance_km 152.12 29.116967 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SUMMARY STATS\n", + "df.describe().T" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "d6af3209-8b7f-4424-9f8e-53462d19d6c7", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:12.047132Z", + "iopub.status.busy": "2026-01-17T19:34:12.046848Z", + "iopub.status.idle": "2026-01-17T19:34:13.579776Z", + "shell.execute_reply": "2026-01-17T19:34:13.579081Z", + "shell.execute_reply.started": "2026-01-17T19:34:12.047097Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countuniquetopfreq
merchant1852394693fraud_Kilback LLC6262
category185239414gas_transport188029
gender18523942F1014749
city1852394906Birmingham8040
job1852394497Film/video editor13898
split18523942train1296675
\n", + "
" + ], + "text/plain": [ + " count unique top freq\n", + "merchant 1852394 693 fraud_Kilback LLC 6262\n", + "category 1852394 14 gas_transport 188029\n", + "gender 1852394 2 F 1014749\n", + "city 1852394 906 Birmingham 8040\n", + "job 1852394 497 Film/video editor 13898\n", + "split 1852394 2 train 1296675" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# SUMMARY STATS\n", + "df.describe(include=\"object\").T" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "0569f0e1-8333-49e3-b1bb-855a7fb181a5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:13.580897Z", + "iopub.status.busy": "2026-01-17T19:34:13.580588Z", + "iopub.status.idle": "2026-01-17T19:34:14.854287Z", + "shell.execute_reply": "2026-01-17T19:34:14.853571Z", + "shell.execute_reply.started": "2026-01-17T19:34:13.580876Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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MUIWi8VhMYaHh9t+Llu2rAICAtS8eXNb8laSatWqZWsNIUnJyclq1aqV/P39dfHiRUmSl5eXWrRooR9//NFhsQIAAAAAAACGcOMeuB9++KH++usvzZw5U+XKlZMk5ebmKiEhQYMGDVLlypWvuceUKVPUsWNHHTt2zMHR/n83ZQsFs9ls997Hx6dQpc6RkZEqVaqUTCaT7r//fkeFJ+nvpO3lfH19rxn3n3/+qS+++EINGjSwe3366ac6fvy4Q+MFAAAAAAAAirONGzcqLCzMlryVpKioKOXl5Sk5Ofma67dv364vvvhCTz31lAOjzM+tKnB9fX2Vk5NjN5aenm7Y/gkJCTKbzbp48aJefPFFvfTSS4btbQR/f3+1a9dOI0aMyHetMK0eAAAAAAAAAJfyct960dTUVN133312Y2azWRUrVlRqaupV1+bm5mrChAkaPHiwKlWq5Mgw83GrBG6VKlW0adMmWa1Wmf6v3Low2e/CWLlypVatWqW33npLWVlZiouLU+fOndWpU6dCrS9sle+NaNOmjZYvX67AwED5+fk59F4AAAAAAADAzSgyMvKq19evX3/F8YyMjHz/Ql76u6jyWkWk77//vs6fP69+/foVOk6juFUCt0uXLlq8eLEmTJigTp06aceOHVq7du0N73vixAk9//zzio2NVbt27SRJ9957r5577jmFhoYWqulwYGCgLl68qPnz5ys0NFRlypRRnTp1bji2y/Xr10+fffaZHn74YT3yyCO6/fbblZaWpl27dqly5cou+QUBAAAAAAAACsvqxj1wr9fp06c1Y8YMvfTSSy75V/JulcCNiIjQf/7zH7377rtatmyZIiIilJCQcMOJy7Fjx8psNuuZZ56xjT377LPaunWrxo0bp1mzZl1zj3/961966KGH9MYbb+j06dNq0aKFFi5ceENx/dOtt96qRYsWadq0aXr55Zd15swZlS9fXk2aNFHnzp0NvRcAAAAAAABgOJPjWygUVGF7LWazWZmZmfnG09PT5e/vX+C66dOny2KxqHnz5srIyJAkXbx4URcvXlRGRob8/PxUooTj0qwmq9VqddjucCub92W4OgSPEhZs5sydjDN3Ps7c+cKCzVrpY3F1GB6le06Kkn866+owPEp4/TL6fJdjW1fB3p1NfLXnFx6a60wN61bRjv+ddnUYHqVpvfL8vcXJwoLN+i7ljKvD8CgtLOX4PXeysOD8/xzf053/8j2H3+OWf/W+rnW9e/dWuXLl7Io5MzMz1aJFC7344ovq1avXFdf16dNH27ZtK3DfN998UxEREdcVU2G4VQUuAAAAAAAAgJuYEypwr1dERIRmz55t1wt3zZo18vLyUnh4eIHrxowZY6u8veTFF19UqVKl9OSTT8picWyRDQlcSXl5ecrLyyvwure3t+2hagAAAAAAAABuPrGxsVq4cKHi4uI0aNAgnThxQpMnT1ZsbKwqV65sm9e3b18dO3ZM69atkyQFBwfn28tsNsvPz0+tWrVyeNwkcPV3Fn3ZsmUFXl+wYIFT/jAAAAAAAACAm5k7P8TM399f8+fP14QJExQXF6fSpUsrOjpaI0eOtJuXl5en3NxcF0WZHwlcScOGDVPv3gX3zqhdu7YTowEAAAAAAADgCIGBgZo3b95V5yxcuPCa+xRmjlFI4EqqVq2aqlWr5uowAAAAAAAAgJubG/fAvVlxogAAAAAAAADgpqjABQAAAAAAAGAMN+6Be7OiAhcAAAAAAAAA3BQVuAAAAAAAAACM4UW9qNE4UQAAAAAAAABwU1TgAgAAAAAAADCElR64hqMCFwAAAAAAAADcFBW4AAAAAAAAAIxhol7UaJwoAAAAAAAAALgpKnABAAAAAAAAGMJKBa7hOFEAAAAAAAAAcFNU4AIAAAAAAAAwhsnk6giKHSpwAQAAAAAAAMBNUYELAAAAAAAAwBD0wDUeJwoAAAAAAAAAbspktVqtrg4CAAAAAAAAwM0v87tVDr9H2RbdHH4Pd0ILBQ+yeV+Gq0PwKGHBZh3fv9PVYXiUKkGh/J47WViwmTN3srBgs5J/OuvqMDxKeP0yWuljcXUYHqV7Toq27E93dRgepXWQP9/nTsb3ufOF1y+jbXy3OFXLIH/O3Mla8n3udGHBZleHAA9AAhcAAAAAAACAMeiBazgSuAAAAAAAAAAMYTWZXB1CsUNKHAAAAAAAAADcFBW4AAAAAAAAAIxBCwXDcaIAAAAAAAAA4KaowAUAAAAAAABgCKvogWs0KnABAAAAAAAAwE1RgQsAAAAAAADAEFZ64BqOEwUAAAAAAAAAN0UFLgAAAAAAAABjUIFrOE4UAAAAAAAAANwUFbgAAAAAAAAADGE1mVwdQrFDBS4AAAAAAAAAuCkqcAEAAAAAAAAYwkoPXMNxogAAAAAAAADgpqjABQAAAAAAAGAMeuAajgpcAAAAAAAAAHBTxSaBGx8frx49ehi23+TJk9W2bVsFBQXphRdeMGzf6zFv3jxZLBaXxgAAAAAAAABci9Xk5fCXpyk2LRSGDh2qc+fOGbLXpk2bNHfuXI0ePVpNmjRRpUqVDNkXAAAAAAAAAIqi2CRwa9SoYdheqampkqRHHnlEXl4FZ/UvXLigUqVKGXZfAAAAAAAA4GZmFT1wjVZsao4vb6GQkZGhZ599Vu3atVOjRo3Uvn17jRw5slD79OnTRxMmTJAkBQcHy2KxaOvWrVq6dKksFot27typRx99VCEhIZo8ebIk6e2339Z9992nZs2aKSwsTIMGDdLBgwfz7Tto0CC7sX379tn2v+Ts2bN6+umnFRoaqtatW2vy5MnKzc297nMBAAAAAAAAcPMqNhW4l5s0aZK++eYbPfXUU6patapOnTqljRs3Fmrtf//7X3300UeaP3++Fi1aJEmqW7eujh49Kkl66qmn9MADD2jQoEG65ZZbJEnHjx/Xww8/rNtvv11nz57Vhx9+qNjYWK1du1blypUrUuxjxozRN998o1GjRqlatWp6//33tWLFiiLtAQAAAAAAALiCJ/aodbRimcD98ccf1aNHD9177722se7duxdqbd26dXX77bdLkkJCQvJdj42N1eOPP243NmbMGNvPubm5Cg8PV1hYmNauXasHHnig0HH/8ssv+vzzzzVx4kRFR0dLktq2bas777yz0HsAAAAAAAAAKD6KZQK3fv36WrZsmSpWrKh27dqpXr16hu3doUOHfGM//PCDpk+frp9++klnzpyxjf/6669F2vvHH3+U1WpV586dbWPe3t7q1KmT5s2bd30BAwAAAAAAAM5iogeu0YplTfNzzz2nu+++W++8847uuusudejQQe+//74he1eoUMHu/bFjx9S/f3/l5uYqISFBH3zwgRYvXqzy5csrKyurSHufOnVKPj4+8vf3txsvX778DccNAAAAAAAA4OZTLCtwy5Ytq7Fjx2rs2LFKSUnRggULlJCQoHr16ql58+aG3uubb77RuXPnNHPmTJnNZknSxYsXlZ6ebjfP19dXOTk5dmP/nFOxYkXl5OQoPT3dLol7+vRpQ2MGAAAAAAAAHMFaPOtFXarYn6jFYtHo0aMlSQcOHDB8/wsXLshkMqlE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FouSk5Pt1uXm5qpdu3aaPHlyoWP55JNP1LNnTzVq1EitWrXSwIEDdfToUbt7DRgwQCEhIWrWrJmeeOIJHTt2zG6PxYsXq3v37mrcuLFatWqlBx980C5eAAAAAAAAAMVfsajA/fLLL/Xcc8+pV69e6tatm/bu3asRI0bYzTly5Ih69uypGjVqKDs7WytXrlTv3r21fPly1a5dWxaLRU2aNNGSJUsUHh5uW/fNN9/o5MmTuu+++woVy1tvvaUpU6YoOjpaI0eOVE5OjrZs2aK0tDRVrVpVv//+ux5++GFVr15dU6ZMUVZWll599VU9/PDDWr58ucqUKaPvvvtOY8eOVf/+/dW+fXtduHBBu3fvVmZmpqHnBgAAAAAAABjJ6pQmtSYn3MN9FIsE7uuvv67mzZtr0qRJkqR27dopKytLr732mm3OsGHDbD/n5eUpPDxcu3fv1rJly/Tkk09KkmJiYjRhwgSlp6fL399fkrRkyRKFhoYqMDDwmnFkZmZq5syZeuCBB/T888/bxjt16mT7ed68ebp48aLefvttlStXTpIUHBys7t27a9myZbbK4HLlyumZZ56xrevQoUPRDwYAAAAAAADATe2mb6GQm5urvXv3qnPnznbjXbp0sXt/4MABxcXFqU2bNgoODlaDBg108OBB/frrr7Y53bt3V4kSJbRixQpJUlpamr788ktFR0cXKpadO3fq/PnzV52/fft2tWrVypa8laTAwEAFBQXp+++/lyTVr19fZ86cUXx8vJKTk3X+/PlC3R8AAAAAAABwpTyr41+e5qZP4KalpenixYsKCAiwG69QoYLt57Nnz6p///46duyY4uPj9d5772nx4sUKCgpSVlaWbZ6fn5969OihxYsXS5KWL18uHx8fRUVFFSqWM2fOSJIqVapU4JyMjAy72C4pX7680tPTJUlhYWGaPHmyfv75Zw0YMECtW7fW008/bdsfAAAAAAAAgGe46VsoBAQEqESJEkpLS7Mb/+OPP2w///DDDzp+/LjmzJmjoKAg23hmZqaqVKlity4mJkaLFi3S/v37tXTpUkVFRal06dKFiuVSVe3Jkyfz7XuJv7+/Tp8+nW/89OnTqlWrlu39Pffco3vuuUdpaWlav369Jk2apBIlSujFF18sVCwAAAAAAACAs1k9sELW0W76Clxvb2/Vr19f69atsxtfu3at7ecL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l7a99/f3V/v27fXQQw/lm3v5PAAAAAAAAADFHwlcA2RnZysvL8+uQvbs2bPasGGD7X3Dhg31ySef6LffflP16tUlSUeOHNH+/fvVrFkz27ywsDD9/PPPql+/vry9vZ33IQAAAAAAAIAbZLXSA9doJHANULZsWTVq1EhvvvmmAgICVKJECb3xxhsqU6aM0tLSJEn33XefZs+ercGDB2v48OGS/n5gWYUKFWQymWx7PfHEE4qOjtaAAQN0//33q0KFCvrjjz+0bds2NW/eXD169HDJZwQAAAAAAACuJY8WCobzcnUAxcXUqVNVo0YNxcfHa+LEierSpYt69uxpu16qVCm9/fbb8vf316hRozRlyhQ9+uijqlmzpsqWLWubV7NmTX388ccqV66cEhISNGDAAL388ss6f/68LBaLCz4ZAAAAAAAAAFehAtcgNWvWvOKDxy5V20rSHXfcYdcX98yZM5o0aZL69etnt6ZWrVqaNm2ao0IFAAAAAAAAHMKaRwsFo5HAdaI33nhDFSpUUNWqVXXq1Cm9/fbbys3N1X333efq0AAAAAAAAAC4IRK4TuTl5aX/196dR1VR/n8AfyNeNGQJREpxI5UrIN2LIMriAqgk1M8lMDeSXEklKzdQ0cAFBCEENMSdMsUQ92jR0vySu1guaJa5kGkqIpLszO8PDxNXtnvxAld9v87xHJn1c5+ZeWbmM88889lnn+H27dvQ1taGTCbDpk2b0Lp168YOjYiIiIiIiIiI6KkJ7ANX7ZjAbUATJkzAhAkTGjsMIiIiIiIiIiIiekYwgUtERERERERERERqIQjsA1fdmjR2AERERERERERERERUNbbAJSIiIiIiIiIiIrVgH7jqxxa4RERERERERERERBqKLXCJiIiIiIiIiIhILYQy9oGrbmyBS0RERERERERERKSh2AKXiIiIiIiIiIiI1OJ/e/o2dgjPHbbAJSIiIiIiIiIiItJQTOASERERERERERERaSgmcImIiIiIiIiIiIg0FBO4RERERERERERERBqKCVwiIiIiIiIiIiIiDcUELhEREREREREREZGGYgKXiIiIiIiIiIiISEMxgUtERERERERERESkoZjAJSIiIiIiIiIiItJQWoIgCI0dBBERERERERERERFV1rSxA6CGcyQzt7FDeKE4WhqwzBuYo6UBjl580NhhvFB6dTXE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2rdvDwDo1KkTtm/fjr1796JDhw4wMjJC27ZtYWNjgzVr1ogtfxMTE6Gnp1epBbAyZsyYAT8/P/j5+WHUqFEwNDTE+fPnYWRkBG9vbzg7O8PV1RUTJkzAhAkTIJVKkZ+fj99//x3Xrl3DkiVLVFqfRCJBbGws/P394efnh82bN6Ndu3Yqx01EREREREREREQvnjq1wAUAd3d3hISE4MiRI5g6dSrS09MRExNT7fStWrWCiYkJVq9ejYkTJ2LBggVo3bo11q9fL37cy9vbG2+88QYWLVoEb29vxMfHAwCioqLQvn17BAYGYvHixfDw8MCQIUPqFLe9vT2SkpKgpaWFoKAgTJs2Dfv374eZmZk4TWxsLEaMGIEtW7Zg4sSJmDdvHv73v//V2ldvdXR0dLBy5Uq0b98eY8eOxd9//12n5RAREREREREREdGLRUsQBKGxg6CGcSQzt7FDeKE4WhqwzBuYo6UBjl580NhhvFB6dTXEcZZ5g3Loasi6pYGxPm94LPOGxzJveCzzhscyb3iOlgb4OfNhY4fxQnGy1Mc+Cb+/05C8ii81dgj0AqhzC1wiIiIiIiIiIiIiql917gP3RVZSUlLtOC0tLbFLCCIiIiIiIiIiIqKnwQSuirKysuDu7l7teAcHB3z++ecNGBERERERERERERE9r5jAVZGpqSlSUlKqHd+iRYsGjIaIiIiIiIiIiIieZ0zgqkhHRwc2NjaNHQYRERERERERERG9APgRMyIiIiIiIiIiIiINxQQuERERERERERERkYZiApeIiIiIiIiIiIhIQzGBS0RERERERERERKShmMAlIiIiIiIiIiIi0lBM4BIRERERERERERFpKCZwiYiIiIiIiIiIiDQUE7hEREREREREREREGooJXCIiIiIiIiIiIiINxQQuERERERERERERkYZiApeIiIiIiIiIiIhIQzGBS0RERERERERERKShmMAlIiIiIiIiIiIi0lBM4BIRERERERERERFpKCZwiYiIiIiIiIiIiDSUliAIQmMHQURERERERERERESVsQUuERERERERERERkYZiApeIiIiIiIiIiIhIQzGBS0RERERERERERKShmMAlIiIiIiIiIiIi0lBM4BIRERERERERERFpKCZwiYiIiIiIiIiIiDQUE7hEREREREREREREGooJXCIiIiIiIiIiIiINxQQu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lxpMeau06jg4OKj9FVoiejF4e3tDX18fU6ZMgZOTk8I4QRBq/Ehaef+2pB5lZWUoKyurdry2tja/jF2D0tJS1PRyVMWPkVHN4uPjsXfvXtja2iIwMLDS+Pp6qMxjQH0aaxu+iFjWRI+vCT/77DPcvn0b2trakMlk2LRp01N3K0MNh3UVPc/YhQI1mKKiohr7mW3RooVGfLmTiJ4v5V1TVGfatGnixyro6QUGBmLHjh3Vjk9KSkLPnj0bMKJni5ubW5Vfhy/3PPbX3lhq6qvQzMyszv268xhoOPW1DakyljURaTo2GKPnHRO4RET0XLt//z6ysrKqHW9qalrt17hJdVlZWbh//361483NzcWP1VBlly5dQlFRUbXjn7aPZvrP2bNnqx2no6NT54/R8BhoOPW1DakyljURaTo2GKPnHRO4RERERERERERERBqKHf8RERERERERERERaSgmcImIiIiIiIiIiIg0FBO4RERERERERERERBqKCVwiIiIiIiIiIiIiDcUELhEREREREREREZGGYgKXiIiIiIiIiIiISEMxgUtERERERERERESkof4f3ItWhfO1w9gAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.heatmap(\n", + " df.select_dtypes(include=\"number\").corr(),\n", + " annot=None,\n", + " cmap=\"coolwarm\",\n", + " fmt=\".2f\",\n", + " linewidth=0.5,\n", + " cbar_kws={\"shrink\": 0.8},\n", + ")\n", + "plt.title(\"correlation matrix\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "801d66e4-be13-47d5-8549-9a0f31f54546", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:14.855539Z", + "iopub.status.busy": "2026-01-17T19:34:14.855168Z", + "iopub.status.idle": "2026-01-17T19:34:15.779385Z", + "shell.execute_reply": "2026-01-17T19:34:15.778758Z", + "shell.execute_reply.started": "2026-01-17T19:34:14.855515Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cc_numamtzipcity_popunix_timeis_fraudday_of_weekday_sinday_coshouragedistance_km
cc_num1.0000000.0018260.041504-0.0091180.000284-0.001125-0.0008510.002118-0.002048-0.000902-0.0001310.003082
amt0.0018261.0000000.0019790.004921-0.0024110.2093080.0004910.000473-0.003301-0.024891-0.010695-0.000538
zip0.0415040.0019791.0000000.0776010.001017-0.002190-0.0010210.001556-0.0000410.0059470.0103590.006750
city_pop-0.0091180.0049210.0776011.000000-0.0016360.0003250.001180-0.0041840.0065520.019949-0.0908890.010989
unix_time0.000284-0.0024110.001017-0.0016361.000000-0.013329-0.0720710.0749550.0425830.0005710.020680-0.000470
is_fraud-0.0011250.209308-0.0021900.000325-0.0133291.0000000.0045620.000906-0.0123120.0131960.0109270.000359
day_of_week-0.0008510.000491-0.0010210.001180-0.0720710.0045621.000000-0.723891-0.3681980.000584-0.008918-0.000092
day_sin0.0021180.0004730.001556-0.0041840.0749550.000906-0.7238911.0000000.005635-0.0006470.010983-0.000184
day_cos-0.002048-0.003301-0.0000410.0065520.042583-0.012312-0.3681980.0056351.0000000.002021-0.0047890.000526
hour-0.000902-0.0248910.0059470.0199490.0005710.0131960.000584-0.0006470.0020211.000000-0.1730140.000391
age-0.000131-0.0106950.010359-0.0908890.0206800.010927-0.0089180.010983-0.004789-0.1730141.000000-0.004155
distance_km0.003082-0.0005380.0067500.010989-0.0004700.000359-0.000092-0.0001840.0005260.000391-0.0041551.000000
\n", + "
" + ], + "text/plain": [ + " cc_num amt zip city_pop unix_time is_fraud \\\n", + "cc_num 1.000000 0.001826 0.041504 -0.009118 0.000284 -0.001125 \n", + "amt 0.001826 1.000000 0.001979 0.004921 -0.002411 0.209308 \n", + "zip 0.041504 0.001979 1.000000 0.077601 0.001017 -0.002190 \n", + "city_pop -0.009118 0.004921 0.077601 1.000000 -0.001636 0.000325 \n", + "unix_time 0.000284 -0.002411 0.001017 -0.001636 1.000000 -0.013329 \n", + "is_fraud -0.001125 0.209308 -0.002190 0.000325 -0.013329 1.000000 \n", + "day_of_week -0.000851 0.000491 -0.001021 0.001180 -0.072071 0.004562 \n", + "day_sin 0.002118 0.000473 0.001556 -0.004184 0.074955 0.000906 \n", + "day_cos -0.002048 -0.003301 -0.000041 0.006552 0.042583 -0.012312 \n", + "hour -0.000902 -0.024891 0.005947 0.019949 0.000571 0.013196 \n", + "age -0.000131 -0.010695 0.010359 -0.090889 0.020680 0.010927 \n", + "distance_km 0.003082 -0.000538 0.006750 0.010989 -0.000470 0.000359 \n", + "\n", + " day_of_week day_sin day_cos hour age distance_km \n", + "cc_num -0.000851 0.002118 -0.002048 -0.000902 -0.000131 0.003082 \n", + "amt 0.000491 0.000473 -0.003301 -0.024891 -0.010695 -0.000538 \n", + "zip -0.001021 0.001556 -0.000041 0.005947 0.010359 0.006750 \n", + "city_pop 0.001180 -0.004184 0.006552 0.019949 -0.090889 0.010989 \n", + "unix_time -0.072071 0.074955 0.042583 0.000571 0.020680 -0.000470 \n", + "is_fraud 0.004562 0.000906 -0.012312 0.013196 0.010927 0.000359 \n", + "day_of_week 1.000000 -0.723891 -0.368198 0.000584 -0.008918 -0.000092 \n", + "day_sin -0.723891 1.000000 0.005635 -0.000647 0.010983 -0.000184 \n", + "day_cos -0.368198 0.005635 1.000000 0.002021 -0.004789 0.000526 \n", + "hour 0.000584 -0.000647 0.002021 1.000000 -0.173014 0.000391 \n", + "age -0.008918 0.010983 -0.004789 -0.173014 1.000000 -0.004155 \n", + "distance_km -0.000092 -0.000184 0.000526 0.000391 -0.004155 1.000000 " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.select_dtypes(include=\"number\").corr()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "7aeb2d44-01b5-4ef6-ad93-52aceb12a55e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:15.780442Z", + "iopub.status.busy": "2026-01-17T19:34:15.780215Z", + "iopub.status.idle": "2026-01-17T19:34:19.569999Z", + "shell.execute_reply": "2026-01-17T19:34:19.569361Z", + "shell.execute_reply.started": "2026-01-17T19:34:15.780421Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+4AAAHjCAYAAAC95UVJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOdBJREFUeJzt3Xl4VdW9P+BvwixJBBUUtE5tCQhiUEQRRcW5olDn3lJah2pbq9Z7+2udcKh6W7wd9NraOlTU9tbWqXKtaJ2n4lhxuFWpooKgiIwJkIlk//6gORoSTNSQswjv+zw8JHuvs/Za6+zsdT7n7LN3QZZlWQAAAABJKsx3AwAAAIC1E9wBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3CEi7rjjjigtLY25c+e2ed133nlnHHzwwTF48OAYPnx4m9f/aa3LPgNAKszxQEfQOd8NgI5s1qxZcfbZZ8dee+0VJ598cnTv3j3fTcq7mpqauOKKK2Lq1KlRXl4epaWl8b3vfS9GjRqV76YBQKuZ4xtbsWJF/Pa3v40XX3wxXn755Vi2bFn8+Mc/jiOOOCLfTYMOQXCHiBg3blwceuih0bVr1zat95lnnon6+vo499xzY5tttmnTutdXZ511Vvz1r3+NiRMnxrbbbht//vOf4+STT44bb7wxqU8rAOgYzPHtY8mSJfGrX/0q+vfvH6WlpfHMM8/ku0nQoQjuEBGdOnWKTp06tXm9ixYtioiI4uLijy2XZVlUV1d3+HfrX3rppbj77rvjBz/4QZx44okRETF+/PgYO3Zs/PSnP40//vGPeW4hAB2NOb599O3bN5544ono06dPvPzyy3HUUUflu0nQofiOO0Tz3wV7+eWX48QTT4zddtsthg4dGmPGjImzzz671XWOGTMmrrzyyoiIGDlyZJSWluZ+HzNmTJxyyinx+OOPxxFHHBFDhw7Nhdbbb789Jk6cGCNHjowhQ4bEl770pfjDH/7QpP6P1rfmds8666xGy15//fWYOHFiDB06NEaPHh1XXXVV1NfXt7ovbeXee++NTp06xbHHHptb1q1btzjqqKNixowZ8d5777V7mwDo2Mzx7aNr167Rp0+fdt8ubCh84g7NWLRoUZx44onRu3fvOPnkk6OkpCTmzp0b999/f6vrOOecc+LOO++M+++/Py688MLYaKONorS0NLf+rbfeiv/4j/+IY489No455pjYbrvtIiLi5ptvji9+8YsxZsyY6Ny5czz88MNx0UUXRZZl8dWvfvUT9+WDDz6IiRMnRl1dXZx88snRo0ePuOWWW6Jbt26tenxNTU0sX768VWU32WSTj13/6quvxrbbbhtFRUWNlg8dOjS3vl+/fq3aFgB8Gub4D7XlHA+sW4I7NGPGjBmxbNmy+O1vfxs77rhjbvmZZ57Z6jr233//ePXVV+P++++Pgw46qMmEN3v27Ljuuutir732arT897//faPT6SZMmBAnnnhiTJky5VNN6tdee20sXrw4br311lxA/vKXvxwHHnhgqx7/l7/8pdWfQsycOfNj13/wwQfNvhvfsGzBggWt2g4AfFrm+A+15RwPrFuCOzSj4ftqjzzySAwcODC6dOnS5tvYaqutmkzoEdFoQq+oqIja2toYMWJEPPHEE1FRUdHid+nW9Oijj0ZZWVluQo9Y/a75YYcd1uzpeWvac889Y8qUKZ9om2tTVVXV7MWBGj4ZqKqqapPtAMDamOM/1JZzPLBuCe7QjBEjRsRBBx0Uv/zlL+OGG26IESNGxP777x+HHXZYm12Vdquttmp2+d///ve48sor44UXXojKyspG6z7NpP7uu+/GTjvt1GR5w2l7Lenbt2/07dv3E21zbbp37x41NTVNlldXV+fWA8C6ZI7/UFvO8cC6JbhDMwoKCuK///u/44UXXoiHH344Hn/88TjnnHNiypQp8ac//Sl69uz5mbfRXEidM2dOfOMb34jtt98+zjrrrOjXr1906dIlHn300bjhhhtadbGZurq6z9y2j6qqqoqKiopWlW3pojR9+vSJ999/v8nyDz74ICLCiwcA1jlz/Ifaco4H1i3BHT5GWVlZlJWVxZlnnhl33XVXfP/7349p06bF0UcfvU6299BDD0VNTU38+te/jv79++eWP/30003KbrzxxlFeXt5oWU1NTS4EN+jfv3/Mnj27yePfeuutVrVp2rRpbfb9t4EDB8bTTz8dy5cvb3SBuhdffDEiIgYNGtSq7QDAZ2WOb9s5Hli3BHdoxrJly6KkpCQKCgpyyxpCZXOnereVhvvMZlmWW1ZRURG33357k7Kf+9zn4rnnnmu07JZbbmnybvzee+8dN954Y7z00ku578AtXrw47rrrrla1qS2//3bwwQfH9ddfH3/6059y93GvqamJO+64I3baaSdXlAdgnTPHf8h33GH9IbhDM/785z/HzTffHPvvv39svfXWsWLFirjllluiqKgoRo8evc62O2rUqOjSpUt861vfiuOOOy5WrFgRt956a2y66aZN3mU/+uij44ILLojTTjst9thjj3jttdfiiSeeiN69ezcqd9JJJ8XUqVPjpJNOiokTJ+ZuFdO/f/9WvXvelt9/22mnneLggw+On//857Fo0aLYZptt4s9//nPMmzcvLr300jbZBgB8HHP8h9r6O+6///3vo7y8PHeXmIcffjjmz58fERFf+9rXPvF3+IEPCe7QjBEjRsTLL78c06ZNi4ULF0ZxcXEMHTo0fvrTn8bnPve5dbbd7bffPv77v/87Lr/88pg8eXJsttlm8ZWvfCU22WSTOOeccxqVPeaYY2Lu3Llx2223xeOPPx677LJLTJkyJb7xjW80Kte3b9+46aab4pJLLolrrrkmevXqFccdd1z07ds3zj333HXWl7W57LLL4vLLL4///d//jWXLlkVpaWn85je/iV133bXd2wLAhsccv+5cf/31MW/evNzv9913X9x3330REXH44YcL7vAZFGQfPV8HAAAASEphvhsAAAAArJ1T5eFTWLp0adTW1q51fadOnWKTTTZpxxYBAG3BHA+kyKny8Cl87Wtfi2eeeWat67fccst46KGH2rFFAEBbMMcDKRLc4VP4v//7vyb3V/2obt26xS677NKOLQIA2oI5HkiR4A4AAAAJc3E6AAAASFirL05XV1cfixevaLMNFxYWxCab9IzFi1dEfb0P/dfGOLXMGLXMGLWOcWqZMWrZx41Rnz7p3cPY/N429Fu/O7oNsc8R+q3frbeu5/i8feJeWFgQBQUFUVhYkK8mrBeMU8uMUcuMUesYp5YZo5Zt6GO0ofZfv/W7o9sQ+xyh3/qdDqfKAwAAQMIEdwAAAEiY4A4AAAAJE9wBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3AEAACBhgjsAAAAkTHAHAACAhAnuAAAAkDDBHQAAABImuAMAAEDCBHcAAABImOAOAAAACRPcAQAAIGGCOwAAACRMcAcAAICECe4AAACQMMEdAAAAEia4AwAAQMIEdwAA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bMdvfvO/MWvWW9GvX/82a0dr9/2G9bvuuns8++xT62Q8UhlrAIAGBVlrUltE1NXVx+LFK9psw/fe+5c466zvt1l90GD8+COjrGznuOii8yLLsigoKIwsq2/xcQUFBbk3Jlr7mI/q0aNHVFVVR0QWJSUlMWDAwHjhhRlRW1vTqscPG7ZLvPTSC1FUVBQDBgyMf/7ztVi+fHmcf/7FMW7cEXHnnbfHxRefH127do3KyspG7Y1Y/UZKw5slnTp1irq6uoiI6Nate1RXV0VERPfu3aOqavXPXbp0jbKyYU2283Ea2tBcG7MsW+u6luptqe7WPL4t6uzcuTB69+4ZS5asiFWrPtnzvy77sy7G5tNoaEdxcXEMGDAwZs58tU3a0VL/1lz/f//3UlRWVkaPHj1iyJChbToebTHWH7cf9elT/Jnaty609fzeuXNhzJ37Zhx88MFx8823x6BBg9us7pR9muPHq6/+I77ylSNjs8ItoktBt3XcwrZTm1XHwvr56127Wb817HftfVxpy9cG65OO2u+G4+7a9qPP0u91Pcfn7VR5oZ1P4qyzJuU+9f+ooqKiKCgoiEMOOSS37M47b48LLzw3IiL22+/AaHjY5ptv0Wzd++13YER8eDbByJGjoplNRd++mzf6vaE9++wzJgoKCqKysjIX9q+77ndxwgknNwrthYWFsdtuIxvVMWrU6Cgs7BSbb75FzJjx9xg5clT89a+PxrXX3hh//eujcfjhR8SPfjQpnnpqelx88fmx334HRE1NTRxxxNFx2WWX5+rZaaeyqK+vj379+scWW/SLurq62G23kdGnT9+orq6KzTffPI488sioqamJgoLCKCoqjtramjjxxFMabWfOnNnNjlHE6k8hL774/Bg37ogmbbzoovPiRz+a1Oy6luptqe7WPL696szHtvPZj+ba8eUvHxnPPfdcXH/9TW3Sjpb617DvN6w/77yLorq6OrbddruoqamJSZN+1GbjkcpYAwCsKYlT5emYPvrpbmsVFBREQUFB1NfXN/pE+be/vTqKi4ujqqoqamo+DMN33DEtjjrqsNhmm22ipKQkKisro7a2NgoKCqK4uCS23HKr6NKlS3Tr1i323//A+J//uSkiIrp27RrdunWL6uqa2HLLLaNr1665eisqKqJLly6RZVl07949Vq6sjFWramOzzfrEggXvR8TqEN658+p6t956mygqKo4VK1ZE586donv37nHPPXfFc88909Cr6NKlSxQWFsSKFcsjoiAiVvdr2bIlUVRUFJtuumm8//78WLp0aXTv3j03fj/84bnx4IP3xVVXXRFFRUWxxRb9o6ioKH74w/Pim9+cGBERxcUlMW/evIiIGDNm/8iyiD/84aZYsWJ59OnTJz74YEFstlmfmDx5ctx111+ioCDi9tv/EgcdtE9cddUVcdNNf8pt5847b4vTT/+PZp+bqVNvz227W7dujdp4993/GwUF0ey6luptqe7WPL696szHtvPZj+bacfbZk/51dsmKNmlHS/1r2Pcb1k+densUFxfHjTf+MQ477MDcdttiPFIZ647krbfezHcT2k2nToVRUtIjyssro66udZ/SbEjjA22lvf9uPs3fdkfQUfu9Ph93BXfWmY8G7DV17tw5Vq1aFYWFhZFlWS6gd+nSJSIi9/3yurq6qK+vj4qK8thxx51i1qw3YsmSxZFlWXTu3Dn69u0bAwcOivfeey8GDtwh3njj9ViyZHEUFBREaenAWLBgfvTsWRSf//wXYtGihdG5c+eoq6uLoqLi+PznvxCzZr0RCxa8H0VFxbFkyeLo1KlTLFz4QfTsWRQRkStTXr4sFi9eFJ07r/6TKSwsjKKi1fUuWPB+DBw4KF58cUau3nffnRcLFiyIgoKCKCoqzvVr4cKFUVy8+jSa5csrYuHChVFaOjDeeWdObtsf1b1799z6AQNW92fAgIHRrVu3WLBgQRQXl8TAgYPi5ZdfjE6dOsWiRQsjIv5V18JcPYsXL44ePXpEUdHqfm2++eb/ulbAgkbbeffdeWt9zt59d15u22u2saHe5ta1VG9Ldbfm8e1VZz62nc9+tEc7Wqq3Yd9vWN9QfuONN2603bYYj1TGuiM555z/l+8mAB2M4wobKsGddaZr165r/cR91apVERGNLmAXEblPy7Msi9ra2lygLy4uiZkzX42qqqrcslWrVsX778+P1157NXbeuSwefvjhf52uvnr9zJmvxfjxR8aKFctj5sxXY+zY8bntLl9eEa+99kpUV9dE376bx/LlFZFlWaxatSo226xPvP76zMiyLGbOfPVfn7ivik022TTmz38vIlYH9+XLl8drr70aX/7ykfG3vz0Rq1bVxfLlFTFz5qtx1FHHxrvvzov589/LfYJfWFgQ/fsP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+93vfpeNGDEiO/7443Nlnn322WzQoEHZpEmTsieffDL7xS9+kZWWlmb33HNPo7omTZqU7bLLLtmtt96aPfbYY9m//du/ZXvttVdWXl6eK9PaObC1+25qOtoc397HmRRddtll2R577JENGDAge+mll3LLO2K/r7rqqmzYsGHZ1VdfnT399NPZvffem11wwQXZ8uXLsyxr22NBKp566qls4MCB2VlnnZX97W9/y+6+++7swAMPzPbff/+ssrIyV259f75Tfe25LrXU55kzZ2ajRo3Kfv7zn2ePP/549sADD2T/9m//lu20007ZG2+80ajs+tLnLGvdc92gsrIy23fffbM99tij2XIp9rtdg/tvfvObrKysLFuyZElu2R//+Mds0KBB2fz589uzKetcQ3BftGjRWssceOCB2b//+783WnbsscdmJ510Uu73559/PhswYED2+OOP55bNmjUrKy0tze6+++7cskmTJmX77rtvVl1dnVv2s5/9LBs+fHijZflWV1eX+/mHP/xhs38o7T0uVVVV2c4775z97Gc/y5Wprq7O9t133+yCCy749J39lFozRhMmTMhOPvnkj62nI49Rc39X5513Xrbzzjvnxm9D349aM0Yb+n7UnD/96U/ZgAEDcnPSCSeckB177LGNyvz7v/97dsghh+R+f++997JBgwZlf/zjH3PLlixZkpWVlWXXXHNNbllr58DW7Lsp6mhzfHsfZ1LzxhtvZGVlZdnNN9/cJLh3tH7PmjUr22GHHbJHHnlkrWXa8liQikmTJmVjxozJ6uvrc8uefPLJbMCAAdmzzz6bW7a+P98pvvZc11rq84oVK7KVK1c2WrZ8+fJsxIgR2Y9+9KPcsvWpz1nWuue6weWXX5599atfbbZcqv1u11PlH3vssRg5cmT06tUrt+yQQw6J+vr6+Nvf/taeTcm7d955J95+++045JBDGi3/0pe+FE8++WTu1MLHHnssSkpKYtSoUbky22+/fQwaNCgee+yx3LLHHnss9ttvv+jatWujusrLy2PGjBnruDetV1j48btcPsbl+eefj+XLlzfaZteuXeOAAw5oVFd7aWmMWqsjj9Emm2zSZNmgQYNi+fLlsXLlSvtRtDxGrdWRx6g5DfNTbW1t1NTUxNNPPx0HH3xwozJf+tKXYtasWTF37tyIiHjiiSeivr6+UblevXrFqFGjmoxRS3Nga/fdFHW0Ob69jzOpueSSS+K4446L7bbbrtHyjtjvO+64I7baaqvYe++9m13f1seCVKxatSp69uwZBQUFuWXFxcUREblTfTvC853ia891raU+b7TRRtGjR49Gy3r27Blbb711o9PB16c+R7T+NfScOXNiypQpcd555zW7PtV+t2twf/PNN2P77bdvtKykpCT69OmT9Pd/PouxY8fGoEGDYr/99ourr7466urqIiJy/V1zQvz85z8ftbW1ue8Xvfnmm7Hddts1OqhGrN55GupYuXJlvPfee03Gdvvtt4+CgoL1amzzMS4N/69Z7vOf/3y8++67jb7flpJnnnkmysrKYscdd4wJEybEs88+22j9hjZGf//732PzzTePoqIi+9FafHSMGtiPIurq6qK6ujr+8Y9/xK9+9asYM2ZMbLXVVjFnzpyora1ttr0R0ahfm266aWy88cZNyn30+NuaObC1+26KNoQ5fl0dZ1Jz7733xj//+c849dRTm6zriP1+8cUXY8CAAXHVVVfFyJEjY8iQIXHcccfFiy++GBHR5seCVBxxxBExa9as+J//+Z+oqKiId955J37+85/HDjvsEDvvvHNEdMzne01ek69WXl4er7/+eqO2d9Q+X3rppTFu3LgYOHBgs+tT7Xe7Bvfy8vIoKSlpsnzjjTeOZcuWtWdT1rk+ffrEaaedFpMnT45rr7029t5777j88svj0ksvjYjI9XfN8Wj4vWF9eXl57t3Pj/romDVcSGnNurp27Ro9evRYr8Y2H+NSXl4eXbt2jW7dujXZZpZlSY7frrvuGueee25cd911MXny5KisrIzjjz++0bt7G9IYPffcczFt2rQ44YQTIsJ+1Jw1xyjCftRg3333jaFDh8YRRxwRffr0iZ/97GcR8dn3o5KSkkZ9as0c2Nptpqijz/Hr8jiTksrKyvjJT34SZ555ZqM3+Rp0xH5/8MEH8cQTT8TUqVPjggsuiF/96ldRUFAQJ5xwQixatKjNjwWpGD58ePzyl7+Mn/3sZzF8+PDYf//9Y9GiRXHttddGp06dIqJjPt9r8pp8tf/6r/+KgoKC+MpXvpJb1hH7/NBDD8WMGTPijDPOWGuZVPvduc1rJCIi9tprr9hrr71yv++5557RrVu3uPHGG+Nb3/pWHltGR3D66ac3+n2fffaJsWPHxlVXXRXXXnttnlqVH/Pnz48zzzwzdtttt5g4cWK+m5OktY2R/Wi1a665JiorK+ONN96IX//61/Gtb30rpkyZku9mkZAN6Tjz61//OjbddNM48sgj892UdpNlWaxcuTKuuOKK3CdwO+20U4wZMyZ+//vfx5577pnnFq4bzz//fPzgBz+IY445JvbZZ59YunRpXHXVVXHyySfHH/7wh+jevXu+m0g7uf322+OWW26Jn/zkJ7HFFlvkuznrTHV1dfznf/5nnHbaac1+HSp17fqJe0lJSZPb7ESsfidrzdOKOqJDDjkk6urq4tVXX831d83xKC8vj4jIrS8pKYnly5c3qeujY9bwjtCaddXU1ERlZeV6Nbb5GJeSkpKoqamJ6urqJtssKChYL8Zvo402ir333jv+8Y9/5JZtCGNUXl4e3/zmN6NXr15x5ZVX5r7bZD9qvP3mxqg5G+p+NHDgwBg2bFgcffTRcdVVV8XTTz8d999//2fej8rLyxv1qTVzYGu3maKOOse3x3EmFfPmzYvrr78+Tj/99KioqIjy8vLcNTFWrlwZK1as6JD9LikpiV69ejU6bbZXr16xww47xBtvvNHmx4JUXHLJJbH77rvHWWedFbvvvnscfPDBcc0118Qrr7wSU6dOjYiOuZ+vaUN/Tf7oo4/G+eefH9/5znfiy1/+cqN1Ha3PN954YxQWFsahhx4a5eXlUV5eHrW1tVFfXx/l5eW56xmk2u92De7Nfc+loqIiPvjggybfD+joGvq75ni8+eab0aVLl/jc5z6XK/fWW281uR/gW2+9latjo402in79+jWpq+Fx69PY5mNcGv5/6623mmyzf//+6+07zh19jKqqquKUU06JioqKuO666xqd0mQ/Wu3jxqi1OvoYram0tDS6dOkSc+bMia233jq6dOnS7H4UEY36tXDhwianxa35ne/WzIGt3XdT1BHn+PY6zqRi7ty5UVtbGyeffHLsuuuuseuuu+bOEpw4cWIcf/zxHbLfX/jCF9a6rrq6us2PBamYNWtWk+/4brHFFtG7d++YM2dORHTM/XxNG/Jr8hdeeCHOOOOMGD9+fLOnjne0Pr/55psxe/bsGDlyZO4Y95e//CVmzZoVu+66a9x+++0RkW6/2zW4jx49OqZPn557Byti9QVQCgsLG121r6OaNm1adOrUKXbYYYf43Oc+F9tuu23ce++9TcqMHDkyd3XC0aNHx7Jly+LJJ5/MlXnrrbfilVdeidGjR+eWjR49Oh588MGora1tVFdJSUkMGzZsHfes7eRjXHbeeecoKiqKe+65J1emtrY27rvvvkZ1pWzlypXxyCOPxI477phb1pHHaNWqVfG9730v3nzzzbjuuuti8803b7TeftTyGDVnQ9uPmvPiiy9GbW1tbLXVVtG1a9fYbbfd4q9//WujMtOmTYvPf/7zsdVWW0XE6q9CFRYWxn333Zcrs2zZsnjiiSeajFFLc2Br990UdbQ5vr2PMykYNGhQ3HTTTY3+nX322RERcdFFF8UFF1zQIfu97777xtKlS+PVV1/NLVuyZEn84x//iMGDB7f5sSAV/fv3j1deeaXRsnnz5sWSJUtiyy23jIiOuZ+vaUN9Tf7GG2/EKaecErvvvntcdNFFzZbpaH3+5je/2eQYt+eee8aWW24ZN910U4wZMyYiEu53m99g7mMsXbo0GzVqVDZhwoTs8ccfz2677bZs+PDh2UUXXdSezWgXJ5xwQnb11VdnjzzySPbII49kkyZNykpLS7NLL700V+auu+7KSktLsyuuuCJ76qmnsvPPPz/bYYcdsueff75JXXvvvXc2bdq07MEHH8zGjh2bHX744VltbW2uzNtvv52VlZVlp512WjZ9+vTshhtuyAYPHpxdd9117dbn1li5cmV2zz33ZPfcc082YcKEbO+998793nDP3HyMy9VXX50NGTIku+GGG7Lp06dnp512WjZs2LBszpw5635Q1tDSGD377LPZKaeckt12223Zk08+mU2dOjUbP358Nnjw4OzFF19sVFdHHaPzzjsvGzBgQHb99ddnM2bMaPSv4b6ZG/p+1NIY2Y+y7NRTT81+/etfZw899FA2ffr07Prrr89GjRqVHXbYYbn96Nlnn80GDRqUXXDBBdlTTz2VXXHFFVlpaWk2bdq0RnVNmjQpGz58eHbbbbdljz/+eDZhwoRsr732ysrLy3NlWjsHtnbfTU1Hm+Pb+ziTqqeeeqrJfdw7Wr/r6uqyI488Mtt///2zu+++O3vggQeyY445JhsxYkS2YMGCLMva9liQihtuuCEbMGBAdvHFF2d/+9vfsrvvvjsbO3Zstscee2SLFy/OlVvfn+9UX3vms88LFy7MRo8ene21117Z9OnTGx3fXn/99fWyz63pd3PWdr/3FPvdrsE9y7LsjTfeyL7+9a9nQ4cOzUaOHJn95Cc/WSc3qM+3iy++ODvwwAOzoUOHZkOGDMnGjh2b3XjjjVl9fX2jcrfcckt2wAEHZIMHD87Gjh2bPfTQQ03qKi8vz84+++xs+PDhWVlZWfbd7343mz9/fpNyf//737Ojjz46GzJkSDZ69Ojs6quvbrK9fHvnnXeyAQMGNPvvqaeeypVr73Gpr6/PfvOb32SjR4/OhgwZkh199NF5e5Hc0hi9/fbb2QknnJCNGjUqGzx4cDZ8+PDsm9/8ZpOwlWUdd4z23XfftY7RO++8kyu3Ie9HLY2R/Wj1mwjjxo3Lhg0blpWVlWWHHnpodvnll2cVFRWNyj3wwAPZ2LFjs8GDB2cHHHBAduuttzapq7q6OvvJT36SjRw5Mhs6dGj2jW98I3vjjTealGvtHNiafTdFHWmOz8dxJkXNBfcs63j9XrRoUfb9738/22WXXbKhQ4dmJ5xwQpMA05bHghTU19dnf/jDH7LDDjssKysry0aNGpWdeuqpzbZ3fX6+U33tuS611OeGv+vm/k2YMKFRXetLn7Os9c/1R60tuKfY74IsW+PkfQAAACAZ7foddwAAAOCTEdwBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3GEDVFlZGVdeeWU8/fTT+W4KANCGzPHQMQnusAGqrKyMX/7yl/HMM8/kuykAQBsyx0PHJLgDAABAwgR3SMi8efPiwgsvjIMOOiiGDh0au+22W5x++ukxd+7cRuXuuOOOKC0tjeeeey4uueSS2H333WP48OFx/vnnR01NTZSXl8cPfvCD2HXXXWPXXXeNyy67LLIsi4iIuXPnxsiRIyMi4pe//GWUlpZGaWlpXHnlle3eXwDYUJjjgc+ic74bAHzo5ZdfjhkzZsShhx4aW2yxRcybNy9uvvnmmDhxYtx9993Ro0ePRuUvueSS2GyzzeK0006LF198Mf70pz9FcXFxzJgxI/r16xdnnnlmPPbYY/Hb3/42BgwYEOPHj49NNtkkLrzwwrjwwgvjgAMOiAMOOCAiIkpLS/PRZQDYIJjjgc+iIGt4iw7Iu6qqqujevXujZS+88EIce+yxMXny5Bg/fnxErH43/uyzz44999wzrrvuuigoKIiIiOOOOy5X/qKLLoqIiLq6uhgzZkxsvfXW8bvf/S4iIhYvXhwjR46M7373u3Haaae1XwcBYANljgc+C6fKQ0I+OqHX1tbGkiVLYuutt46SkpJ45ZVXmpQ/6qijchN6RMTQoUMjy7I46qijcss6deoUQ4YMiXfeeWfdNh4AWCtzPPBZOFUeElJVVRVXX3113HHHHfH+++/HR0+IqaioaFK+f//+jX4vLi6OiIh+/fo1Wb5s2bJ10GIAoDXM8cBnIbhDQi6++OK444474utf/3qUlZVFcXFxFBQUxJlnnhnNfaulsLD5k2bWthwAyA9zPPBZCO6QkL/+9a8xfvz4OOuss3LLqqurm30n/rP46Kl3AMC6Z44HPgtv2UFCOnXq1GTZ7373u6irq2vT7TRcuba8vLxN6wUAmmeOBz4Ln7hDQvbZZ5+YOnVqFBUVxRe+8IV44YUXYvr06dGrV6823U737t3jC1/4Qtxzzz2x7bbbRq9eveKLX/xiDBgwoE23AwCsZo4HPgvBHRJy7rnnRmFhYdx1111RXV0dO++8c0yZMiVOOumkNt/WJZdcEhdffHH8+Mc/jtra2vjud79rUgeAdcQcD3wW7uMOAAAACfMddwAAAEiY4A4AAAAJE9wBAAAgYYI7AAAAJExwBwAAgIQJ7gAAAJAwwR0AAAASJrgDAABAwgR3AAAASJjgDgAAAAkT3AEAACBhgjsAAAAk7P8DpMu6HSPKjuMAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.catplot(data=df, x=\"amt\", col=\"is_fraud\", kind=\"box\", sharex=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "fc866dac-b421-422b-8078-2527b9dfc53f", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:19.571489Z", + "iopub.status.busy": "2026-01-17T19:34:19.570926Z", + "iopub.status.idle": "2026-01-17T19:34:27.296504Z", + "shell.execute_reply": "2026-01-17T19:34:27.295797Z", + "shell.execute_reply.started": "2026-01-17T19:34:19.571460Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+4AAAHjCAYAAAC95UVJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdA5JREFUeJzt3Xl8FdX9//H3JLlZZCmrNSkEkZKorCqCAcUatbUVlAoBtdRCAO33a9GGr79WAbW2oHUpSG1tBQXaaq0sLsWli6auBLFV0WorqwQNKgIawOyZ3x/xXu8yM3fukmRy83o+Hj5a7p07d2Yyd875nOVzDNM0TQEAAAAAAE9Ka+8DAAAAAAAA9gjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AFJDz/8sAoLC/Xee+8lfd+PPvqozjvvPA0ZMkSjRo1K+v7j1ZrnDACAV1DGA0gFGe19AEAq27Fjh6677jqdccYZuvzyy5Wdnd3eh9Tu6uvrtWzZMj322GOqrq5WYWGhfvjDH2rcuHHtfWgAALhGGR/qyJEjuu+++7Rlyxa9+eab+vTTT3XLLbfooosuau9DA1ICgTsg6cILL9T555+vzMzMpO538+bNam5u1oIFCzRgwICk7rujuvbaa/XXv/5Vl112mY499lg98sgjuvzyy/W73/3OU70VAIDUQBnfNg4ePKhf//rXysvLU2FhoTZv3tzehwSkFAJ3QFJ6errS09OTvt/9+/dLkrp16+a4nWmaqqurS/nW+jfeeENPPPGEfvSjH2nWrFmSpEmTJmnChAm644479Kc//amdjxAAkGoo49vG0UcfrRdffFF9+/bVm2++qSlTprT3IQEphTnugKzngr355puaNWuWxowZo+HDh6u4uFjXXXed630WFxfrrrvukiQVFRWpsLAw8O/i4mJdccUVeuGFF3TRRRdp+PDhgaB1/fr1uuyyy1RUVKShQ4fqW9/6lv74xz9G7D94f+Hfe+2114a8tm3bNl122WUaPny4xo8fr7vvvlvNzc2uzyVZ/vKXvyg9PV3Tpk0LvJaVlaUpU6botdde0969e9v8mAAAqY0yvm1kZmaqb9++bf69QGdBjztgYf/+/Zo1a5Z69uypyy+/XN27d9d7772nv//97673MX/+fD366KP6+9//rp/85Cc66qijVFhYGHh/165d+r//+z9NmzZNU6dO1cCBAyVJDz74oAYPHqzi4mJlZGToH//4h2666SaZpqnvfOc7MZ/Lvn37dNlll6mpqUmXX365cnJytGbNGmVlZbn6fH19vQ4fPuxq2169ejm+/5///EfHHnusunbtGvL68OHDA+/n5ua6+i4AAOJBGf+FZJbxAFoXgTtg4bXXXtOnn36q++67T8OGDQu8XlZW5nof55xzjv7zn//o73//u77xjW9EFHi7d+/WvffeqzPOOCPk9fvvvz9kON306dM1a9YsrVq1Kq5CfcWKFTpw4IDWrl0bCJC//e1v6+tf/7qrzz/++OOueyHeeecdx/f37dtn2Rrvf+2jjz5y9T0AAMSLMv4LySzjAbQuAnfAgn++2rPPPqvjjz9ePp8v6d/Rr1+/iAJdUkiBfujQITU0NGj06NF68cUXdejQoahz6cI999xzGjlyZKBAl1pazSdOnGg5PC/c6aefrlWrVsX0nXZqa2stkwP5ewZqa2uT8j0AANihjP9CMst4AK2LwB2wMHr0aH3jG9/Qr371K61evVqjR4/WOeeco4kTJyYtK22/fv0sX//Xv/6lu+66S6+//rpqampC3ounUK+qqtKIESMiXvcP24vm6KOP1tFHHx3Td9rJzs5WfX19xOt1dXWB9wEAaE2U8V9IZhkPoHURuAMWDMPQL3/5S73++uv6xz/+oRdeeEHz58/XqlWr9NBDD6lLly4Jf4dVkFpZWakZM2bouOOO07XXXqvc3Fz5fD4999xzWr16tatkM01NTQkfW7Da2lodOnTI1bbRktL07dtXH374YcTr+/btkyQqDwCAVkcZ/4VklvEAWheBO+Bg5MiRGjlypMrKyrRhwwZdc801evLJJ1VSUtIq31deXq76+nr95je/UV5eXuD1l19+OWLbL33pS6qurg55rb6+PhAE++Xl5Wn37t0Rn9+1a5erY3ryySeTNv/t+OOP18svv6zDhw+HJKjbsmWLJOmEE05w9T0AACSKMj65ZTyA1kXgDlj49NNP1b17dxmGEXjNH1RaDfVOFv86s6ZpBl47dOiQ1q9fH7Ft//799c9//jPktTVr1kS0xp955pn63e9+pzfeeCMwB+7AgQPasGGDq2NK5vy38847TytXrtRDDz0UWMe9vr5eDz/8sEaMGEFGeQBAq6OM/wJz3IGOg8AdsPDII4/owQcf1DnnnKP8/HwdOXJEa9asUdeuXTV+/PhW+95x48bJ5/Pp+9//vi6++GIdOXJEa9euVe/evSNa2UtKSnTjjTdq7ty5Gjt2rP773//qxRdfVM+ePUO2mz17th577DHNnj1bl112WWCpmLy8PFet58mc/zZixAidd955WrJkifbv368BAwbokUce0fvvv6/Fixcn5TsAAHBCGf+FZM9xv//++1VdXR1YJeYf//iHPvjgA0nSd7/73Zjn8AP4AoE7YGH06NF688039eSTT+rjjz9Wt27dNHz4cN1xxx3q379/q33vcccdp1/+8pe68847deutt6pPnz665JJL1KtXL82fPz9k26lTp+q9997TunXr9MILL+iUU07RqlWrNGPGjJDtjj76aP3+97/XokWLtHz5cvXo0UMXX3yxjj76aC1YsKDVzsXObbfdpjvvvFN//vOf9emnn6qwsFC//e1vdeqpp7b5sQAAOh/K+NazcuVKvf/++4F//+1vf9Pf/vY3SdIFF1xA4A4kwDCDx+sAAAAAAABPSWvvAwAAAAAAAPYYKg/E4ZNPPlFDQ4Pt++np6erVq1cbHhEAAEgGyngAXsRQeSAO3/3ud7V582bb97/yla+ovLy8DY8IAAAkA2U8AC8icAfi8O9//ztifdVgWVlZOuWUU9rwiAAAQDJQxgPwIgJ3AAAAAAA8jOR0AAAAAAB4mOvkdE1NzTpw4EjSvjgtzVCvXl104MARNTfT6W+H6xQd1yg6rpE7XKfouEbROV2jvn29t4Yx5XtycN6cd6rrjOcscd6ct3utXca3W497WpohwzCUlma01yF0CFyn6LhG0XGN3OE6Rcc1iq6zX6POev6cN+ed6jrjOUucN+ftHQyVBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAAADyMwB0AAAAAAA8jcAcAAAAAwMMI3AEAAAAA8DACdwAAAAAAPIzAHQAAAAAADyNwBwAAAADAwwjcAQAAAADwMAJ3AAAAAAA8jMAdAAAAAAAPI3AHAAAAAMDDCNwBAAAAAPAwAncAAAAA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w4dr2rRpev3115NyzrFyc42++93vWt5fO3bsCNkuVa/RU089pf/5n//R+PHjNXLkSF144YVat25dxDF35vvIzTXq7PfRc889p+nTp+u0007T0KFDdfbZZ+uWW27RoUOHQrYrLy/XBRdcoGHDhukb3/iG1q9fH7Gv+vp63XrrrRo3bpxGjhypmTNnaufOnRHbuS0D3dy7XpRKZXx7PGe85siRIxo/frwKCwv15ptvhryXiuf9yCOPaNKkSRo2bJjGjBmj2bNnq7a2NvB+Mp8FXvHMM8+opKREJ510kk4//XRdffXV2rNnT8R2Hfnv7dW6Z2uKds6HDx/WXXfdpSlTpmjUqFEaO3asvv/97+udd96J2FdHOWfJ/d/a7+mnn1ZhYaHldp48b7MNffLJJ+a4cePM73znO+bzzz9vrl271jzllFPMm266qS0Po02sX7/eLCgoMJ9//nnztddeC/xXVVUV2Obxxx83CwsLzaVLl5oVFRXm9ddfb5544onma6+9FrKv0tJSc/z48eYTTzxhPv300+aECRPMCy64wGxoaAhs8+6775ojR440r7zySnPjxo3mqlWrzCFDhpj33ntvW52yK3//+9/N8ePHm3PnzjUnTJhgnn/++RHbtMd1ueeee8whQ4aYq1atMjdu3GheeeWV5kknnWRWVla2ynVw4uYaTZ8+3bz44otD7q3XXnvNrK2tDdkuVa/R1KlTzbKyMvOJJ54wN27caN5xxx3m8ccfb951112BbTr7feTmGnX2++jRRx81b731VvMvf/mLuWnTJvMPf/iDOXr0aHPmzJmBbV555RXzhBNOMK+//nqzoqLCXLp0qVlYWGg+9dRTIfu6/vrrzVNOOcVcu3at+fzzz5uXXnqpecYZZ5jV1dWBbdyWgW7vXa9JtTK+rZ8zXnTbbbeZY8eONQsKCsw33ngj8Hoqnvfdd99tnnTSSeY999xjvvzyy+Zf/vIX88YbbzQPHz5smmZynwVesWnTJvP44483r732WvOll14yn3jiCfPrX/+6ec4555g1NTWB7Tr639urdc/WFO2c33nnHXPcuHHmkiVLzBdeeMF8+umnzUsvvdQcMWKEuX379pBtO8o5m6a7v7VfTU2NedZZZ5ljx4613M6L592mgftvf/tbc+TIkebBgwcDr/3pT38yTzjhBPODDz5oy0Npdf7Aff/+/bbb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6UWpWsa3xXPGK95//32tXLlSV111lQ4dOqTq6upATozPPvtMR44cScnz7t69u3r06BEybLZHjx468cQTtX379qQ/C7xi0aJFOu2003TttdfqtNNO03nnnafly5fr7bff1mOPPSYpNe/zcJ29Tv7cc8/phhtu0P/+7//q29/+dsh7qXbOv/vd75SWlqbzzz9f1dXVqq6uVkNDg5qbm1VdXR3IZ+DV827TwN1qnsuhQ4e0b9++iPkBqc5/vuHXY+fOnfL5fOrfv39gu127dkWsB7hr167APo466ijl5uZG7Mv/uY50bdvjuvj/d9euXRHfmZeX12FbnFP9GtXW1uqKK67QoUOHdO+994YMaeI+auF0jdxK9WsUrrCwUD6fT5WVlcrPz5fP57O8jySFnNfHH38cMSwufM63mzLQ7b3rRalYxrfVc8Yr3nvvPTU0NOjyyy/XqaeeqlNPPTUwSvCyyy7TzJkzU/K8v/rVr9q+V1dXl/RngVfs2LEjYo7vMccco549e6qyslJSat7n4Tpznfz111/X1VdfrUmTJlkOHU+1c965c6d2796toqKiwDPu8ccf144dO3Tqqadq/fr1krx73m0auI8fP14bN24MtGBJLQlQ0tLSQrL2paonn3xS6enpOvHEE9W/f38de+yx+stf/hKxTVFRUSA74fjx4/Xpp5+qoqIisM2uXbv09ttva/z48YHXxo8fr2eeeUYNDQ0h++revbtOOumkVj6z5GmP63LyySera9eueuqppwLbNDQ06G9/+1vIvrzss88+07PPPqthw4YFXkvla9TY2Kgf/vCH2rlzp+699159+ctfDnmf+yj6NbLS2e4jK1u2bFFDQ4P69eunzMxMjRkzRn/9619DtnnyySc1aNAg9evXT1LLVKi0tDT97W9/C2zz6aef6sUXX4y4RtHKQLf3rhelWhnf1s8ZLzjhhBP0+9//PuS/6667TpJ000036cYbb0zJ8z7rrLP0ySef6D//+U/gtYMHD+qtt97SkCFDkv4s8Iq8vDy9/fbbIa+9//77OnjwoL7yla9ISs37PFxnrZNv375dV1xxhU477TTddNNNltuk2jnPmTMn4hl3+umn6ytf+Yp+//vfq7i4WJKHzzvpC8w5+OSTT8xx48aZ06dPN1944QVz3bp15qhRo8ybbrqpLQ+jTZSWlpr33HOP+eyzz5rP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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.catplot(data=df, x=\"amt\", col=\"is_fraud\", kind=\"strip\", sharex=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "14579686-3fd6-414b-a0f9-ab97ba961d7e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:27.297811Z", + "iopub.status.busy": "2026-01-17T19:34:27.297492Z", + "iopub.status.idle": "2026-01-17T19:34:27.304060Z", + "shell.execute_reply": "2026-01-17T19:34:27.303292Z", + "shell.execute_reply.started": "2026-01-17T19:34:27.297773Z" + } + }, + "outputs": [], + "source": [ + "def pie_bar_plot(col):\n", + " print(df[col].value_counts())\n", + " sns.set_palette(\"Spectral\")\n", + " fig, axs = plt.subplots(1, 2)\n", + " axs[0].pie(\n", + " df[col].value_counts().values.tolist(),\n", + " autopct=\"%.2f%%\",\n", + " textprops={\"fontsize\": 25},\n", + " shadow=True,\n", + " )\n", + " sns.countplot(data=df, x=col, hue=\"is_fraud\", palette=[\"blue\", \"orange\"], ax=axs[1])\n", + " fig.legend(labels=df[col].value_counts().index.tolist(), loc=\"upper left\", fontsize=20)\n", + " fig.tight_layout()\n", + " fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "c24e98cf-3fb8-4a44-9b4f-e765ccd80508", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:27.305414Z", + "iopub.status.busy": "2026-01-17T19:34:27.305119Z", + "iopub.status.idle": "2026-01-17T19:34:30.870141Z", + "shell.execute_reply": "2026-01-17T19:34:30.869432Z", + "shell.execute_reply.started": "2026-01-17T19:34:27.305383Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gender\n", + "F 1014749\n", + "M 837645\n", + "Name: count, dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pie_bar_plot(\"gender\")" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "8bc2b6a4-39b8-4083-94d8-819eb001edf6", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:30.871175Z", + "iopub.status.busy": "2026-01-17T19:34:30.870981Z", + "iopub.status.idle": "2026-01-17T19:34:33.816427Z", + "shell.execute_reply": "2026-01-17T19:34:33.815498Z", + "shell.execute_reply.started": "2026-01-17T19:34:30.871157Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "is_fraud\n", + "0 1842743\n", + "1 9651\n", + "Name: count, dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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6IPVatXpF1yo/Xt2a9+uGhVXTBjUvK3vvK2cggKVf+7zCu/epXDNzjgnBQAgMTL/4fOyFY3j3D4gBVRUVBxxll57e7saGxuPOHvvWK+/bdu2wx4zTVM7d+7U4sWLj+vakQg3gAFgtItGY7zeAwAwzPjVbKAfvqwsLbvwYlksVgUOHBj0vPXPPK3WlhZl/fM3ZHgH3g4UAICRLu3c8+VdchplH5Aili5dqldffVVtbW2HHnvyySdlsViGXMjV19frzTff1MyZMw+7/gcffKCamppDj7322mtqbW3Vqaeeetz5AQAAAABDQ+EHDGDizJk68YwzdKC+XqGenkHNiUYieuGRv0o+n7Ju+zJnHAEAUppz2gxlXPvZZMcAMARr1qyR1+vVLbfcoldeeUV//OMfdd9992nNmjXKz88/NO7qq6/W8uXLD33+6KOP6otf/KL++te/av369fr973+vK664QlarVddee+2hcStWrNCkSZN066236vnnn9fjjz+uO+64Q6eddppmzZqV0OcKAAAAAGBLT2BAhmHo5BVnq7a6WtXvb1FZ5RQZgyjwgoGAXnrsMZ1x0cXyfepytT30mwSkBQBgeFmzspX9la9LppnsKACGwO/36xe/+IXuuece3XLLLfJ6vbrkkkt02223HTYuFospGo0e+ry4uFgNDQ36zne+o/b2dqWnp+ukk07S5z//eZWUlBwaZ7fb9b//+7+69957dfvtt8tms2n58uW64447EvYcAQAAAAAfMUyTuzfAYOzbVaMH779fkUhE+cXFg543Y+FCzVuyVI3fuUvdb7wex4QAAAwzm015375PjoqJbOUJICGi0ZiamzuSHaNfNptFmZlenXdenTZvDiU7DgCklOnTHXr00SK1tHRwhh8AAIOQleWV1Tq4zTrZ0hMYpMLSMp12wQUKdXepvbV10PM2bdigPdu3KesLX5KtsCh+AQEAGGYZ190ox4RJlH0AAAAAAAAjHIUfMASzT16sE5adoca6OoW6uwc975UnnlBHd7ey/vkbMlyuOCYEAGB4eJedqfSzz5Vh4cdFAAAAAACAkY47OMAQWCwWnbrqfFXOnau91VWKfey8k/6EQyE9/9e/yJpfoKzPf1Hi5ikAYARzTJ6izJv/Uez8DgAAAAAAkBpoHYAhcrrdWnHZGuWXjFftzp2DvhkaOHBALz32mNwnnqSM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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pie_bar_plot(\"is_fraud\")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "d0ad04a3-6a06-4c44-b66c-ab026c5b99b5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:33.818165Z", + "iopub.status.busy": "2026-01-17T19:34:33.817535Z", + "iopub.status.idle": "2026-01-17T19:34:34.136288Z", + "shell.execute_reply": "2026-01-17T19:34:34.135652Z", + "shell.execute_reply.started": "2026-01-17T19:34:33.818140Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABckAAAMLCAYAAACVWR9lAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA58NJREFUeJzs3Xl4FFW+//FP9ZIECCFhJ6KCQVmUfVNEQHDADYEogkhYdBDhqsPMFVHHO6PeUcZBZ0aRxWXYUQFFUVQQEBAFFAOyCiICshhkyUISSKq76vdHfvS1SYB0SFJJ+v16Hh/pU3Xq+z2u4ZOTU4Zt27YAAAAAAAAAAAhDLqcbAAAAAAAAAADAKYTkAAAAAAAAAICwRUgOAAAAAAAAAAhbhOQAAAAAAAAAgLBFSA4AAAAAAAAACFuE5AAAAAAAAACAsEVIDgAAAAAAAAAIW4TkAAAAAAAAAICwRUgOAAAAAAAAAAhbHqcbAAAAQNEsXrxYCxcu1M6dO5Weni6fzxe4tmLFCtWvX9/B7krHxIkT9eqrrwY+X3LJJfr888+D7unevbsOHToU+PzQQw/p4YcfLrUeUTIWLlyoJ554Imhs165dDnWTX1JSkr755pvA5379+unvf/+7gx0BAADgXAjJAQAAyqHx48drxowZTreBEjBx4sSgzzfddJOaNm1abM8/ceKEunTpItM0g8Zr1aqlVatWyePhtwgAAAAIL3wFDAAAUM4cPnxYs2bNcroNlJDf7oyX8nbHF2dI/uGHH+YLyCXp6NGjWrNmjW688cZiqwUAAACUB4TkAAAA5czWrVtlWVbQ2NNPP63rrrsusAu4bt26TrSGcuD9998/7zVC8uLxz3/+Uzk5OYHPlStXdrAbAAAAnA8hOQAAQDmTnZ2db2zgwIEyDMOBblCefP/999q5c+c5r3/++edKS0tTbGxs6TVVQdWqVcvpFgAAAFBIhOQAAADlxNkvqfytJk2aBH7doUMHzZ49W5LUuHHjoPvGjx+vnj176o033tCyZct06NAhnT59OvCiz4MHD+rzzz/X999/rx9++EGpqalKS0tTTk6OqlSpoksuuUQtW7ZUYmKiWrRoUWAvhXlhYSgvXVy0aJHeeeedwPWEhAT1799f/fv3L/D+i7Fx40a9//772rhxo1JSUpSTk6PY2Fg1adJEvXr1Ut++feX1evPN+/rrrzVkyJCgsRUrVigiIkKvv/66Vq1apSNHjqhy5cpq3bq1Ro0apZYtWwbuPXjwoHr06FFgT0888UTQX6uCXk5aWAsXLgz6fM011+jIkSM6evSoJMk0TS1evFiDBw8ucP7FrvOMrKwsLVmyRDt27NDOnTt19OhRpaenKzMzU1FRUapZs6aaNWumW2+9VTfddFPI3wD64IMPNG7cuMDnKlWq6MsvvyxwN/f//u//as6cOYHPrVu31jvvvBP4vHXrVi1YsECbNm0K/PsSHR2tuLg4XXLJJWrevLmaN2+ubt26BZ3nXph/D9LT0/X2229rzZo12rt3rzIyMuR2u1W9enXVqFFDTZs2VYsWLXTDDTfw0yEAAAAliJAcAAAgjKSkpKhPnz46ePBggdeXL1+u8ePHF3gtPT1d6enp2rFjh9555x0NGzZMjz/+eIn16vf79dhjj2nx4sVB41u2bNGWLVu0fPnyoG8OXIzMzEz9+c9/1pIlS/JdO3r0aOC87hkzZujVV19Vw4YNL/jMdevW6e9//7syMzMDY7m5uVq5cqW+/PJLTZ06VZ07dy6W/gvjTAD+W4mJifr555+DXgK7cOHCc4bkBSnKOn/++Wc9+eSTBT4vMzNTmZmZ2rdvnz755BN16NBBU6ZMUXR0dKF7uvXWWzVhwgQdO3ZMUl4o//HHH+f7xoplWVq6dGnQ2J133hn49ezZs/Xcc8/Jtu2ge878u7Bv3z599dVXkqQvv/wypN3je/fuVVJSUuAbFGeYpqnDhw/r8OHD2rp1q+bPn6///u//1gMPPFDoZwMAACA0LqcbAAAAQOmZNGnSOQPyUNi2renTp2vBggXF0FXBJk+enC/U/a3Vq1cXywtMTdPUqFGjCgzIz/bjjz9q6NCh+vXXXy947//8z/8EBcdn1/zLX/4iv98fcr9FtXr1ap04cSLw2ev16pZbbtEdd9wRdN/27dv1ww8/FPq5Jb3Ob775Rs8880xIcyIiIjRgwICgsfnz5+e7b8OGDUEhdeXKlXXrrbdKyvvmyAsvvJAvIC8uL7zwQr6AHAAAAM5gJzkAAEA5MXToUPXr109Lly7VP/7xj6BrK1asCPw6MjLynM/w+XyqVauW/vCHP6hNmzbKzs7Whg0bAsdQeL1eXXvttbrxxhvVsGFDxcXFqVq1asrKytIPP/ygN998U7t37w487z//+U+JHHty4sQJvf7660FjlSpV0tixY9W2bVsdOnRIL774on766aeLrjV37tygYzG8Xq9Gjhyprl27qkqVKtqxY4f++c9/6vDhw5KkI0eO6MUXX8z39+Bstm3r9ttv17Bhw2Sapv71r38F1Tl06JA2bdqkdu3aqW7duoG/h2cfu/LYY4+pV69egc+/PdIjFGcftXLDDTeoevXqql69uhISErRnz57Atffffz/ouJLzCWWdZxiGoSZNmqhbt25q3ry5qlevrri4OOXm5urQoUOaP3++Vq5cGbh/8eLFevTRR1WnTp1Cr/eee+7R66+/LtM0JeX9BMLOnTuDfvrgk08+CZpz8803q0qVKpKkTZs2BeZKecfcPPnkk4GfIjh27Jh++OEHbdiwQWvWrCl0X2f89q+RJP3pT39Sly5dVLlyZWVkZGjfvn3atGlTkZ4NAACA0BCSAwAAlBMxMTGKiYlRXFxcvmv169cv1DNcLpfefPPNoKCwefPmgV/fe++9uvfeewuc26xZMzVq1CjoOIq9e/fq2LFjqlmzZmGXUShLlixRbm5u0NjTTz+tvn37Sso7g7158+bq0aNHvvtCNXfu3KDPf/zjH3X//fcHPickJKhmzZoaNmxYYGzx4sV66qmnFBMTc87ntm7dWi+++GLgPO2XX35Z1113XdA9u3btUrt27eTxeM759zAuLq7Qf3/P5cSJE/riiy+Cxvr06RP49R133KF//etfgc8fffSR/vu//7tQgXwo6zyjSZMmWrRoUYHPa9y4sbp27aqOHTvq5MmTkvKORUlOTg7s8i6MWrVq6eabb9ZHH30UGJs3b57++te/Sso7zmfZsmVBc+66667Ar30+X9C1G264QTfddFPgc0JCgjp27KikpCSdPn065G9e/HZ3fXR0tIYPH66IiIjAWPPmzdW7d29JOudOfQAAABQPQnIAAIAw0qNHjwue4/3zzz/rvffe04YNG/Tzzz8rIyNDOTk557w/JSWl2EPyLVu2BH2OiorS7bffHjRWu3ZtdenSRcuXLy9ynSNHjujnn38OGvvHP/5xwV3ifr9fmzZtUteuXc95z6BBg4JeOFm9enXFxsYqLS0tMJaenl60xkP04YcfBu2KjomJUffu3QOfe/furX//+9+Bo0XOnMF+4403XvDZRV3nyZMn9d577+nLL7/UTz/9pNTUVJ06deqcx5uk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pF69euW71rVrV0VGRmrt2rXKyckJjK9atUqSdOONN+Y7UqVmzZpq27at0tPTlZycXHKNA0AJ8H+/VTnPPib/Vyvzdo/3uEURT/1droSrnG4NAAAAAACg3Cu1t7utX79e33//vXJyclS3bl116dJF11xzTYH37ty5U1LB55VHREToyiuv1LZt27R37141adIkaE6zZs0KfGazZs20fv167dq1K98xLQBQFtmnT8u3cK78q5dJkoyateUdOkquq5o63BkAAAAAAEDFUWoh+aJFi4I+v/zyy+rVq5fGjx+vKlWqBMYzMzN18uRJSVLdunULfFbdunW1bds2HT58OBCS//LLLxecI0mHDx++uIUAQCmwfvhe5swpso/9Kklyd+0pT+IgGVFRDncGAAAAAABQsZR4SH7ZZZdp3Lhx6tKli+Lj45WRkaENGzZowoQJWrp0qfx+vyZNmhS4PysrK/DrqHOEQZUqVcp3b3Z2dtC1s1WuXDnfnKLyeErvlBq32xX0Z2oAFZudm6vchW/JXP6pZNsyqtdU5PAH5WnWwunWAAAV2LZt27R27Vpt2bJFW7Zs0ZEjRyRJu3btKvD+iRMn6tVXXz3n80aMGKFHH320wGvJycmaOnWqNm/eLNM0lZCQoMGDB6tv377nfF5KSopefvllrVmzRunp6YqPj9dtt92mkSNHKjIysvALBQAAAApQ4iF5nz59gj5XrlxZvXv3VseOHdW7d28tX75c3333nVq1alXSrRQLl8tQXFyVC99YzGJiCg7/qQFUHDm7durExH/Kd/iQJKlKj56KHT5Crv//TT4AAErK5MmTtWLFipDntWnTRpdffnm+8YKOTZSkpUuX6o9//KMsy1L79u0VFxendevWady4cdq1a5fGjRuXb87+/fs1YMAApaam6qqrrlK7du20bds2TZo0SevWrdPMmTPzvZMIAAAACEWpHbdyttq1aysxMVHTpk3TmjVrAiH5b49eOX36tKKjo/PNPXXqVL57z+wUP3PtbGd2mv92TlFYlq2MjOyLekYo3G6XYmIqKSPjlPx+ixpABWSbpnIXzZe55MO83eOxcYocOlJGizZKz7GlnIv/CRgAwPnFxFQK6594a9WqlRo3bqzmzZurefPm6t69u3Jzcy84r3///kpMTCxUjbS0ND355JPy+/2aOHGievbsKUk6duyYBg0apGnT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WrlypZKSkjRixAi1b9/eG6cMoIwxa9eVefd9cg0YKs+6VXLHxcr5aZc8m9bJs2mdFBYuq2M3WZ26yaxcxdftAgBQqHr37q2goKBsy6tUyf5v3muvvabJkycrICBAnTp1UkpKiuLj47VixQqNHTtWPXv2zLbPvHnz9OSTT8rj8aht27YKDw/XypUrNWrUKO3atUujRo0qkvMCAABA2eCVkLxFixa66667tHnzZm3ZskVJSUkKDAxU48aN1adPH911110KCAjItt8LL7ygxo0ba+rUqYqPj5efn586duyokSNHKjIyMsdavXv31tSpUzVu3Dht2rRJaWlpqlevnoYOHap+/foV9akCKOMM/3KyOnaV1bGrPIcPyo6Llb1ymZR4SvZ3c2R/N0dm4+ayOnWX2bKtDD8/X7cMAMBV+/Of/6yaNWtecbv4+HhNnjxZYWFhmjZtmurUqSMp/dOiw4YN03PPPad27dplGQyTmJio559/XrZt65133lGvXr0kScePH9fdd9+tTz75RN26dWMwDAAAAArMKyF5vXr19PLLLxdo3/79+6t///752qd169b66KOPClQPAAqLWbWGzAHD5Lr9Lnk2rZUdFyvPji2Zf1S+gqwOnWVFx8isfuVgAQCAkm7ChAmSpIceeigzIJekVq1a6c4779SUKVM0c+ZM/fGPf8xcN2PGDJ09e1Y9evTIDMglqVKlSnrmmWf0yCOPaMKECYTkAAAAKDCf37gTAEo7w+WS1bqD/B9/Xv6v/kfWzXdI4RHSuTOyF32r1FeeVsobf5V7xRI5KRd83S4AAEXiwoULWrVqlSSpT58+2dZnLFu8eHGW5UuXLpWU/onRS3Xt2lXlypVTfHy8UlJSCrtlAAAAlBFeGUkOAEhnVrpG5m0D5brlDnm2bUofXb55nZw9P8q950e5p0+S1a6TrE7dZfzhWhmG4euWAQC4opkzZyoxMVGmaapOnTrq2bOnqlevnmWbffv2KTU1VREREapatWq2YzRp0kSStGvXrizLd+7cKUlq2rRptn38/f1Vv359bd26Vfv27VOjRo0K65QAAABQhhCSA4APGKYpq3krWc1byTmdKHvlUtkrFss5elj2soWyly2UUauOrE7dZbWPlhFU3tctAwCQq3HjxmV5/MYbb+ihhx7Sww8/nLksISFBknIMyCUpKChIISEhOn36tM6e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367Ro0frrbfeKrSaAAAAAHCxEydOKCUlRdWrV/d1KwAAoBhjJHkxk5qaqqioKJ05c0Zz5sxRkyZNsqy/7bbbtGvXLs2aNUvNmjUrtLrNmzdXampqoY0kv5wNGzbozjvvlL+/v9atWyd/f/8irwkAAABAWr16tbZs2aKwsDDdcMMNCgkJkSSlpaVp1qxZWrNmjZKSklSjRg317t1bHTt29HHHV2fYsGFat26dtm/f7utW8uT9999XmzZt1K5dO5/2kZqaqk2bNunYsWMKDAxUkyZNCmXaTwDIidvtVmJiokJDQ+Xn53fZbRMTE5WcnFygi58ej0c//fST/Pz8VKdOHRmGkblu69atWrx4sU6ePKnatWvrpptuuqqfe9u3b1dsbKx+/PFHHTx4UOfOnZMklS9fXjVq1FCDBg0UExOTLfeD7zCSvJhZv369zpw5o9q1a+f4Rundu7d27dqlxYsXF2pI7k2NGjWSlP6LV2Jioq655hofdwQAAAAULzt37tTHH3+sNWvW6MSJEwoKClLTpk115513qlevXgU65jPPPKOvv/468/Gbb76piRMnqmbNmho+fLi2b9+ui8dQTZs2TYMHD9bLL798tafjU4U5LmzXrl1atGiRdu7cqYSEBJ07d06maSokJET169dXu3bt1KtXrwIPBBo7dqwMw1C1atV066236rbbbsvyydzCEhcXpypVqqh+/frZ1k2ZMkXvvvuukpKSsizv0aOH/va3vykiIqLQ+0HxlJycnCXYCwoK8nFHKG1Onjyp0aNHa8GCBUpNTZXL5VKXLl302GOPqWHDhjnu849//ENffvllvi9+Ll26VC+88IJOnDghSapTp47efvttNW7cWOPHj9d//vMfOY4jx3FkGIbGjh2r119/Xb17985XnQMHDuj555/XmjVrJOX8b9C2bds0f/58vffee2rXrp1ee+011axZM191Cmrp0qU6deqUbr/9dq/UK0kYSV7MTJw4UWPGjFGfPn30n//8J9v6JUuW6MEHH9QNN9ygd999t9DqenMk+Y8//qhbb71Vfn5+Wr9+PSPJAQAAUGIUZmj0xhtvaPLkyfr888/VvHnzzOXffPONnn32Wbnd7mz/uTYMQ4MGDdIrr7ySr1qzZ8/W888/r9DQUN12222SpK+++krVqlVTVFSUPvnkE3Xr1k033nijKlSooM2bN2vSpEm6cOGC3nrrLd10000FPs+ikNfQ4siRI0pJSVHt2rWzLJ83b16+6h05ckQvvPCCVqxYIen30MMwjCzfI8MwFB4erlGjRqlv3775qiH9PqAo41iS1KRJE/Xt21c333xzod3TqVGjRurfv79Gjx6dZfn777+vd955R47jqFmzZvrDH/6gpKQkrV27VufPn1eDBg00c+ZM/g9XjPz666+ZF9Lq1q17xVG4l3P27FnNnDlTsbGx2rVrV7YLJSEhIWrYsKFiYmI0YMAABQcHX237uYqLi9Px48dLbZD3/vvv68CBA9negwVx/vz5zAt2FSpUuKrXgDclJydrwIAB2rdvX7Z/6/z8/DRq1CgNHTo0237PPfecvvjiC+3YsSPPtX788Uf1799fbrdbtWvXlsvl0r59+1SlShX985//1NChQ9W0aVPddNNNCg8P1+rVq/XVV1/J399fc+fOzfN9AY8cOaL+/fvrxIkTatiwoXr37q2mTZuqSpUqmb8vJCcn68iRI9q2bZu+//57/fjjj6pUqZJmzZrllU/sDB48WJs3b87X8ydJu3fv1g8//CA/Pz9FRUVlPidut1tTp07VokWLdPLkSdWqVUsDBgxQz549C9SfbdvasGGDjh49qkqVKqlVq1aXfU2vX79e+/fvL5SfFYwkL2YOHTokSapatWqO6zOWJyQkeK2nwjZ58mRJUnR0NL9cAQAAoFgrytBo1apVqlKlSpaA/OjRo3rhhReUlpamPn36qH///qpRo4ZOnz6t1atXa8KECZo+fboiIyPzFcLOmjVLLpdLn3/+ua699lpJ0p133qm+fftq7969Gjx4cJbgPSYmRt26ddPdd9+tGTNmeCUkz09o9Msvv2QLqK+0fYaLP16fF6dOndLgwYN1+PBh1ahRQ5GRkQoLC9OBAwcUHx8v27b16KOPKiIiQuvXr9f8+fP17LPP6tdff9UjjzySr1qSMgPxL7/8UrGxsdq2bZu2b9+uN954Q506dVLfvn3Vo0cPlStXLt/Hvtilz92hQ4f0/vvvKyAgQO+++646deqUue7kyZN6+OGHtXHjRn3++ecaPnx4vut5K/jwRpBz7733qk2bNrrtttuyXYApTEePHtWBAwd07bXXKiwsLMu6zz77TB988IGOHDmSuSwgIEB33HGH/u///k+BgYH5qrVo0SI9//zzSkpKynxthISEZB7n/PnzmT+H1qxZo3HjxmnMmDGKiYm5upPMxfjx47V27doiDck3b96sZcuW6dixYwoKClKTJk3Uq1evq35v5cXSpUu1efPmAoXkycnJmjVrVuanWk6fPp1lfe3atdW+fXsNHDgwy78v+XX27FlNnDgxc4quAQMGqG3btpKkn3/+WWPHjs0yRVefPn30wAMP5Pm1N2HCBO3du1dNmjTRX//6VzVq1Ei//vqrJk2apFmzZum1115TQkKC/vznPxf4HDJ8/PHHcrvdeumll3TXXXdJkr744gs9++yzGjVqlDp16qTx48fL5UqPSfv376+mTZvqtdde05QpU/T888/nqc5//vMfnThxQs8++6zuvffeXLdr1KiRunbtqpEjR2rChAn6xz/+obFjx+q111676nMtCv/617/04YcfZv5scLlcevXVV3Xbbbfp0Ucf1eLFizO33bNnj5YuXap7771Xo0aNyled9evX6+mnn87MRiUpIiJCjz/+uAYNGpTjPjNmzNAXX3xBSF4aJScnS0r/xy0nGT9sMkavlDRLly7VzJkz5efnpyeeeMLX7QAAAAC5KurQ6ODBg2rZsmWWZd99950uXLig++67T88880yWdZGRkeratasGDx6sadOm5Ssk//HHH9WmTZvMgFyS6tWrp9atW2v16tW67777su3TsmVLtWzZ0mvzeecnNAoPD9fp06c1aNAg3XfffbIsK8ftnnrqKW3evFkLFy4scF/vvvuuDh8+rPvuu09PPvlkZogipY8avP/++zVlyhR9++23GjhwoJ566imNHDlS7733njp06KA2bdrkq55pmurSpYu6dOmi8+fPa968eZo7d65WrVqlpUuXatmyZQoKClKvXr102223Fdq88QsXLpTb7dZjjz2WJSCX0kOKN998UzfffLO+++67fIfk3go+vBXkrFq1Sj/88IPee+89tWzZUn379tWNN96o0NDQfB3nSv79739rzpw5WrBgQZaQ/PXXX9ekSZMyz7NixYpKSkrS+fPn9emnn2rjxo2aOnVqrrnCpTZs2KDHHntMpmlq6NChmaNfLw07z58/nzn6dfr06Xrsscf06aefqkWLFnk+p4tD/ctJS0uTlH6h4OILOvkZafv222+radOm2T55kpycrFGjRmX+XLj4kyFvvvmmxo4dm+1nc3ERHx+vp59+WqdOncr1IuEvv/yiX375RTNmzFD//v310ksv5XuA4rlz53TXXXfpp59+yqzz1Vdf6Z///KcaN26su+++W4mJiZnb7927V+PGjdOyZcv02Wef5ane/PnzFRwcrA8++ECVKlWSJNWvX1+vvvqqbrjhBj3zzDOaMGGCkpKS9Pe//z3fFzgvtmbNGtWtWzczIJek22+/XR9//LF++uknvfHGG1l+tkvSXXfdpQ8++EArV67Mc53ly5erRYsWlw3ILzVixAh9//33WrZsWZ738aYlS5Zo/PjxCgoK0k033SSXy6XvvvtOf/3rX5WamqrFixdr6NCh6tu3b+Yo/H/+85+aOHGievToked/Aw8cOKAHHnhA586dU4UKFVSnTh0lJCToxIkTeumllxQXF6d//vOfRTrYlpAcXrNnzx4988wzchxHzzzzTJaPEgIAAADFiTdCowsXLmQbef7zzz/LMIwcP2IuSY0bN1arVq20ZcuWfJ3P+fPnc5xLOmP6jtzuE3TNNddo8+bN+arlDd99951ef/11TZs2TevXr9crr7yiyMjIbNtl/Ge6Ro0aBa61ePFi1a1bN9tFCyk9sPvb3/6mu+66S3PnztWQIUNUuXJlvfPOO+rVq5cmTZqU75D8YoGBgbr99tt1++2369ixY/r666/11VdfaceOHZozZ46++OILValSRbfeeqtuvfVWNWjQoMC1Ml57uU1lU7NmTTVt2lQ//fRTvo7rreDDW0FOhrCwMJ07d04bNmzQxo0b9dprr6lr167q27evunXrVihTXqxbt04NGjTIMlfxzp07NWnSJAUEBOiZZ55R//79FRAQIMdxtGHDBo0ePVrbtm3TJ598opEjR+apzrhx42QYhqZOnXrZn12BgYFq06aN2rRpo5tvvlnDhg3T+++/r/Hjx+f5nLp27ZqvsLNr166ZfzcMI18X7T744AP169cv22v62Wefzbzw0L9/f9WpU0enT5/WggULtHnzZj344IOaO3dunu6fljHvdH6dPXs23/vs3LlTDz74oGzb1s0336z27dsrPDxcBw4c0OzZs7V371698MIL6tSpk9avX69PP/1Us2bN0rFjx/TBBx/kq9Ynn3yi3bt3q2XLlrr//vslSR9++KFef/11tWrVShcuXNCzzz6rPn36KDg4WFu2bMl87U2aNEkPPPDAFWvs379fbdq0yQzIL9a1a1d9/vnneuCBBzRr1iydOXNGb731VrYgO6+OHTum7t27Z1t+7bXX6qeffspx/nOXy6UGDRpow4YNea5z+vTpzNH2+VG9evV8T3/SuHHjfNeRlDnnel599tlnMgxDEydO1PXXXy8p/QJCv379NHr0aA0ZMkQvvvhi5vY1a9ZUlSpVdN999+l///tfnn+2fvjhhzp37lzmhZ1y5crJcRzNnTtXY8aM0YIFC3Tfffdp3LhxRTbVEyF5MZMxR9GFCxdyXH/+/HlJ6fMfliRHjhzRAw88oNOnT2vEiBEF+ngeAAAA4C3eCI2qVaumH3/8McuyjI/5X24EaEYglh/h4eFZphzJ8PPPP0uSfvrpJzVr1izb+j179qhChQr5quWN0CgsLEyvv/66+vbtq7/+9a8aOnSo7rjjDj399NOFPpo3t3AlQ0a4snv37sxlVatWVevWrfMVrlxJ5cqVNWLECI0YMUJ79uzRl19+qa+//loJCQn68MMP9fHHH1/VqH+PxyMp/XWZm+rVq+f7oom3gg9vBTkZunXrpueff17fffedvvrqK61bt04LFy7UokWLFBISoj59+ujWW2+9qoskR48eVefOnbMsW7RokSTpL3/5i/r375+53DAMRUZG6oMPPtBNN92kb7/9Ns8h+aZNm9SxY8d8jQhv1aqVoqKitHHjxjzvc3GvuU0xm+H48eNKS0u77OuxIDJumFi1alXNmDFDlStXzlz3wAMP6K9//aumT5+uSZMm5Xhh7FLDhg0r0Ajn/AaVUvqUVLZt65133lGPHj2yrLv33nv1xBNPaMyYMfr6668zL669+OKLmjVrlubMmaN+/frludaCBQsUGhqqjz76KPN92b59e/Xo0UMLFizQ888/r2HDhmVu37FjR3300Ue66aab9N133+UpJLdt+7Lv+Xr16unzzz/XH//4R82fP18jR47UO++8k+dzuFhuU+hkZHC59REeHp75qYa8qFatWuY9HPI67cz58+e1du3afL/WM34PyO8FxvycjyRt3bpVLVq0yPy5KqX/u9eqVSutX78+y+j8DJ06ddK1116br58P8fHxqlq1ql555ZXMi4yGYei2225T27Zt9cgjj2jNmjW655579NFHHxXJTaQJyYuZjDfF4cOHc1yfsbx69epe6+lqJSYm6o9//KMOHjyo/v375/ujbAAAAIC3eSM06t69uyZOnKglS5aoW7duktKDhokTJ2revHm68847s+1z7NgxbdiwQfXq1ctzX1L6VC3z58/Xt99+mzm/+Ndff63t27erVq1aevPNN/Xf//43y3/qP//8c+3evVvR0dH5quXN0Khjx476+uuv9c4772jixIlatGiR/vznPxfqPMahoaHas2dPruszRlZfemEjIiIi21zBhaVevXp66qmn9NRTT2nt2rX68ssvNX/+/HwdIzk5Ocu9rjKm8zh69GiWkcsXO3PmTL4vQngr+PBWkHOxChUqaNCgQRo0aJAOHTqkr776SnPnztVPP/2kadOmafr06apevbr69u2r2267TXXq1MnX8U3TzLYsY7qSS0PSDBEREWrVqpXi4+PzXCc1NbVA83D7+fkpNTU1X/t06NBBq1at0rXXXquXXnop1xsiDhs2TGvXrlVsbGy++7qcZcuWyTAMPfPMM1kC8gzPPvus5s+fr2XLluUpJM/4mRUVFZWvn1+bNm3K92jytWvX6vrrr8/1e//YY4/p+++/1zfffKOHHnpIUvrFlAULFmjWrFn5Csn379+vDh06ZAmPK1SooMjISC1dujTHT5xUqVJFLVu2zPPFwerVq2e5uJiTKlWq6LPPPtP999+v5cuX6/777882P39eVKxYMcepfq677jp16NAh1/0SExMVHh6e5zo33XSTxo0bp/vuuy9znvXL2blzp/72t7/p+PHjeb6olaFKlSo6evSoFi9enK+bOmfcuDOvMuacv1RGfpnbfRnq1KmTebPrvDh8+LC6d++e46dwqlWrpqlTp+qxxx7T8uXLNXToUE2YMKHQb3RKSF7MZLyBchsBsG3bNknK8aMgxdG5c+f0wAMP6KefflKvXr306quvXtU8UgAAAIA3eCM0euCBBzR79mw9+eSTGjVqlPr376+uXbuqR48eGjNmjJKTk9WvX7/MkWxr1qzRP/7xD505c0aDBw/OV1/333+/Fi5cqP/7v//Tu+++K0nat2+fQkND9e6772rgwIG68cYb1blzZwUHB2vr1q1au3atDMPIMay/HG+GRlL6CMGnn35at9xyi1588UU999xzmjNnjl5++eV8Hysn7du317fffqt333032404ExMT9be//U2GYahVq1ZZ1h07dqxAYU5+ZXyS4S9/+Uu+9ps/f36OwfqGDRtyDMk9Ho+2bdt2xRHAl/JW8OGtICc31apV04MPPqgHH3xQ27dv15dffqlvv/1WBw8e1Lhx4zRu3Dg1b95cffv21ZAhQ/J0zIwA3+PxZAbmGRcRLnfB4uzZs3mej1xKv+iyYsUK/frrr7mG1pf65ZdfFB8fn+8LdhMnTtTs2bP1j3/8Q7feeqseeugh3XfffQWeRiO/MgYe5jbCPygoSE2bNtX69evzdLy6detq3759eumll/J1E9f8BpVS+vc8p6lJMmRMD3Px3P/lypVTZGSk1q1bl69atm3nOEI5Y1nGCOxLBQQE5HmkcmRkpObMmaN9+/apbt26uW4XGhqqSZMm6aGHHtIPP/xQoEypQYMGWr58uVJTU7Oc13333ZfjPTmk9Au327Zty3Ivjyv505/+pPj4eK1fv179+vVT7dq11aRJE1WtWjXzPXnhwgUdPnxY27dv1/79++U4jlq2bKkHH3wwX+d0/fXXa+HChdq6dWuWaYkKW3BwcI73Rcz4mZ7bSPbAwMAcL/Tlxs/PT7Zt57o+MDBQ48aN06hRo/TNN9/o7rvv1oQJE/J8/LwgJC9mIiMjVaFCBe3fv187duzINsfQvHnzJOmyH/crLlJTUzVy5Eht3rxZ0dHReuutt3K9oQ4AAABQnHgjNIqIiNDHH3+s+++/X6+88oreeOMNNWnSRBEREbJtW2+++abefPNNBQQEKCUlRY7jyHEc9evXTwMHDszX+TRv3lxvv/22XnnlFe3du1dSemj4+uuvq2HDhho9erSeffZZzZgxQ4ZhZH6M+7777lPPnj3zVcubodHFGjVqpBkzZmjy5Mn6z3/+o759++b54+6XM3LkSMXGxuq9997Tt99+qzZt2ig0NFQJCQlasmSJzp07p/r16+uGG27I3Cc1NVXbt2/PFpwXpfx85P5yc+ZmTMFzqdjYWB0/fly9evXKV1/eCj68FeTkRZMmTdSkSRONGjVKK1eu1JdffqmFCxdq8+bN2rJlS55D8ptvvlmvv/66xo0bp4cffliS1KdPH33wwQeaOHFiluljMmzatEkbNmzI1w1d7777bj3//PMaNGiQRo4cqV69euV6oeLo0aP6/vvvNW7cOF24cCHX+ydcTv/+/dWtWze99tpr+te//qW5c+fq5ZdfvqqpafIq4+Ln5T4RER4enjn90JW0aNFC+/bt09atW/P1864gqlWrpk2bNunChQs5XgRZtWqVJGX7NEZAQEC+R/xXq1ZN27dvz/IJn4wLZVL6qPaMT0BlSE1N1datWy8b5F8sJiZGs2fP1sSJE/XKK69cdtugoCB9+OGHeuqpp7Rw4cJ8B+WRkZFas2aNtm3bluefy3FxcTp16lS+5hgvV66cpkyZovfee0+fffZZ5k1Upd8vIF88XVqFChU0ZMgQjRw5Mt/TpjRv3jxzHv38hOT5na6tcuXKWT51lKFXr16Xfc0fOXIkX58MqlOnzhV/B3C5XPrnP/+pkJAQff755xoyZMhV3XMk2/EL7UgoFP7+/hoyZIj++9//6pVXXtEnn3ySeYVuwoQJ2rVrl9q1a5fjfIHFiW3beuqpp7Rq1Sq1adNG7777bpHegRYAAAAoTN4KjZo1a6Zvv/1WY8eO1dy5c7V27dps22Tcl6hRo0a6//77dcsttxTonHr37q2ePXtq79698vf3V61atTLDwVtuuUXNmzfXN998o8OHD6ty5crq0aOHmjRpku863gyNLmUYhoYPH64bbrhBf/vb37RkyZKr/iRrvXr19P777+vpp5/W3r17tXfv3iwXEpo0aaJ33303S9D6yy+/6IYbbsj3BYbJkyfnOWC6GlOmTMn3PhUrVtSYMWOyTGeSF94KPrwV5OSHaZrq1KmTOnXqpAsXLmjBggWaO3dunvcfOnSovvrqK7377rvas2ePhg4dqubNm+uJJ57Qv/71Lx04cED9+vVTjRo1lJSUpB9++EGffvqpPB6P/t//+395rtO/f3/t2LFDU6ZM0ejRozV69GhFRESoSpUqmReazp8/ryNHjujkyZOS0oO24cOHF3hqo4iICL311lvq27evXn75ZQ0bNkz9+vXTqFGjCvW+Avv379cXX3yR+ThjCqSDBw/mekHz2LFjeZ5io3nz5pozZ442b96cOZVVXuQ3qJTSp9iZMGGCnnjiCb388stZPtURFxenl156SYZhZJvH/tChQ/n+uRIdHa3PP/9cr732WubULe+//74SEhIUFRWlv//976patWrmbAjJycn629/+pqNHj+b536jo6Gj9/e9/z/NNbv39/TV27FhNnTpVSUlJ+TqfjPs55Ef58uU1ZsyYfN+I09/fX08++aQeeeQRrV+/Xjt37tShQ4eUnJwsKT3wr1atmho1aqTIyMgC3+S3U6dO2rRpU74vBj/88MOZ7+O8aNKkiebOnavTp09neW9279491wG8Fy5c0LZt29S+ffs81+nQoYMmTJig1atXq127drluZxiGXnrpJYWEhGj8+PE6fvx4nmtcieEU5J2JIpWSkqJhw4Zp06ZNqly5stq0aaOEhARt2rRJERERmj59ep5Hs+RmyZIlev/99zMfb968WY7jZJlzceTIkdmuDObVpEmTNHr0aEnSDTfckOtNEP785z8X2S8kAAAAwNV47bXXNGXKlMyQNa+h0XPPPVegeikpKdqyZYv27Nmj06dPy3EcBQUFqXr16mrSpEmh38CuqHz22Wf629/+pnvvvVfPPvtsnvcbNGiQtmzZoh07dhRhdwV34cIFzZ8/X9u2bdP58+cVHh6utm3b5nvO9rLmjTfe0IQJEzRp0qTLBh8Z/vWvf2n8+PGZ77u8vh5GjRqluXPnauXKlXkOWS9cuKCOHTuqffv2+u9//5unfaT0C1b9+vXTmDFj8rxPQZ0+fVqPPvqoVq9eLcMwZFmWwsLClJiYmG2EvuM48vPz08svv6w77rgj37Xi4+M1YcIE/fDDD7mOPPb391eHDh00YsSIfI1Wv5zz58/rP//5j6ZMmaLQ0FA9/fTTmjNnjtauXXtVPw8aNWqU7SJZxsjoUaNG6d577822z7lz59S5c2c1a9ZMkydPvmKNw4cPa968eapVq5ZiYmLy3NuxY8eUmpqar4tBp0+f1h133KEDBw7I5XKpZs2aCg0N1cGDB3XixAk5jqM+ffro3//+d+Y+J0+eVJcuXdS7d2+99dZbea519OhR9e3bV4mJiZnLHMdRw4YNNXnyZN122206fvy4atasqeDgYO3bt0/nz5+XZVmaOXPmFefiRskRGxurL774QiNHjszz93XGjBn6y1/+oj//+c/64x//mKd91q5dq6FDh6pTp076+OOP87TPxIkT9Y9//ENS3v+tuBxC8mLqwoULGj9+vL7++msdOnRIYWFh6ty5sx5//PF8zwGXk9mzZ1/xl/cxY8ZkuVt2frzzzjuZcx1ezqJFi3K9KQwAAADga74KjUoyb4ZGKP68FXx4K8iRvBuSZ/j22281Y8YMrV+/XikpKdnW16xZUzExMRo+fPhVv4dSUlK0b98+JSQkZBn9Wr16ddWtW7dA92vIi23btunFF1/Uzp07M5ddTfB1uUyidu3auu2227It//TTT/X3v/9d/+///T899dRTBa5dVI4dO6a//OUvWrJkSZbl/v7+uvvuu/XUU09l+RT/oUOHtGrVKjVt2lQNGjTIV61ffvlFb775ptauXSt/f3916tRJ//d//6dKlSpp586devzxxzOnEpHSP23yyiuv5PsTNCh9Tp48qfPnz6tixYp5vj+C4zj69ddfZRhGvgYG79y5U0lJSXm6CHslhOQAAAAAcAW+Co2Akq44BB+5KUiQ42tut1u//vqrkpKS5PF4FBQUpBo1auT66e2SxuPxaOLEiVq8eLGkgk0NdDUyXhNhYWEqX768V2vnx+HDhzM/1RIREaHrr7/e668Bt9utjRs36siRI6pUqZJatWrFNLso0QjJAQAAAAAAILfbrcTERIWGhl5xruTExEQlJyerevXqXuqueOO5Q2nnrde4r95LhXsLZwAAAAAow5YuXZrlJnHIO547XMxbrwdvvu6K8zmdPHlSTz/9tFq3bq3OnTsrMjJSDz/8sHbt2pXrPv/4xz+8NrVGcf4+8dz5pha8x1uvcV+/lwjJAQAAAKCQvP/++wW+cWdZx3OHi3nr9eDN111xPafk5GQNHTpU33zzjVJSUuQ4jtLS0rRo0SINGDBAU6dOzXVfb01OUFy/Tzx3vqsF7/DWa7w4vJcIyQEAAAAAAMqoCRMmaO/evWrcuLH+97//aePGjZo7d64GDBggt9ut1157TW+88Yav2yyWeO5Q2nnrNV4c3kuE5AAAAAAAAGXU/PnzFRwcrA8++EAtW7ZUQECA6tevr1dffVX//e9/VaFCBU2YMEEvvvii10Y/lxQ8dyjtvPUaLw7vJVeRHBUAAAAASrDGjRsXaD/HcWQYRiF3U7Lw3OFi3no9ePN1V9rOaf/+/WrTpo0qVaqUbV3Xrl31+eef64EHHtCsWbN05swZvfXWW3K5ChYnlbbvE8/d1ddC8eat17g330u5YSQ5AAAAAFzCcRw5jiM/P798/SEc4LlDVt56PXjzdVfazsm2bQUHB+e6vl69evr888917bXXav78+Ro5cqRSUlLyVcPb5+StWjx3/Bwv7bz1Gvfmeyk3jCQHAAAAgEtUqVJFR48e1eLFi1WxYsU87zd48GBt3ry5CDsr/njucDFvvR68+borbedUvXp17d69+4q9fPbZZ7r//vu1fPly3X///QoLC8tzjYuPU5q+Tzx3V18LxZu3XuPefC/lhpHkAAAAAHCJ66+/XpK0detWH3dS8vDc4WLeej1483VX2s4pMjJSe/bs0b59+y67XWhoqCZNmqR27dppzZo1WrhwYb5rlbbvE88dSjtvvca9+V7KDSE5AJRS77zzjho2bKiTJ0/6uhUAAEqc5s2by3GcfI+I48ZsPHfIyluvB2++7krbOcXExMhxHE2cOPGK2wYFBenDDz9Uz549i/Vz561aPHdXXwvFm7de4958L+WG6VYAAAAA4BKdOnXSpk2bFBgYmK/9Hn744TJ/gZrnDhfz1uvBm6+70nZO0dHR+vvf/y4/P788be/v76+xY8dq6tSpSkpKyldvpe37xHN39bVQvHnrNe7N91JuDIfLPABQKr3zzjt69913tXLlSkVERPi6HQAAAAAAgGKJ6VYAAEUuOTnZ1y0AAAAAAADkiJAcAEq5M2fO6Nlnn1WbNm3UunVrPffcczp//nzmerfbrffee089e/ZUs2bNFBMTo7ffflupqalZjtOwYUO988472Y4fExOjZ599NvPx7Nmz1bBhQ61evVovv/yyOnbsqK5duxbdCQIAAAAAAFwF5iQHgFLuiSeeUM2aNfXUU09p+/btmjFjhiIiIvTMM89Ikl588UXNmTNHvXv31ogRI7R582aNHz9ee/bs0XvvvVfguq+88ooiIiL08MMPM5IcAAAAAAAUW4TkAFDKNW7cWKNHj858nJiYqJkzZ+qZZ57Rzp07NWfOHA0cOFCvvvqqJGnIkCGKiIjQJ598olWrVqlDhw4FqhsaGqqJEyfKsqxCOQ8AAACgrOO+QwBQNJhuBQBKuTvvvDPL4zZt2igxMVFnz57V0qVLJUkjRozIss0f//hHScpcXxCDBg0iIAcAAAAAAMUeITkAlHLVq1fP8jgkJESSdPr0aR08eFCmaap27dpZtqlcubJCQkJ08ODBAtetWbNmgfcFAAAAAADwFkJyACjlTDPnH/WO42T+3TCMAh/ftu0cl5crV67AxwQAAABQvHHfIQClCSE5AJRhNWrUkMfj0S+//JJl+fHjx5WUlKQaNWpkLgsNDVVSUlKW7VJTU3Xs2DGv9AoAAAAg3ZkzZ/Tss8+qTZs2at26tZ577jmdP38+c73b7dZ7772nnj17qlmzZoqJidHbb7+t1NTULMdp2LCh3nnnnWzHj4mJ0bPPPpv5ePbs2WrYsKFWr16tl19+WR07dlTXrl2L7gQBwMsIyQGgDMv4xXbSpElZlk+YMCHLekmqVauW1q5dm2W76dOn5zqSHAAAAEDReOKJJ3Tu3Dk99dRTuvHGGzV79my9++67metffPFFjR07Vk2aNNFzzz2ntm3bavz48XryySevqu4rr7yiPXv26OGHH9YDDzxwtacBAMWGy9cNAAB8p1GjRurXr5+mTZumpKQktW3bVlu2bNGcOXPUs2dPdejQIXPbgQMH6qWXXtKjjz6qqKgo7dy5U3FxcQoPD/fhGQAAAABlT+PGjTV69OjMx4mJiZo5c6aeeeYZ7dy5U3PmzNHAgQP16quvSpKGDBmiiIgIffLJJ1q1alWW3/PzIzQ0VBMnTpRlWYVyHgBQXDCSHADKuFdffVWPPvqotmzZojFjxmjVqlV68MEH9a9//SvLdoMGDdIDDzygNWvW6B//+IcOHDigCRMmKCgoyEedAwAAAGXTnXfemeVxmzZtlJiYqLNnz2rp0qWSpBEjRmTZ5o9//KMkZa4viEGDBhGQAyiVGEkOAKXUo48+qkcffTTb8v79+6t///6Zj10ulx555BE98sgjlz2eaZp6+umn9fTTT2dZHhsbe9njAwAAAChc1atXz/I4JCREknT69GkdPHhQpmmqdu3aWbapXLmyQkJCdPDgwQLXrVmzZoH3BYDijJHkAAAAAAAAJYhp5hznOI6T+XfDMAp8/NzuO1SuXLkCHxMAijNCcgAAAAAAgFKiRo0a8ng8+uWXX7IsP378uJKSklSjRo3MZaGhoUpKSsqyXWpqqo4dO+aVXgGguCAkBwAAAAAAKCW6du0qSZo0aVKW5RMmTMiyXpJq1aqltWvXZtlu+vTpuY4kB4DSijnJAQAAAAAASolGjRqpX79+mjZtmpKSktS2bVtt2bJFc+bMUc+ePdWhQ4fMbQcOHKiXXnpJjz76qKKiorRz507FxcUpPDzch2cAAN5HSA4AAAAAAFCKvPrqq6pZs6bmzJmjhQsXqlKlSnrwwQf1yCOPZNlu0KBBOnDggGbOnKnly5erdevWmjBhgu69917fNA4APmI4F9/VAQAAAAAAAACAMoQ5yQEAAAAAAAAAZRYhOQAAAAAAAACgzCIkBwAAAAAAAACUWYTkAAAAAAAAAIAyi5AcAAAAAAAAAFBmEZIDAAAAAAAAAMosQnIAAAAAAAAAQJlFSA4AAAAAAAAAKLMIyQEAAAAAAAAAZRYhOQAAAAAAAACgzCIkBwAAAAAAAACUWYTkAAAAAAAAAIAyi5AcAAAAAAAAAFBm/X9KKrZWmTeZawAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1, 2)\n", + "fig.suptitle(\"fraudlent Analysis\", fontsize=18, fontweight=\"bold\")\n", + "df.loc[df[\"is_fraud\"] == 1, \"hour\"].value_counts(ascending=True).plot(\n", + " kind=\"line\", ax=axs[0], marker=\"o\", fontsize=15\n", + ")\n", + "axs[0].set_xticks(range(0, 3))\n", + "df.loc[df[\"is_fraud\"] == 1, \"hour\"].value_counts(ascending=True).plot(\n", + " kind=\"bar\", ax=axs[1], fontsize=15\n", + ")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "333e4605-a16d-45dc-9a34-21ec8f2b318f", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:34.137735Z", + "iopub.status.busy": "2026-01-17T19:34:34.137220Z", + "iopub.status.idle": "2026-01-17T19:34:34.160651Z", + "shell.execute_reply": "2026-01-17T19:34:34.160027Z", + "shell.execute_reply.started": "2026-01-17T19:34:34.137696Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "gender\n", + "F 4899\n", + "M 4752\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.loc[df[\"is_fraud\"] == 1, [\"gender\"]].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "1c3c908d-36b8-47ed-bf2f-2d43d53b4a7b", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:34.161959Z", + "iopub.status.busy": "2026-01-17T19:34:34.161565Z", + "iopub.status.idle": "2026-01-17T19:34:36.885320Z", + "shell.execute_reply": "2026-01-17T19:34:36.884734Z", + "shell.execute_reply.started": "2026-01-17T19:34:34.161936Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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Y489NldffXUGDhyYyZMnv+1fBgAAAAAAsPHp2dkLeKs77rgjgwcPzvnnn5+qqqokyYABA3LMMcfk0Ucfze67754kmT59eg466KBMnTo1SbLXXnvliSeeyBVXXJGZM2cmSR566KHce++9mTVrVsaOHZskGTp0aCZOnJi77rorEydOTJLMmjUr/fv3z8UXX5yampqMHj06S5YsyXe/+90cddRRqampyRtvvJGrr746kydPzrHHHpsk+chHPpIDDzwws2bNyjnnnLP+PiQAAAAAALqkLvWE+6pVq9K3b9/W2J4km2++eZK0bvGyePHiPPXUU5kwYUKb106cODHz589PY2NjkmTevHmpra3NmDFjWscMGzYsO++8c+bNm9d6bN68edl///1TU1PTZq6GhoY89NBDSd7ccmbZsmVtrllTU5OPfexjbeYCAAAAAGDj1aWecP/kJz+Zn/3sZ/nhD3+YQw89NK+99louvvji7LLLLtltt92SJHV1dUnefFr9rbbffvs0NTVl8eLF2X777VNXV5ehQ4e2iffJm9F99Ryvv/56nn/++QwbNqzdmKqqqtTV1WXPPfdsHf/X47bffvt8//vfz8qVK7PJJpt06D337Nml/s6j0/Xo4fMAALoX9y+sCX9OAIDuxv1Lx3Sp4L777rvn8ssvz2mnnZavfe1rSZKdd94511xzTXr06JEkqa+vT5LU1ta2ee3qn1efb2hoaH06/q369euXRx99NMmbX6r6dnPV1NSkT58+beaqqalJ7969212zUqmkvr6+Q8G9uroq/fv3fdevAwCg66it7dPZSwAAgOLc53ZMlwruDz74YP7v//2/Ofzww7PPPvvktddey5VXXpkTTjghN954Y4efIu+qWloqaWh4vbOX0aX06FHtH2YAoFtpaFiR5uaWzl4GXZz7XACgu3Gf+xe1tX3W+In/LhXczzvvvOy1114544wzWo+NHDky++yzT372s5/liCOOSL9+/ZK8+XT6wIEDW8c1NDQkSev52travPDCC+2uUV9f3zpm9RPwq590X62xsTErVqxoM1djY2PeeOONNk+5NzQ0pKqqqnVcR6xa5Q8tAEB31tzc4p4OAIANjvvcjulSG/EsXLgwH/zgB9sce9/73pf+/fvnz3/+c5K/7KO+el/11erq6tKrV68MGTKkddyiRYtav2x1tUWLFrXOsemmm2arrbZqN9fq160et/rXRYsWtbvm4MGDN7gn7wEAAAAAePe6VHAfPHhwHn/88TbHnn322bz66qt5//vfnyQZMmRItttuu8yZM6fNuNmzZ2f06NGpqalJkowbNy719fWZP39+65hFixbl8ccfz7hx41qPjRs3LnfffXeamprazFVbW5tRo0YlSXbbbbdsttlmufPOO1vHNDU15a677mozFwAAAAAAG68utaXMpEmTcv755+e8887Lfvvtl9deey1XXXVVttxyy0yYMKF13CmnnJLTTz8922yzTfbcc8/Mnj07jzzySG644YbWMaNGjcrYsWNz5pln5otf/GJ69+6dSy65JDvttFM+/vGPt46bMmVKbr/99px22mk58sgj88QTT2TWrFmZNm1aa7zv3bt3TjzxxFx22WUZMGBAdtxxx9x000157bXXMmXKlPX3AQEAAAAA0GV1qeB+9NFHp6amJjfddFNuu+229O3bNyNHjsyll16a/v37t447+OCDs2LFisycOTMzZszI0KFDc/nll7c+kb7apZdemgsuuCBnn312Vq1albFjx+YrX/lKevb8y9vedtttM2vWrFx44YU54YQTMmDAgJx66qmZPHlym7mOP/74VCqVXHvttVmyZEl23nnnzJo1q3ULGwAAAAAANm5Vlb/e5Jz1prm5JUuWLO/sZXQpPXtWp3//vjn44Ofy2GONnb0cAIB3tOuuNfn5zwfn1VeX+zIp/q7V97nP/fTgNL7yWGcvBwDgHdVsuWsGf+Ln7nPfYsCAvunRY812Z+9Se7gDAAAAAEB3JbgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABQguAMAAAAAQAGCOwAAAAAAFCC4AwAAAABAAYI7AAAAAAAUILgDAAAAAEABgjsAAAAAABTQJYP7T37yk3ziE5/I8OHDs+eee+a4447LypUrW8/fc889OfTQQzN8+PCMHz8+t912W7s5Ghsb881vfjNjxozJyJEj8/nPfz51dXXtxi1cuDCf//znM3LkyIwZMyYXXXRRGhsb24279dZbM378+AwfPjyHHnpo5s6dW/ZNAwAAAADQrXW54H7VVVfl61//eiZOnJhZs2bla1/7Wrbeeus0NzcnSR544IGcfPLJGTlyZGbOnJkJEybky1/+cubMmdNmnvPOOy+33nprpk2blssuuyyNjY059thjs3Tp0tYx9fX1OeaYY9LU1JTLLrss06ZNyy233JILL7ywzVx33HFHzjrrrEyYMCEzZ87MyJEjc/LJJ2fBggXr/PMAAAAAAKB76NnZC3irurq6XH755bnyyivz0Y9+tPX4+PHjW39/1VVXZcSIEfna176WJNlrr72yePHiTJ8+PQceeGCS5IUXXsiPf/zjfPWrX82nPvWpJMnw4cOz77775uabb87xxx+fJLn55puzfPnyXH755dliiy2SJM3NzTn33HNz4oknZtCgQUmS6dOn56CDDsrUqVNbr/nEE0/kiiuuyMyZM9fpZwIAAAAAQPfQpZ5w//d///dsvfXWbWL7WzU2Nua3v/1ta1hfbeLEiVm4cGGeeeaZJMm9996blpaWNuO22GKLjBkzJvPmzWs9Nm/evIwePbo1tifJhAkT0tLSkvvuuy9Jsnjx4jz11FOZMGFCu2vOnz//bbefAQAAAABg49OlgvvDDz+cHXfcMVdeeWVGjx6dD33oQ5k0aVIefvjhJMmf//znNDU1ZdiwYW1et/322ydJ6x7tdXV12XLLLdOvX7924966j3tdXV27uWprazNw4MA2cyXJ0KFD283V1NSUxYsXr+3bBgAAAABgA9CltpR5+eWX8+ijj+aJJ57IV7/61fTp0yff/e53M3ny5Nx1112pr69P8mYUf6vVP68+39DQkM0337zd/LW1ta1jVo/767mSpF+/fq3j1vSaHdWzZ5f6O49O16OHzwMA6F7cv7Am/DkBALob9y8d06WCe6VSyeuvv57vfOc7+eAHP5gk+fCHP5z99tsvN9xwQ8aOHdvJKyyruroq/fv37exlAACwFmpr+3T2EgAAoDj3uR3TpYJ7bW1ttthii9bYnry59/ouu+ySJ598MgcddFCSZOnSpW1e19DQkCStW8jU1tZm2bJl7eZvaGhos81MbW1tu7mSN59aXz1u9a9Lly7NwIED3/GaHdHSUklDw+sdfv2GqEePav8wAwDdSkPDijQ3t3T2Muji3OcCAN2N+9y/qK3ts8ZP/Hep4L7DDjvkz3/+89uee+ONN7LNNtukV69eqaury9577916bvU+66v3Yx82bFj+53/+p004Xz3urXu2Dxs2rM2e7smbYf3ll19uM9fbvbauri69evXKkCFD1uYtZ9Uqf2gBALqz5uYW93QAAGxw3Od2TJfaiGfffffNa6+9lj/84Q+tx1599dU89thj2XXXXVNTU5M999wz/+///b82r5s9e3a23377bL311kmSsWPHprq6OnfddVfrmPr6+tx7770ZN25c67Fx48blN7/5TevT6kkyZ86cVFdXZ8yYMUmSIUOGZLvttsucOXPaXXP06NGpqakp9wEAAAAAANBtdakn3A844IAMHz48p556aqZNm5bevXtnxowZqampyWc+85kkyT//8z/n6KOPzjnnnJMJEybkt7/9bX7+85/nkksuaZ3nfe97Xz71qU/loosuSnV1dQYNGpSrr746m2++eSZNmtQ6btKkSbn++utz0kkn5cQTT8yLL76Yiy66KJMmTcqgQYNax51yyik5/fTTs80222TPPffM7Nmz88gjj+SGG25Yfx8OAAAAAABdWpcK7tXV1ZkxY0YuuOCCnH322Wlqasruu++eH/7wh637p+++++657LLLcumll+bHP/5xBg8enPPOOy8TJkxoM9dXvvKV9O3bN9/+9rezfPny7Lbbbrnuuuuy+eabt47p169fvv/97+frX/96TjrppPTt2zef+tSnMm3atDZzHXzwwVmxYkVmzpyZGTNmZOjQobn88sszatSodf+hAAAAAADQLVRVKpVKZy9iY9Xc3JIlS5Z39jK6lJ49q9O/f98cfPBzeeyxxs5eDgDAO9p115r8/OeD8+qry+1tyd+1+j73uZ8enMZXHuvs5QAAvKOaLXfN4E/83H3uWwwY0HeNvzS1S+3hDgAAAAAA3ZXgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABfRc2wnmzp2bX/3qV3n22WeTJO9///vz0Y9+NPvuu+9aLw4AAAAAALqLDgf3hoaGnHTSSXnggQfSo0ePDBw4MEkyf/78/OhHP8ruu++eK664IrW1tcUWCwAAAAAAXVWHt5T5xje+kd/97nc5/fTTc//992fu3LmZO3du7r///px22mn53e9+l2984xsl1woAAAAAAF1Wh59w/+Uvf5nPfOYzmTJlSpvjm266aY477rg8//zz+elPf7q26wMAAAAAgG6hw0+49+zZM0OHDn3H88OGDUvPnmu9RTwAAAAAAHQLHQ7u48ePz5w5c9Lc3Nzu3KpVq3LnnXfmwAMPXKvFAQAAAABAd9HhR9APPfTQfO1rX8ukSZNy+OGHZ9ttt02SPP300/nRj36UpqamHHLIIXnsscfavG7XXXdduxUDAAAAAEAX1OHg/rnPfa7197///e9TVVWVJKlUKq3HjzrqqNbfVyqVVFVV5Q9/+ENHLwkAAAAAAF1Wh4P7BRdcUHIdAAAAAADQrXU4uP/jP/5jyXUAAAAAAEC31uHg/lbLly/PCy+8kCR53/vel759+5aYFgAAAAAAuo21Cu6PPPJI/u3f/i0PPvhgWlpakiTV1dX5yEc+kv/zf/5Phg8fXmSRAAAAAADQ1XU4uD/88MM56qij0qtXr3zqU5/K9ttvnyRZuHBh7rjjjnzuc5/L9ddfnxEjRhRbLAAAAAAAdFUdDu6XXHJJBg0alBtvvDEDBw5sc+6UU07JkUcemUsuuSTXXXfdWi8SAAAAAAC6uuqOvvDhhx/OEUcc0S62J8l73vOeHH744VmwYMHarA0AAAAAALqNDgf36urqNDc3v+P5lpaWVFd3eHoAAAAAAOhWOlzER40alR/+8Id59tln25177rnncuONN2a33XZbq8UBAAAAAEB30eE93P/1X/81n/3sZzNhwoR87GMfy3bbbZckWbRoUe6+++706NEjp512Wql1AgAAAABAl9bh4L7LLrvk1ltvzSWXXJJ77rknK1asSJL06dMne++9d6ZOnZoddtih2EIBAAAAAKAr63BwT5IddtghV1xxRVpaWrJkyZIkyYABA+zdDgAAAADARmetgvtqVVVVqaqqav09AAAAAABsbNYquD/55JOZPn16fv3rX2flypVJkk022SR77713Tj755Oy4445FFgkAAAAAAF1dh4P7Aw88kOOPPz4tLS3Zf//923xp6j333JN58+blmmuuye67715qrQAAAAAA0GV1OLiff/75GTBgQG644YZstdVWbc49//zz+exnP5sLLrggt91221ovEgAAAAAAuroOf7vpk08+mc985jPtYnuSbLXVVjnyyCPz5JNPrtXiAAAAAACgu+hwcB88eHAaGxvf8XxTU1Pe9773dXR6AAAAAADoVjoc3E866aRcf/31+cMf/tDu3OOPP54bbrghp5xyylotDgAAAAAAuosO7+H+8MMPZ8stt8wnP/nJjBo1Kttuu22S5KmnnsqCBQvygQ98IAsWLMiCBQvavO4rX/nKWi0YAAAAAAC6og4H9xtuuKH19w8++GAefPDBNuefeOKJPPHEE22OVVVVCe4AAAAAAGyQOhzc//jHP5ZcBwAAAAAAdGsd3sP93Vq2bFm+9KUvZeHChevrkgAAAAAAsN6st+C+cuXK/OQnP8lLL720vi4JAAAAAADrzXoL7gAAAAAAsCET3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKWK/Bvaqqan1eDgAAAAAA1pv1Gtwrlcr6vBwAAAAAAKw3HQ7uM2bMyIsvvrjG49/znvfkj3/8Y0aPHt3RSwIAAAAAQJfV4eB+6aWXZt99983RRx+d2267LcuWLSu5LgAAAAAA6FY6HNznzp2bf/3Xf019fX2+/OUvZ+zYsZk2bVr+4z/+I83NzSXXCAAAAAAAXV7Pjr5w0KBBOe6443LcccfliSeeyO2335477rgjd955Z/r375+JEyfm0EMPzYc//OGS6wUAAAAAgC6pyJem7rjjjjnttNNyzz335IYbbsjuu++eG2+8MZMmTcr48eNz5ZVX5pVXXilxKQAAAAAA6JKKBPckeeONN3LHHXfkmmuuydy5c9OjR4+MGzcuH/jAB3LllVfmgAMOyC9+8YtSlwMAAAAAgC6lw1vKJEmlUsl9992X22+/Pb/85S+zfPny7LLLLjn99NNzyCGHZMstt0ySvPTSSznttNNy4YUX5mMf+1iRhQMAAAAAQFfS4eB+/vnnZ/bs2XnllVcycODATJo0KZ/4xCfygQ98oN3Y9773vfnUpz6VL37xi2u1WAAAAAAA6Ko6HNxvvfXWHHDAAfnEJz6Rf/iHf0hVVdXfHP+Rj3wkF1xwQUcvBwAAAAAAXVqHg/t9992XTTfddI3Hb7311tl66607ejkAAAAAAOjSOvylqYccckjuvvvudzw/d+7c7L///h2dHgAAAAAAupUOB/dnn302r7/++juef/311/Pcc891dHoAAAAAAOhWOhzck/zNfdt///vfp7a2dm2mBwAAAACAbuNd7eH+/e9/Pz/4wQ+SvBnbzz///FxyySXtxi1btiwNDQ05+OCDy6wSAAAAAAC6uHcV3Lfccst84AMfSPLmljKDBg3KoEGD2o3bdNNNs+uuu+Yzn/lMmVUCAAAAAEAX966C+8EHH9z61PpRRx2Vf/mXf8no0aPXycIAAAAAAKA7eVfB/a2uv/76kusAAAAAAIBubY2D+3/9138lSf7X//pfbX7+e1aPBwAAAACADdkaB/ejjjoqVVVVefjhh1NTU9P68zupVCqpqqrKH/7whyILBQAAAACArmyNg/sPfvCDJElNTU2bnwEAAAAAgHcR3PfYY482P++2225ZuXJlNttss7cdv2zZsmyyySZrtzoAAAAAAOgmqjv6wvPOOy+TJk16x/NHHnlkLrzwwo5ODwAAAAAA3UqHg/uvf/3rjB8//h3Pjx8/PvPmzevo9AAAAAAA0K10OLi/9NJLGTRo0Duef+9735sXX3yxo9MDAAAAAEC30uHgvsUWW2TRokXveH7hwoXvuL87AAAAAABsaDoc3Pfee+/cfPPNefzxx9ude+yxx3LLLbdk3Lhxa7U4AAAAAADoLnp29IVf+MIX8utf/zqf/vSns99++2WHHXZIkvzpT3/K3LlzM2DAgHzhC18otlAAAAAAAOjKOhzcBw0alNtuuy3f/va3c/fdd+cXv/hFkmSzzTbLIYcckmnTpv3NPd4BAAAAAGBD0uHgnrz5xajf/OY3U6lUsmTJkiTJgAEDUlVVVWRxAAAAAADQXaxVcF+tqqoqW265ZYmpAAAAAACgW+rwl6YCAAAAAAB/IbgDAAAAAEABgjsAAAAAABQguAMAAAAAQAFdOrgvX74848aNy0477ZTf//73bc7deuutGT9+fIYPH55DDz00c+fObff6pUuX5swzz8wee+yRUaNG5dRTT81LL73UbtyDDz6YI444IiNGjMi+++6bGTNmpFKptBlTqVQyY8aM7LPPPhkxYkSOOOKILFiwoOj7BQAAAACg++rSwf3KK69Mc3Nzu+N33HFHzjrrrEyYMCEzZ87MyJEjc/LJJ7cL4FOnTs19992Xc845J9/61reyaNGiHH/88Vm1alXrmKeffjpTpkzJwIEDc/XVV+eYY47J9OnTc+2117aZa+bMmZk+fXqOPfbYXH311Rk4cGAmT56cxYsXr5P3DgAAAABA99Jlg/vChQtz44035pRTTml3bvr06TnooIMyderU7LXXXvna176W4cOH54orrmgd89BDD+Xee+/NN77xjUycODH7779/vvOd7+S///u/c9ddd7WOmzVrVvr375+LL744o0ePzrHHHpvJkyfnu9/9bhobG5Mkb7zxRq6++upMnjw5xx57bEaPHp2LL744W2yxRWbNmrXuPwwAAAAAALq8LhvczzvvvEyaNClDhw5tc3zx4sV56qmnMmHChDbHJ06cmPnz57dG8nnz5qW2tjZjxoxpHTNs2LDsvPPOmTdvXuuxefPmZf/9909NTU2buRoaGvLQQw8leXPLmWXLlrW5Zk1NTT72sY+1mQsAAAAAgI1Xlwzuc+bMyRNPPJGTTjqp3bm6urokaRfit99++zQ1NbVu8VJXV5ehQ4emqqqqzbhhw4a1zvH666/n+eefz7Bhw9qNqaqqah23+te/Hrf99tvnueeey8qVKzv6VgEAAAAA2ED07OwF/LUVK1bkwgsvzLRp07LZZpu1O19fX58kqa2tbXN89c+rzzc0NGTzzTdv9/p+/frl0UcfTfLml6q+3Vw1NTXp06dPm7lqamrSu3fvdtesVCqpr6/PJpts8q7fa5L07Nkl/86j0/To4fMAALoX9y+sCX9OAIDuxv1Lx3S54H7VVVdlyy23zD/90z919lLWuerqqvTv37ezlwEAwFqore3T2UsAAIDi3Od2TJcK7s8++2yuvfbaXHHFFa1Pn7/++uutvy5fvjz9+vVL8ubT6QMHDmx9bUNDQ5K0nq+trc0LL7zQ7hr19fWtY1Y/Ab/6Wqs1NjZmxYoVbeZqbGzMG2+80eYp94aGhlRVVbWOe7daWippaHi9Q6/dUPXoUe0fZgCgW2loWJHm5pbOXgZdnPtcAKC7cZ/7F7W1fdb4if8uFdyfeeaZNDU15YQTTmh37uijj86HP/zhfPvb307y5r7qb91Tva6uLr169cqQIUOSvLnf+vz581OpVNrs475o0aLsuOOOSZJNN900W221Vese7W8dU6lUWudf/euiRYvywQ9+sM01Bw8e3OHtZJJk1Sp/aAEAurPm5hb3dAAAbHDc53ZMl9qIZ+edd84PfvCDNv/50pe+lCQ599xz89WvfjVDhgzJdtttlzlz5rR57ezZszN69OjU1NQkScaNG5f6+vrMnz+/dcyiRYvy+OOPZ9y4ca3Hxo0bl7vvvjtNTU1t5qqtrc2oUaOSJLvttls222yz3Hnnna1jmpqactddd7WZCwAAAACAjVeXesK9trY2e+6559ue23XXXbPrrrsmSU455ZScfvrp2WabbbLnnntm9uzZeeSRR3LDDTe0jh81alTGjh2bM888M1/84hfTu3fvXHLJJdlpp53y8Y9/vHXclClTcvvtt+e0007LkUcemSeeeCKzZs3KtGnTWuN97969c+KJJ+ayyy7LgAEDsuOOO+amm27Ka6+9lilTpqzDTwQAAAAAgO6iSwX3NXXwwQdnxYoVmTlzZmbMmJGhQ4fm8ssvb30ifbVLL700F1xwQc4+++ysWrUqY8eOzVe+8pX07PmXt73ttttm1qxZufDCC3PCCSdkwIABOfXUUzN58uQ2cx1//PGpVCq59tprs2TJkuy8886ZNWtW6xY2AAAAAABs3KoqlUqlsxexsWpubsmSJcs7exldSs+e1enfv28OPvi5PPZYY2cvBwDgHe26a01+/vPBefXV5fa25O9afZ/73E8PTuMrj3X2cgAA3lHNlrtm8Cd+7j73LQYM6LvGX5rapfZwBwAAAACA7kpwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACBHcAAAAAAChAcAcAAAAAgAIEdwAAAAAAKEBwBwAAAACAAgR3AAAAAAAoQHAHAAAAAIACulRwv/POO/PP//zPGTduXEaOHJnDDjssP/7xj1OpVNqMu/XWWzN+/PgMHz48hx56aObOndturqVLl+bMM8/MHnvskVGjRuXUU0/NSy+91G7cgw8+mCOOOCIjRozIvvvumxkzZrS7XqVSyYwZM7LPPvtkxIgROeKII7JgwYKi7x0AAAAAgO6tSwX3733ve+nTp0/OOOOMXHXVVRk3blzOOuusXHHFFa1j7rjjjpx11lmZMGFCZs6cmZEjR+bkk09uF8CnTp2a++67L+ecc06+9a1vZdGiRTn++OOzatWq1jFPP/10pkyZkoEDB+bqq6/OMccck+nTp+faa69tM9fMmTMzffr0HHvssbn66qszcODATJ48OYsXL16nnwcAAAAAAN1Hz85ewFtdddVVGTBgQOvPo0ePzmuvvZbrrrsu//Iv/5Lq6upMnz49Bx10UKZOnZok2WuvvfLEE0/kiiuuyMyZM5MkDz30UO69997MmjUrY8eOTZIMHTo0EydOzF133ZWJEycmSWbNmpX+/fvn4osvTk1NTUaPHp0lS5bku9/9bo466qjU1NTkjTfeyNVXX53Jkyfn2GOPTZJ85CMfyYEHHphZs2blnHPOWW+fDwAAAAAAXVeXesL9rbF9tZ133jnLli3L66+/nsWLF+epp57KhAkT2oyZOHFi5s+fn8bGxiTJvHnzUltbmzFjxrSOGTZsWHbeeefMmzev9di8efOy//77p6amps1cDQ0Neeihh5K8ueXMsmXL2lyzpqYmH/vYx9rMBQAAAADAxq1LBfe387vf/S6DBg3KZpttlrq6uiRvPq3+Vttvv32amppat3ipq6vL0KFDU1VV1WbcsGHDWud4/fXX8/zzz2fYsGHtxlRVVbWOW/3rX4/bfvvt89xzz2XlypWF3ikAAAAAAN1Zl9pS5q898MADmT17dr74xS8mSerr65MktbW1bcat/nn1+YaGhmy++ebt5uvXr18effTRJG9+qerbzVVTU5M+ffq0maumpia9e/dud81KpZL6+vpssskmHX6PPXt2+b/zWK969PB5AADdi/sX1oQ/JwBAd+P+pWO6bHB/4YUXMm3atOy55545+uijO3s560R1dVX69+/b2csAAGAt1Nb26ewlAABAce5zO6ZLBveGhoYcf/zx2WKLLXLZZZeluvrNv03p169fkjefTh84cGCb8W89X1tbmxdeeKHdvPX19a1jVj8Bv/pJ99UaGxuzYsWKNnM1NjbmjTfeaPOUe0NDQ6qqqlrHdURLSyUNDa93+PUboh49qv3DDAB0Kw0NK9Lc3NLZy6CLc58LAHQ37nP/ora2zxo/8d/lgvvKlStz4oknZunSpfnRj37UZmuY1fuo19XVtdlTva6uLr169cqQIUNax82fPz+VSqXNPu6LFi3KjjvumCTZdNNNs9VWW7Xu0f7WMZVKpXX+1b8uWrQoH/zgB9tcc/DgwWu1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gALs4Q4AAAAAAAUI7gAAAAAAUIDgDgAAAAAABQjuAAAAAABQgOAOAAAAAAAFCO4AAAAAAFCA4A4AAAAAAAUI7gAAAAAAUIDgDgAAG6B///d/z0477ZRnnnmm6Lw//elPc+CBB2bXXXfN7rvvXnTutbGu3i8AALwbPTt7AQAAQPewcOHCfOlLX8ree++dE044IZtssklnLwkAALoUwR0AADZAhx12WA466KDU1NQUm/P+++9PS0tLvvzlL2fbbbctNi8AAGwobCkDAAAboB49eqR3796pqqoqNucrr7ySJNl8883/5rhKpZKVK1cWuy4AAHQXgjsAAGyA/npP89///veZMmVK9txzz4wYMSL77bdfvvSlL63xfPvtt18uu+yyJMno0aOz0047tf6833775cQTT8yvf/3rfPKTn8yIESNy8803J0luu+22HH300Rk9enQ+9KEPZeLEibnxxhvbzf/W+f76umeccUabY3/6059y9NFHZ8SIERk3blyuvPLKtLS0rPF7AQCAdcWWMgAAsIF75ZVXMmXKlPTv3z8nnHBCamtr88wzz+QXv/jFGs9x5pln5qc//Wl+8Ytf5Jxzzsmmm26anXbaqfX8okWLctppp+WII47I4YcfnqFDhyZJbrrppnzgAx/Ifvvtl549e2bu3Lk599xzU6lU8tnPfvZdv5eXX345Rx99dJqbm3PCCSekT58+ueWWW9K7d+93PRcAAJQmuAMAwAbuoYceSn19fWbNmpXhw4e3Hp82bdoaz3HAAQfkD3/4Q37xi19k/PjxGTBgQJvzTz/9dK655prsvffebY7fcMMNbb5c9XOf+1ymTJmS6667rkPBfebMmVmyZEluvfXWjBgxIknyj//4j/n4xz/+rucCAIDSbCkDAAAbuNV7rv/Hf/xHmpqa1sk1tt5663axPUmb2L506dIsWbIke+yxRxYvXpylS5e+6+v86le/ysiRI1tje5IMGDAghxxySMcWDgAABXnCHQAANnB77LFHxo8fn8svvzzf+973sscee+SAAw7IIYcckpqamiLX2Hrrrd/2+O9+97tcdtllWbBgQVasWNHm3NKlS//uF7D+teeeey4f/vCH2x1fvYUNAAB0JsEdAAA2cFVVVZk+fXoWLFiQuXPn5te//nXOPPPMXHfddfnRj36Uvn37rvU13vok+2p//vOfc+yxx2bYsGE544wzstVWW6VXr1751a9+le9973tr9EWnzc3Na702AABYXwR3AADYSIwcOTIjR47MtGnTcvvtt+f000/P7Nmz8+lPf3qdXO+ee+5JY2NjrrrqqgwePLj1+G9/+9t2Y/v165eGhoY2xxobG/Pyyy+3OTZ48OA8/fTT7V6/aNGiQqsGAICOs4c7AABs4Orr61OpVNoc23nnnZO8GbXXlR49eiRJm2svXbo0t912W7uxQ4YMyQMPPNDm2C233NLuCfePfvSjWbBgQR555JHWY0uWLMntt99ecukAANAhnnAHAIAN3E9+8pPcdNNNOeCAA7LNNttk+fLlueWWW7LZZptl3Lhx6+y6Y8aMSa9evfK///f/zqRJk7J8+fLceuut2XLLLds9uf7pT386X/3qV3PKKafkH/7hH/LHP/4x9957b/r3799m3HHHHZef/exnOe6443L00UenT58+ueWWWzJ48OD893//9zp7LwAAsCY84Q4AABu4PfbYIx/60Icye/bsnHfeebnmmmuy3Xbb5fvf/36GDBmyzq47bNiwTJ8+PVVVVfnmN7+Zm2++OYcffniOPvrodmMPP/zwHH/88fmv//qvfPOb38wzzzyT6667Lptuummbce9973vzgx/8IDvttFNmzJiR73//+znssMPedk4AAFjfqip//e+WAgAAAAAA75on3AEAAAAAoAB7uAMAwEbutddeS1NT0zue79GjRwYMGLAeVwQAAN2TLWUAAGAjd9RRR+X+++9/x/Pvf//7c88996zHFQEAQPckuAMAwEbu0UcfTUNDwzue7927dz7ykY+sxxUBAED3JLgDAAAAAEABvjQVAAAAAAAKENwBAAAAAKAAwR0AAAAAAAoQ3AEAAAAAoADBHQAAAAAAChDcAQAAAACgAMEdAAAAAAAKENwBAAAAAKCA/x+DeIFGBUsDPwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy.stats import ttest_ind\n", + "\n", + "sns.barplot(\n", + " data=df, x=\"is_fraud\", y=\"city_pop\", hue=\"is_fraud\", palette=[\"blue\", \"orange\"], ci=None\n", + ")\n", + "plt.legend(loc=\"upper right\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "d2295e93-20cd-428f-b0e8-84bc37300637", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:36.887494Z", + "iopub.status.busy": "2026-01-17T19:34:36.886911Z", + "iopub.status.idle": "2026-01-17T19:34:36.912842Z", + "shell.execute_reply": "2026-01-17T19:34:36.912233Z", + "shell.execute_reply.started": "2026-01-17T19:34:36.887470Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T-test: t-statistic = 0.0, p-value = 1.0, p-value<0.05? = False\n" + ] + } + ], + "source": [ + "f_pop = df[df[\"is_fraud\"] == 1][\"city_pop\"]\n", + "na_f_pop = df[df[\"is_fraud\"] == 1][\"city_pop\"]\n", + "t_stat, p_value = ttest_ind(f_pop, na_f_pop)\n", + "print(\n", + " f\"T-test: t-statistic = {round(t_stat, 3)}, p-value = {round(p_value, 2)}, p-value<0.05? = {p_value < 0.05}\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "9a192cb9-21db-4eee-947e-c76f6c643037", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:36.914153Z", + "iopub.status.busy": "2026-01-17T19:34:36.913639Z", + "iopub.status.idle": "2026-01-17T19:34:43.491943Z", + "shell.execute_reply": "2026-01-17T19:34:43.491313Z", + "shell.execute_reply.started": "2026-01-17T19:34:36.914131Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Frequency')" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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7733jltvvTU2bdoUvXv3jlWrVrXaJ5PJxLBhw4rnKEVtbZf63URF1NRkWzwCHUOvQWXoNagMvQaVodegMvQaVEZX6rUuHaj/9re/jUWLFsU3vvGNt9ynoaEhevbsGb169WqxPZfLRZIkUV9fH717946Ghobo379/q+MHDBgQ9fX1JdWZzWZi0KC+JZ2jO8vl+nR2CVAV9BpUhl6DytBrUBl6DSpDr0FldIVe67KB+l/+8peYMWNGjBs3Lk4//fTOLudtFQpJNDTsfCRNmtXUZCOX6xMNDRsjny90djmQWnoNKkOvQWXoNagMvQaVodegMsrVa7lcn5JXuXfJQL2hoSHOOeecGDhwYMyZM2enNyNtlsvlYsuWLbF58+YWq9QbGhoik8nEgAEDivs1Nja2Or6+vj523XXXkmveurX6/tLc+tSTsWX3oZEf9L6qfP9Qafl8Qa9BBeg1qAy9BpWh16Ay9BpURlfotc4fOvMmmzZtimnTpsWGDRvipptu2umYlh01z0VfvXp1i+2rVq2K3XbbLXr37l3c782z0pMkidWrV7earc47SxobYtM/fTf+es1VnV0KAAAAAEBFdKlAfevWrfHVr341Vq1aFTfddFMMHTr0HY858MADo1+/fnHvvfcWtzU1NcX9998fEydOLG6bOHFiPPvss/Hcc88Vtz388MOxfv36OPzww8v6PqpBsmlTRJJEoaGhs0sBAAAAAKiILjXy5Yorrohf//rXcfHFF0djY2M88cQTxddGjhwZPXv2jClTpsTLL78cS5YsiYiIXr16xbRp02LOnDlRV1cX++67b/z0pz+N9evXx9SpU4vHH3PMMTF37tw4//zzY+bMmbFx48aYPXt2HHHEETF69OhKv9VuL7N9DE9SyHdyJQAAAAAAldGlAvWHHnooIiKuueaaVq898MADsccee0ShUIh8vmWIe84550SSJHHzzTfH2rVrY7/99ov58+fHnnvuWdynR48ecdNNN8WsWbNi5syZUVtbG5MmTYpLL720Y99UWjXPtS+YDwYAAAAAVIdMkiRJZxfR3eXzhVi79vXOLqOikob1sfn/nBcREf3m39npNwOANKutzcagQX1j3brX9Rp0IL0GlaHXoDL0GlSGXoPKKFev1dX1jZqa0qagd6kZ6nQj2b/96CRWqQMAAAAAVUCgTvtkdvjREagDAAAAAFVA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+1jMmzcvkiTpsPcIneH555+Pyy67LE444YQYOXJkHH/88Tvdr9K9lSRJzJs3L4444ogYPXp0nHrqqfHEE0+U5T1DZ2hLr33xi1/c6WfdypUrW+yn12Dn7r333vjSl74UEydOjLFjx8YJJ5wQv/jFL1r93PtMg9K0pdd8pkHpli5dGl/4whfisMMOiw9/+MNx1FFHxdVXXx0bNmxosd9//Md/xKc+9akYNWpUHHPMMfHLX/6y1bm2bNkS3/ve92LChAkxduzYOPPMM2PVqlWt9mtrVtmWz9K2EKjzrtTX18eUKVOiqakp5syZEzNmzIg777wzrrnmms4uDbq0m266Ke64447if5///OeLr91zzz3x7W9/OyZPnhw33nhjjB07Nr7yla+0+p+or371q/HQQw/F5ZdfHv/4j/8Yq1evjnPOOSe2bt1a3Of555+PqVOnxuDBg2Pu3LkxZcqU+MEPfhA333xzpd4qVMSKFSti6dKl8YEPfCD23nvvne7TGb114403xg9+8IM444wzYu7cuTF48OA466yz4sUXXyz79wAqoS29FhFx4IEHtvicu+OOO2KPPfZosY9eg5275ZZbok+fPnHxxRfHDTfcEBMnToxvf/vb8cMf/rC4j880KF1bei3CZxqUav369TF69Oi44oorYv78+XHmmWfG3XffHRdeeGFxn9/+9rfxla98JcaOHRs33nhjTJ48Ob75zW/G4sWLW5xr1qxZ8fOf/zxmzJgRc+bMiS1btsQZZ5zRIpxva1bZ1s/SNkngXfjRj36UjB07Nlm3bl1x289+9rNkv/32S/7yl790XmHQRf3yl79M9t133+S11157y30+/vGPJzNnzmyx7dRTT03OPvvs4vPHHnss2XfffZP//M//LG5buXJlMmLEiOSee+4pbvv2t7+dfOxjH0s2b95c3HbttdcmBx98cItt0N3l8/ni19/4xjeS4447rtU+le6tTZs2JQceeGBy7bXXFvfZvHlz8rGPfSz5h3/4h/a/WehEbem1L3zhC8m55577tufRa/DWdvb/id/61reSAw88sNiDPtOgdG3pNZ9p0DHuuOOOZN999y1mh2eddVZy6qmntthn5syZyeTJk4vP//znPyf77bdf8rOf/ay4bd26dcnYsWOTefPmFbe1Natsy2dpW1mhzruybNmyGD9+fAwcOLC4bfLkyVEoFOKhhx7qvMKgm3rxxRfjueeei8mTJ7fYfuyxx8bDDz9c/CdKy5Yti1wuFxMmTCjuM3z48Nhvv/1i2bJlxW3Lli2Lo446Knr27NniXA0NDfH444938LuByslm3/5/YTqjtx577LFobGxscc2ePXvGpEmTWpwLupN36rW20mvw1urq6lpt22+//aKxsTHeeOMNn2lQJu/Ua22l1+Dda84Rm5qaYsuWLfHoo4/GJz7xiRb7HHvssbFy5cr405/+FBERDz74YBQKhRb7DRw4MCZMmNCq194pq2zrZ2lbCdR5V1atWhXDhw9vsS2Xy8XgwYN3OsMI2Ob444+P/fbbL4466qiYO3du5PP5iIhi3wwbNqzF/nvvvXc0NTUV/5nfqlWrYtiwYZHJZFrsN3z48OI53njjjfjzn//cqkeHDx8emUxGj1JVOqO3mh/fvN/ee+8dL7/8cmzatKlM7w66nv/6r/+KsWPHxqhRo+ILX/hC/Pd//3eL1/UavDu/+93vYujQodGvXz+fadCBduy1Zj7ToDzy+Xxs3rw5nn766fjhD38YRx55ZOyxxx7xwgsvRFNT005/7iOiRX+85z3viQEDBrTab8d8oy1ZZVs/S9uq9l3tTdVraGiIXC7XavuAAQOivr6+EyqCrm3w4MFx/vnnx5gxYyKTycR//Md/xD/90z/FmjVr4rLLLiv2zZv7qvl58+sNDQ3Rv3//VucfMGBAPPXUUxERxRlibz5Xz549o0+fPnqUqtIZvdXQ0BA9e/aMXr16tbpmkiRRX18fvXv3LvWtQZdzyCGHxAknnBB77bVXvPLKK8VZmbfffnsccMABEaHX4N347W9/G4sWLYpvfOMbEeEzDTrKm3stwmcalNPHPvaxWLNmTUREfPSjH41rr702Ikr/XMvlci3yjbZklW29ZlsJ1AE60Ec/+tH46Ec/Wnz+kY98JHr16hW33nprnHfeeZ1YGQCUxwUXXNDi+RFHHBHHH398/PM//3PceOONnVQVdE9/+ctfYsaMGTFu3Lg4/fTTO7scSK236jWfaVA+8+bNi40bN8Yf//jHuOGGG+K8886LH//4x51dVlkY+cK7ksvlWtxJt1l9fX2rf4IB7NzkyZMjn8/H73//+2LfvLmvGhoaIiKKr+dyuWhsbGx1rh17r/k3t28+15YtW2Ljxo16lKrSGb2Vy+Viy5YtsXnz5lbXzGQyepCqscsuu8Thhx8eTz/9dHGbXoN31tDQEOecc04MHDgw5syZU7yHgc80KK+36rWd8ZkG7fehD30oDjjggDjllFPin//5n+PRRx+NJUuWlPy51tDQ0KI32pJVtvWabSVQ513ZcSZYsw0bNsSrr77aal4R8M6a++bNfbVq1aro0aNH7LnnnsX9Vq9eHUmStNhv9erVxXPssssuseuuu7Y6V/NxepRq0hm91fy4evXqVtfcbbfd/HNdqppeg7e3adOmmDZtWmzYsCFuuummFv/E3WcalM/b9Vpb6TV490aMGBE9evSIF154Id7//vdHjx49dvq5FhEt+uOvf/1rq3Esb56Z3passq2fpW0lUOddmThxYvzmN78p/gYnImLx4sWRzWZb3OEaeGuLFi2KmpqaGDlyZOy5556x1157xeLFi1vtM378+OId4SdOnBj19fXx8MMPF/dZvXp1PPPMMzFx4sTitokTJ8YDDzwQTU1NLc6Vy+WKM/+gGnRGbx144IHRr1+/uPfee4v7NDU1xf3339/iXJB2b7zxRvx//9//F6NGjSpu02vw1rZu3Rpf/epXY9WqVXHTTTfF0KFDW7zuMw3K4516bWd8pkF5PPnkk9HU1BR77LFH9OzZM8aNGxf33Xdfi30WLVoUe++9d+yxxx4RsW1kbjabjfvvv7+4T319fTz44IOteu2dssq2fpa2lRnqvCunnXZa3H777TF9+vSYNm1arFmzJmbPnh2nnXZamz6MoNpMnTo1xo0bFyNGjIiIiAceeCDuvPPOOP3002Pw4MEREXH++efHRRddFO9///tj3LhxsWjRoli+fHn8y7/8S/E8BxxwQHzkIx+JSy+9NL7xjW9Er1694rrrrosRI0bExz/+8RbXW7BgQXzta1+Lz372s/G///u/MX/+/JgxY8a7/oCArmzjxo2xdOnSiIh46aWXorGxsfg/R4ceemjU1dVVvLd69eoV06ZNizlz5kRdXV3su+++8dOf/jTWr18fU6dOreB3B8rnnXqtOZSYNGlS7L777vHKK6/Ej3/843j11Vfj+9//fvE8eg3e2hVXXBG//vWv4+KLL47GxsZ44okniq+NHDkyevbs6TMNyuCdem358uU+06AMvvKVr8SHP/zhGDFiRPTu3TueffbZmD9/fowYMSKOPvroiIj40pe+FKeffnpcfvnlMXny5Hj00Udj4cKFcd111xXP8773vS9OPvnkmD17dmSz2Rg6dGjMnTs3+vfvH6eddlpxv7ZmlW35LG2rTPLmf6MC72DlypVx1VVXxeOPPx59+/aNE044QVgHb2HWrFnxn//5n/GXv/wlCoVC7LXXXnHKKafEF7/4xchkMsX9fv7zn8eNN94YL7/8cgwbNixmzpwZH/vYx1qca8OGDXH11VfHkiVLYuvWrfGRj3wkvvWtb7X6ZdZjjz0W11xzTfz+97+Purq6+PznPx/nnHNOi+tBd/enP/0pjjrqqJ2+dtttt8W4ceMiovK9lSRJzJs3L37yk5/E2rVrY7/99otLLrnEvxCh23qnXnvf+94XV155ZfzhD3+I9evXR58+feKAAw6Ir3zlKzF69OgW++s12LkjjzwyXnrppZ2+9sADDxRX6vlMg9K8U6/l83mfaVAG8+bNi0WLFsULL7wQSZLE7rvvHpMmTYqpU6dGv379ivs98MAD8U//9E+xevXq2G233eLcc8+Nk08+ucW5tmzZEtddd1386le/itdffz0OPPDA+Na3vhV77713i/3amlW25bO0LQTqAAAAAADQBmaoAwAAAABAGwjUAQAAAACgDQTqAAAAAADQBgJ1AAAAAABoA4E6AAAAAAC0gUAdAAAAAADaQKAOAAAAAABtIFAHAAAAAIA2EKgDAAAAAEAbCNQBAICSbNy4MebMmROPPvpoZ5cCAAAdSqAOAACUZOPGjXH99dfHf/3Xf3V2KQAA0KEE6gAAAAAA0AYCdQAASKmXXnopLr/88jjmmGNi9OjRMW7cuLjgggviT3/6U4v97rrrrhgxYkT89re/jVmzZsVhhx0WBx98cFx22WWxZcuWaGhoiK9//etxyCGHxCGHHBKzZ8+OJEkiIuJPf/pTjB8/PiIirr/++hgxYkSMGDEi5syZU/H3CwAAHa22swsAAAA6xv/8z//E448/Hscdd1y8733vi5deeil++tOfxumnnx733HNP9OnTp8X+s2bNive+971x/vnnx5NPPhl33HFH9O/fPx5//PHYddddY8aMGbFs2bKYP39+7LvvvnHiiSdGXV1dXH755XH55ZfHpEmTYtKkSRERMWLEiM54ywAA0KEySfPSEgAAIFU2bdoUvXv3brHtiSeeiFNPPTW+973vxYknnhgR21aoX3LJJfGRj3wkbrrppshkMhERcdpppxX3v+KKKyIiIp/Px5FHHhnvf//74/bbb4+IiLVr18b48ePjK1/5Spx//vmVe4MAAFBhRr4AAEBK7RimNzU1xbp16+L9739/5HK5eOaZZ1rtf/LJJxfD9IiI0aNHR5IkcfLJJxe31dTUxIc//OF48cUXO7Z4AADogox8AQCAlNq0aVPMnTs37rrrrlizZk3s+I9TN2zY0Gr/3XbbrcXz/v37R0TErrvu2mp7fX19B1QMAABdm0AdAABS6qqrroq77rorpkyZEmPHjo3+/ftHJpOJGTNmxM4mP2azO/8HrG+1HQAAqo1AHQAAUuq+++6LE088MS6++OLits2bN+90dXopdhwTAwAAaWapCQAApFRNTU2rbbfffnvk8/myXqdPnz4REdHQ0FDW8wIAQFdjhToAAKTUEUccEb/61a+iX79+8cEPfjCeeOKJ+M1vfhMDBw4s63V69+4dH/zgB+Pee++NvfbaKwYOHBj77LNP7LvvvmW9DgAAdDaBOgAApNQ3v/nNyGazsWDBgti8eXMceOCB8eMf/zjOPvvssl9r1qxZcdVVV8XVV18dTU1N8ZWvfEWgDgBA6mSSnd2NCAAAAAAAaMEMdQAAAAAAaAOBOgAAAAAAtIFAHQAAAAAA2kCgDgAAAAAAbSBQBwAAAACANhCoAwAAAABAGwjUAQAAAACgDQTqAAAAAADQBgJ1AAAAAABoA4E6AAAAAAC0gUAdAAAAAADaQKAOAAAAAABt8P8Dm+OYD+VZVP4AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.histplot(data=df, x=\"amt\", bins=30, kde=True)\n", + "plt.ylabel(\"Frequency\")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "45f7a9c7-60e1-46bc-bd24-878d6703ef50", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:43.493062Z", + "iopub.status.busy": "2026-01-17T19:34:43.492793Z", + "iopub.status.idle": "2026-01-17T19:34:43.571399Z", + "shell.execute_reply": "2026-01-17T19:34:43.570672Z", + "shell.execute_reply.started": "2026-01-17T19:34:43.493041Z" + } + }, + "outputs": [], + "source": [ + "df[\"gender_bin\"] = df[\"gender\"].map({\"F\": 0, \"M\": 1})" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "e6c944cd-1e73-4bc5-a0c0-e3990f121137", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:43.572636Z", + "iopub.status.busy": "2026-01-17T19:34:43.572362Z", + "iopub.status.idle": "2026-01-17T19:34:44.989667Z", + "shell.execute_reply": "2026-01-17T19:34:44.988924Z", + "shell.execute_reply.started": "2026-01-17T19:34:43.572613Z" + } + }, + "outputs": [], + "source": [ + "# we will get the time between transactions for each card\n", + "# Time=0 for every first transaction and time will be represented in hours.\n", + "df.sort_values([\"cc_num\", \"trans_date_trans_time\"], inplace=True)\n", + "df[\"hours_diff_bet_trans\"] = (\n", + " df.groupby(\"cc_num\")[[\"trans_date_trans_time\"]].diff()\n", + ") / np.timedelta64(1, \"h\")" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "8be40a04-70b2-4add-b6e5-05a4d6ebdbef", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:44.990867Z", + "iopub.status.busy": "2026-01-17T19:34:44.990594Z", + "iopub.status.idle": "2026-01-17T19:34:45.006349Z", + "shell.execute_reply": "2026-01-17T19:34:45.005514Z", + "shell.execute_reply.started": "2026-01-17T19:34:44.990843Z" + } + }, + "outputs": [], + "source": [ + "df.loc[df[\"hours_diff_bet_trans\"].isna(), \"hours_diff_bet_trans\"] = 0\n", + "df[\"hours_diff_bet_trans\"] = df[\"hours_diff_bet_trans\"].astype(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "afe6e6b3-795f-4a53-a810-77f3d01eb4a1", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:45.007746Z", + "iopub.status.busy": "2026-01-17T19:34:45.007477Z", + "iopub.status.idle": "2026-01-17T19:34:45.323884Z", + "shell.execute_reply": "2026-01-17T19:34:45.323174Z", + "shell.execute_reply.started": "2026-01-17T19:34:45.007715Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "21.308600246531245 9.715494713957777e-101\n" + ] + } + ], + "source": [ + "from scipy import stats\n", + "\n", + "t, p = stats.ttest_ind(\n", + " df[df[\"is_fraud\"] == 0][\"hours_diff_bet_trans\"],\n", + " df[df[\"is_fraud\"] == 1][\"hours_diff_bet_trans\"],\n", + " alternative=\"two-sided\",\n", + ")\n", + "print(t, p)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "94986001-efff-4b09-9004-26894053aec9", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:45.325145Z", + "iopub.status.busy": "2026-01-17T19:34:45.324792Z", + "iopub.status.idle": "2026-01-17T19:34:45.339400Z", + "shell.execute_reply": "2026-01-17T19:34:45.338722Z", + "shell.execute_reply.started": "2026-01-17T19:34:45.325121Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timecc_nummerchantcategoryamtgendercityzipcity_popjobunix_timeis_fraudsplitday_of_weekday_sinday_coshouragedistance_kmgender_binhours_diff_bet_trans
10172019-01-01 12:47:1560416207185fraud_Jones, Sawayn and Romagueramisc_net7.27FFort Washakie825141645Information systems manager13254220350train10.7818310.6234901233127.6100
27242019-01-02 08:44:5760416207185fraud_Berge LLCgas_transport52.94FFort Washakie825141645Information systems manager13254938970train20.974928-0.222521833110.31019
27262019-01-02 08:47:3660416207185fraud_Luettgen PLCgas_transport82.08FFort Washakie825141645Information systems manager13254940560train20.974928-0.22252183321.7900
28822019-01-02 12:38:1460416207185fraud_Daugherty LLCkids_pets34.79FFort Washakie825141645Information systems manager13255078940train20.974928-0.222521123387.2003
29072019-01-02 13:10:4660416207185fraud_Beier and Sonshome27.18FFort Washakie825141645Information systems manager13255098460train20.974928-0.222521133374.2100
\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time cc_num merchant \\\n", + "1017 2019-01-01 12:47:15 60416207185 fraud_Jones, Sawayn and Romaguera \n", + "2724 2019-01-02 08:44:57 60416207185 fraud_Berge LLC \n", + "2726 2019-01-02 08:47:36 60416207185 fraud_Luettgen PLC \n", + "2882 2019-01-02 12:38:14 60416207185 fraud_Daugherty LLC \n", + "2907 2019-01-02 13:10:46 60416207185 fraud_Beier and Sons \n", + "\n", + " category amt gender city zip city_pop \\\n", + "1017 misc_net 7.27 F Fort Washakie 82514 1645 \n", + "2724 gas_transport 52.94 F Fort Washakie 82514 1645 \n", + "2726 gas_transport 82.08 F Fort Washakie 82514 1645 \n", + "2882 kids_pets 34.79 F Fort Washakie 82514 1645 \n", + "2907 home 27.18 F Fort Washakie 82514 1645 \n", + "\n", + " job unix_time is_fraud split day_of_week \\\n", + "1017 Information systems manager 1325422035 0 train 1 \n", + "2724 Information systems manager 1325493897 0 train 2 \n", + "2726 Information systems manager 1325494056 0 train 2 \n", + "2882 Information systems manager 1325507894 0 train 2 \n", + "2907 Information systems manager 1325509846 0 train 2 \n", + "\n", + " day_sin day_cos hour age distance_km gender_bin \\\n", + "1017 0.781831 0.623490 12 33 127.61 0 \n", + "2724 0.974928 -0.222521 8 33 110.31 0 \n", + "2726 0.974928 -0.222521 8 33 21.79 0 \n", + "2882 0.974928 -0.222521 12 33 87.20 0 \n", + "2907 0.974928 -0.222521 13 33 74.21 0 \n", + "\n", + " hours_diff_bet_trans \n", + "1017 0 \n", + "2724 19 \n", + "2726 0 \n", + "2882 3 \n", + "2907 0 " + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "ad947c99-d2c2-4f6e-b0d4-c54422131c2e", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:45.340615Z", + "iopub.status.busy": "2026-01-17T19:34:45.340368Z", + "iopub.status.idle": "2026-01-17T19:34:47.822970Z", + "shell.execute_reply": "2026-01-17T19:34:47.822302Z", + "shell.execute_reply.started": "2026-01-17T19:34:45.340584Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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AAAA/6fGUfu+++6L8ePHR0REJpOJm266KW666aaPfG8ul4srrrgirwEBAAAAAOB9NY7affv2jSZNmkQul4tbbrklTj/99Ojatet278lkMtG4cePo2rVrHHnkkXU2LAAAAAAA+7caR+2jjjoqjjrqqIiI2LRpU5x00knx2c9+dre+tqqqKt55551o3bp1NGjQoKZLAwAAAACwn8vrUxxHjBix20E7ImL16tXRv3//+OMf/5jPsgAAAAAA7Kfyitq1kcvl9vaSAAAAAADsI/Z61AYAAAAAgNoStQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGTkFbVfeumlWL169U7Pr169Ol566aXq102aNIkRI0ZEx44d81kWAAAAAID9VF5Ru7y8PGbPnr3T87///e+jvLy8+vX7UbtDhw75LAsAAAAAwH4qr6idy+U+9vyWLVuipKQknyUAAAAAAKBavZp+wfLly+Ptt9+ufr148eLtthh5X0VFRUyePDnatWuX34QAAAAAAPB/ahy1H3/88Rg3blxkMpnIZDJxxx13xB133LHD+3K5XJSUlMSoUaPqZFAAAAAAAKhx1D711FPj0EMPjVwuF1dccUUMGTIkevbsud17MplMNG7cOA477LBo3bp1nQ0LAAAAAMD+rcZR+zOf+Ux85jOfiYiI0aNHR8+ePaNjx451PhgAAAAAAHxYjaP2Bw0aNKj61//4xz9i9erV8elPfzqaNGmS92AAAAAAAPBh2Xwv8Nxzz8Upp5wSJ5xwQgwaNCjmzp0bERGrV6+Os846K5577rm8hwQAAAAAgIg8o/bMmTPjsssui5YtW8all14auVyu+lxZWVm0bds2HnvssbyHBAAAAACAiDyj9vjx46Nnz54xadKkOP/883c436NHj5g/f34+SwAAAAAAQLW8ovbChQvj1FNP3en51q1bx6pVq/JZAgAAAAAAquUVtRs3bhybNm3a6fmlS5dGixYt8lkCAAAAAACq5RW1e/fuHU8++WRs27Zth3MrV66MKVOmxLHHHpvPEgAAAAAAUC2vqH3FFVfEO++8E//xH/8RjzzySGQymfjtb38b//3f/x0DBw6MXC4Xl156aV3NCgAAAADAfi6vqN2pU6d4+OGHo0WLFvGTn/wkcrlc3HPPPfGzn/0sPvvZz8bDDz8cHTp0qKtZAQAAAADYz9XL9wKHHnpo3HfffbF27dpYsmRJ5HK56NixY5SVldXFfAAAAAAAUC3vqP2+5s2bR7du3erqcgAAAAAAsIO8o/bq1avjrrvuilmzZsXbb78dERHt27ePE044IYYOHRqtW7fOe0gAAAAAAIjIc0/thQsXxsCBA2PChAnRrFmzOOWUU+KUU06JZs2axYQJE+KLX/xi/PWvf62rWQEAAAAA2M/l9aT2D37wg6isrIwpU6bssPXIq6++GhdffHHccMMN8cADD+Q1JAAAAAAAROT5pParr74a5eXlH7mXdrdu3aK8vDxeffXVfJYAAAAAAIBqeUXtVq1aRcOGDXd6vmHDhtGqVat8lgAAAAAAgGp5Re3y8vKYNGlSrFy5codzK1asiEmTJkV5eXk+SwAAAAAAQLUa7ak9YcKEHY41adIkTjrppBgwYEAceOCBERHx97//PWbMmBGf/vSn62ZKAAAAAACIGkbtm2++eafnnn766R2OvfHGG3HzzTfHhRdeWOPBAAAAAADgw2oUtWfMmLGn5gAAAAAAgF2qUdRu3759Xott3Lgx7r333jjrrLOiQ4cOeV0LAAAAAID9T14fFFlTGzdujPHjx8fSpUv35rIAAAAAAOwj9mrUjojI5XJ7e0kAAAAAAPYRez1qAwAAAABAbYnaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASEaNovaMGTNixYoVe2oWAAAAAAD4WDWK2iNGjIg5c+ZUv+7fv3/MmDFjt7++rKwsZsyYEUcffXRNlgUAAAAAgIiIqFeTNzdt2jQqKiqqX7/99tuxcePG3f76bDYb7du3r8mSAAAAAABQrUZRu1u3bnHHHXfEqlWrolmzZhERMWvWrPjnP/+506/JZDJx4YUX5jUkAAAAAABE1DBqX3/99fGd73wnbrvttoj4V7CeOnVqTJ06dadfI2oDAAAAAFBXahS1DzzwwJg8eXK89957sWrVqujXr19ce+210b9//z01HwAAAAAAVKtR1L7//vvjuOOOi4MPPjjatWsXI0aMiGOOOcY+2QAAAAAA7BXZmrx59OjRMW/evOrX48ePjzfeeKPOhwIAAAAAgI9So6hdWloaq1atqn6dy+XqfCAAAAAAANiZGm0/0rt37xg7dmzMnz8/mjVrFhERTz75ZMydO/djv+573/terYbbsGFDnHrqqbFixYr4+c9/HkceeWStrgMAAAAAwL6hRlH7+uuvj5tuuilmz54dq1atikwmE7Nnz47Zs2fv9GsymUyto/Ztt90WlZWVtfpaAAAAAAD2PTWK2q1atYpbb721+nWXLl3illtuiYEDB9b5YIsWLYqHH344vvOd78T1119f59cHAAAAACA9NdpT+8NGjx4dRx11VF3Nsp0bb7wxzj333Dj44IP3yPUBAAAAAEhPXlF70KBB0aFDh7qapdr06dPjr3/9a1x66aV1fm0AAAAAANJVo+1HhgwZEtlsNu65556oV69elJeX7/JrMplMTJw4cbfX2LRpU4wZMyauvPLKOOCAA2oy3seqVy+vfr/PKSnx/QAA0uL+hV3xMwIApMb9S+3UKGpHRFRVVVX/OpfL7fL9u/OeD7r99tujVatW8eUvf7mmo+1UNpuJli2b1tn1AADY+0pLGxd6BAAAqFPucWunRlH7gQce+NjX+Xr77bfj3nvvjfHjx8e6desiImLjxo3V/71hw4Zo2rTmcbqqKhcVFRvrdNbUlZRk/aEBAJJSUbEpKiurdv1G9lvucQGA1LjH3V5paePdenq9xk9q70nLli2LrVu3xrBhw3Y4V15eHt27d48pU6bU6trbtvnhAABIWWVllXs6AAD2Ke5xa6dGUXv58uW1WqRdu3a79b7DDjss7r///u2OzZ8/P0aPHh2jRo2KI488slbrAwAAAACwb6hR1O7Xr19kMpkaLzJ//vzdel9paWn07t37I8917do1unbtWuO1AQAAAADYd9Qoat90003bRe2qqqq4//77Y/ny5TFw4MA4+OCDIyJi8eLFMXXq1Gjfvn0MGTKkbicGAAAAAGC/VaOo/aUvfWm717fffnu899578cwzz0TLli23O3fZZZfFeeedF//85z/zGrB3797xxhtv5HUNAAAAAAD2Dbv+KMmPMXny5DjnnHN2CNoREWVlZXH22WfHpEmT8lkCAAAAAACq5RW116xZE5s2bdrp+U2bNsWaNWvyWQIAAAAAAKrlFbW7d+8eEydOjHnz5u1w7i9/+Us88MAD0a1bt3yWAAAAAACAajXaU/vDRo4cGUOGDInBgwdH9+7d46CDDoqIiL///e8xd+7caN68eVx33XV1MScAAAAAAOQXtQ855JB4+umn484774znn38+pk2bFhER7dq1i/Ly8rjooouiTZs2dTIoAAAAAADkFbUjIlq3bh3XXnttXHvttbt879atW+OVV16JLl26RLNmzfJdGgAAAACA/Uxee2rX1Nq1a6O8vPwj9+AGAAAAAIBd2atROyIil8vt7SUBAAAAANhH7PWoDQAAAAAAtSVqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAydirUbtZs2YxevToOPTQQ/fmsgAAAAAA7CPyitrz58+PqVOnbnfshRdeiPPPPz8GDx4cEydO3O5cw4YNY9CgQdG6det8lgUAAAAAYD+VV9S+5ZZbYtq0adWvly5dGiNGjIhly5ZFRMSYMWPikUceyW9CAAAAAAD4P3lF7QULFsTRRx9d/fqpp56KbDYbTzzxRDz66KNx8sknx+TJk/MeEgAAAAAAIvKM2uvWrYsWLVpUv541a1b07ds3ysrKIiKib9++sWTJkrwGBAAAAACA9+UVtdu0aROLFi2KiIh//OMf8dprr0Xfvn2rz2/YsCGy2b36WZQAAAAAAOzD6uXzxf37948HH3wwtmzZEnPnzo0GDRrEiSeeWH3+jTfeiI4dO+Y9JAAAAAAAROQZta+44opYvXp1PPXUU9GsWbMYPXp0tG7dOiIi1q9fH9OnT4/zzz+/TgYFAAAAAIC8onbTpk3j1ltv/chzTZo0ieeffz4aNWqUzxIAAAAAAFCt1hteb9q0KXr37h333HPPR184m41mzZpF/fr1az0cAAAAAAB8UK2jduPGjaOkpMST2AAAAAAA7DW1jtoRESeddFL86le/ilwuV1fzAAAAAADATuW1p/bpp58eo0aNivLy8hg8eHC0b9/+I5/c7tq1az7LAAAAAABAROQZtYcMGVL965dffnmH87lcLjKZTMyfPz+fZQAAAAAAICLyjNqjR4+uqzkAAAAAAGCX8oragwYNqqs5AAAAAABgl/L6oEgAAAAAANib8npS+5prrtnlezKZTNx00035LAMAAAAAABGRZ9T+wx/+sMOxqqqqWLlyZVRWVkZZWVk0btw4nyUAAAAAAKBaXlF75syZH3l869at8cgjj8TEiRPj3nvvzWcJAAAAAACotkf21K5fv3585Stfib59+8YNN9ywJ5YAAAAAAGA/tEc/KLJLly7x0ksv7cklAAAAAADYj+zRqP3iiy/aUxsAAAAAgDqT157a48aN+8jj69ati5deeilef/31GDZsWD5LAAAAAABAtT0StZs3bx4dO3aMUaNGxdlnn53PEgAAAAAAUC2vqL1gwYK6mgMAAAAAAHZpj+6pDQAAAAAAdSmvJ7XfN2fOnPjNb34Ty5cvj4iIdu3axec///no1atXXVweAAAAAAAiIs+ovWXLlrjqqqviueeei1wuF6WlpRERUVFRERMmTIgTTzwxbr311qhfv36dDAsAAAAAwP4tr+1Hxo8fH88++2x89atfjd/+9rcxZ86cmDNnTsyePTu+9rWvxTPPPBPjx4+vq1kBAAAAANjP5RW1n3766Rg0aFB8+9vfjtatW1cfb9WqVfzXf/1XnHXWWfGLX/wi7yEBAAAAACAiz6i9cuXK6Nat207Pd+vWLVauXJnPEgAAAAAAUC2vqP3JT34y5syZs9PzL730Unzyk5/MZwkAAAAAAKiWV9Q+66yz4pe//GWMHDkyFi9eHJWVlVFVVRWLFy+O66+/PqZPnx6DBg2qq1kBAAAAANjP1cvni4cPHx5Lly6NKVOmxKOPPhrZ7L8aeVVVVeRyuRg0aFAMHz68TgYFAAAAAIC8onZJSUmMGTMmLrzwwpg1a1YsX748IiLat28fxx9/fHTp0qVOhgQAAAAAgIg8o/b7unTpEh07doyKiorI5XLVx9+P3O3atauLZQAAAAAA2M/lFbXfe++9GDduXPz85z+PNWvW7PR98+fPz2cZAAAAAACIiDyj9ve///148sknY8CAAXH00UdH8+bN62ouAAAAAADYQV5R+9lnn43BgwfHD37wg7qaBwAAAAAAdiqbzxdnMpk4/PDD62oWAAAAAAD4WHlF7f79+8eLL75YV7MAAAAAAMDHqlHUXrNmzXb/+frXvx7Lli2L6667LubNmxerV6/e4T0f9wGSAAAAAABQEzXaU/uYY46JTCaz3bFcLhevv/56/PznP9/p182fP7920wEAAAAAwAfUKGpfeumlO0RtAAAAAADYW2oUtS+77LI9NUdERMyaNSvuuuuuePPNN2P9+vXRtm3bGDBgQIwYMSKaNWu2R9cGAAAAAKD41Shq72lr1qyJbt26xZAhQ6JFixaxcOHCGDt2bCxcuDDuvffeQo8HAAAAAECBFVXUPvPMM7d73bt372jQoEFcd911sWLFimjbtm2BJgMAAAAAoBhkCz3ArrRo0SIiIrZu3VrYQQAAAAAAKLiielL7fZWVlbFt27Z48803Y/z48dGvX7/o0KFDoccCAAAAAKDAijJqf+ELX4gVK1ZERMRxxx0Xt956a97XrFev6B9K36tKSnw/AIC0uH9hV/yMAACpcf9SO0UZte+8887YtGlTvPnmm3H77bfH8OHDY8KECVFSUlKr62WzmWjZsmkdTwkAwN5UWtq40CMAAECdco9bO0UZtbt06RIREUcddVQceeSRceaZZ8azzz4bp5xySq2uV1WVi4qKjXU5YvJKSrL+0AAASamo2BSVlVWFHoMi5h4XAEiNe9ztlZY23q2n14syan9Q586do379+vHWW2/ldZ1t2/xwAACkrLKyyj0dAAD7FPe4tVP0m7bMnTs3tm7d6oMiAQAAAAAorie1R4wYEUcccUR07tw5GjVqFAsWLIh77rknOnfuHAMGDCj0eAAAAAAAFFhRRe1u3brFtGnT4s4774xcLhft27ePwYMHx9ChQ6NBgwaFHg8AAAAAgAIrqqg9bNiwGDZsWKHHAAAAAACgSBX9ntoAAAAAAPA+URsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRGwAAAACAZIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRGwAAAACAZIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBn1Cj3AB/3yl7+MX/ziF/Haa69FRUVFHHjggTFkyJD48pe/HJlMptDjAQAAAABQYEUVte+7775o3759XH311dGyZct48cUX47rrrot33nknRowYUejxAAAAAAAosKKK2rfffnuUlZVVv+7Tp0+sWbMmJkyYEF//+tcjm7VbCgAAAADA/qyoKvEHg/b7DjvssFi/fn1s3LixABMBAAAAAFBMiipqf5Q//vGP0bZt2zjggAMKPQoAAAAAAAVWVNuPfNjLL78c06ZNi+985zt5X6tevaLv93tVSYnvBwCQFvcv7IqfEQAgNe5faqdoo/Y777wTV155ZfTu3TvKy8vzulY2m4mWLZvW0WQAABRCaWnjQo8AAAB1yj1u7RRl1K6oqIiLL744WrRoEWPHjs37AyKrqnJRUWFP7g8qKcn6QwMAJKWiYlNUVlYVegyKmHtcACA17nG3V1raeLeeXi+6qL158+a45JJLYt26dfHII49Es2bN6uS627b54QAASFllZZV7OgAA9inucWunqKL2tm3b4oorrojFixfHQw89FG3bti30SAAAAAAAFJGiitqjRo2KX//613H11VfH+vXr45VXXqk+d/jhh0eDBg0KNxwAAAAAAAVXVFF79uzZERExZsyYHc7NmDEjOnTosLdHAgAAAACgiBRV1J45c2ahRwAAAAAAoIjt+qMkAQAAAACgSIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRGwAAAACAZIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRGwAAAACAZIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGfUKPcCHLVmyJO65556YO3duLFy4MDp16hRTp04t9FgAAAAAABSBoovaCxcujFmzZkX37t2jqqoqcrlcoUcCAAAAAKBIFN32I/369YtZs2bFT3/60+jatWuhxwEAAAAAoIgUXdTOZotuJAAAAAAAioSCDAAAAABAMopuT+09pV49/f6DSkp8PwCAtLh/YVf8jAAAqXH/Ujv7RdTOZjPRsmXTQo8BAEAeSksbF3oEAACoU+5xa2e/iNpVVbmoqNhY6DGKSklJ1h8aACApFRWborKyqtBjUMTc4wIAqXGPu73S0sa79fT6fhG1IyK2bfPDAQCQssrKKvd0AADsU9zj1o5NWwAAAAAASEbRPam9adOmmDVrVkREvP3227F+/fqYPn16RET06tUrysrKCjkeAAAAAAAFVHRRe9WqVXH55Zdvd+z91/fff3/07t27EGMBAAAAAFAEii5qd+jQId54441CjwEAAAAAQBGypzYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRGwAAAACAZIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDJEbQAAAAAAkiFqAwAAAACQDFEbAAAAAIBkiNoAAAAAACRD1AYAAAAAIBmiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRGwAAAACAZIjaAAAAAAAkQ9QGAAAAACAZojYAAAAAAMkQtQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDKKLmovWrQovvrVr0aPHj2ib9++8cMf/jC2bNlS6LEAAAAAACgC9Qo9wAetXbs2LrjggjjooINi7NixsWLFihgzZkxs3rw5Ro4cWejxAAAAAAAosKKK2pMnT44NGzbEuHHjokWLFhERUVlZGaNGjYpLLrkk2rZtW9gBAQAAAAAoqKLafuT555+PPn36VAftiIhTTz01qqqqYvbs2YUbDAAAAACAolBUUXvx4sXRqVOn7Y6VlpZGmzZtYvHixQWaCgAAAACAYlFU249UVFREaWnpDsebN28ea9eurfV1s9lMlJU1zWe0fU4m86//7nTlf0WuclthhwEA+BiZkn/dsjZv3jhyuQIPQ1FzjwsApMI97kfLZjO79b6iitp7SiaTiZKS3fuG7G/qf8T/iQAAUIyy2aL6R4YUMfe4AEAq3OPWTlF910pLS2PdunU7HF+7dm00b968ABMBAAAAAFBMiipqd+rUaYe9s9etWxcrV67cYa9tAAAAAAD2P0UVtY8//vh48cUXo6KiovrY9OnTI5vNRt++fQs4GQAAAAAAxSCTyxXPVuRr166N008/PQ4++OC45JJLYsWKFTFmzJgYOHBgjBw5stDjAQAAAABQYEUVtSMiFi1aFDfccEP8+c9/jqZNm8aZZ54ZV155ZTRo0KDQowEAAAAAUGBFF7UBAAAAAGBnimpPbQAAAAAA+DiiNgAAAAAAyRC1AQAAAABIhqgNAAAAAEAyRG0AAAAAAJIhagMAAAAAkAxRG4C8LVq0KL761a9Gjx49om/fvvHDH/4wtmzZUuixAACg1pYsWRIjR46MM888Mw4//PA444wzCj0SAP+nXqEHACBta9eujQsuuCAOOuigGDt2bKxYsSLGjBkTmzdvjpEjRxZ6PAAAqJWFCxfGrFmzonv37lFVVRW5XK7QIwHwf0RtAPIyefLk2LBhQ4wbNy5atGgRERGVlZUxatSouOSSS6Jt27aFHRAAAGqhX79+MWDAgIiIuPrqq2PevHkFngiA99l+BIC8PP/889GnT5/qoB0Rceqpp0ZVVVXMnj27cIMBAEAeslnJBKBY+V9oAPKyePHi6NSp03bHSktLo02bNrF48eICTQUAAADsq0RtAPJSUVERpaWlOxxv3rx5rF27tgATAQAAAPsyURsAAAAAgGSI2gDkpbS0NNatW7fD8bVr10bz5s0LMBEAAACwLxO1AchLp06ddtg7e926dbFy5cod9toGAAAAyJeoDUBejj/++HjxxRejoqKi+tj06dMjm81G3759CzgZAAAAsC+qV+gBAEjbueeeGw888EBceumlcckll8SKFSvihz/8YZx77rnRtm3bQo8HAAC1smnTppg1a1ZERLz99tuxfv36mD59ekRE9OrVK8rKygo5HsB+LZPL5XKFHgKAtC1atChuuOGG+POf/xxNmzaNM888M6688spo0KBBoUcDAIBaWbZsWfTv3/8jz91///3Ru3fvvTwRAO8TtQEAAAAASIY9tQEAAAAASIaoDQAAAABAMkRtAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAKCWHn/88ejcuXMsW7asTq/75JNPximnnBJdu3aNnj171um187Gnfr8AAFAT9Qo9AAAA8P9btGhRXHPNNXHcccfFsGHDolGjRoUeCQAAioqoDQAAtXTmmWfG6aefHg0aNKiza86ZMyeqqqriu9/9bhx44IF1dl0AANhX2H4EAABqqaSkJBo2bBiZTKbOrrlq1aqIiGjWrNnHvi+Xy8XmzZvrbF0AAEiFqA0AALX04T2m//KXv8TQoUOjd+/e0a1bt+jXr19cc801u329fv36xdixYyMiok+fPtG5c+fq1/369YtLLrkkXnjhhfjSl74U3bp1i8mTJ0dExGOPPRbl5eXRp0+fOOKII+K0006Lhx9+eIfrf/B6H1736quv3u7YwoULo7y8PLp16xbHH3983HbbbVFVVbXbvxcAANhTbD8CAAB1YNWqVTF06NBo2bJlDBs2LEpLS2PZsmXx7LPP7vY1rr322njyySfj2Wefje9///vRpEmT6Ny5c/X5v/3tb3HVVVfFOeecE2effXYcfPDBERExadKkOPTQQ6Nfv35Rr169+PWvfx2jRo2KXC4X559/fo1/LytXrozy8vKorKyMYcOGRePGjWPKlCnRsGHDGl8LAADqmqgNAAB14M9//nOsXbs27rnnnjjyyCOrj1955ZW7fY0BAwbE/Pnz49lnn42TTz45ysrKtju/ZMmSuPvuu+O4447b7viDDz643QdKfuUrX4mhQ4fGhAkTahW177rrrli9enU8+uij0a1bt4iIGDRoUJx00kk1vhYAANQ1248AAEAdeH8P7N/85jexdevWPbJGhw4ddgjaEbFd0F63bl2sXr06evXqFUuXLo1169bVeJ1Zs2ZFjx49qoN2RERZWVkMHDiwdoMDAEAd8qQ2AADUgV69esXJJ58c48aNi/vuuy969eoVAwYMiIEDB0aDBg3qZI0OHTp85PE//vGPMXbs2HjllVdi06ZN251bt27dLj908sOWL18e3bt33+H4+9udAABAIYnaAABQBzKZTPz0pz+NV155JX7961/HCy+8ENdee21MmDAhHnnkkWjatGnea3zwiez3vfXWW3HhhRdGp06d4uqrr45PfepTUb9+/Zg1a1bcd999u/XhjpWVlXnPBgAAe4uoDQAAdahHjx7Ro0ePuPLKK+Ppp5+Ob33rWzFt2rQYPHjwHllv5syZsWXLlrj99tujXbt21cf/8Ic/7PDe5s2bR0VFxXbHtmzZEitXrtzuWLt27WLJkiU7fP3f/va3OpoaAABqz57aAABQB9auXRu5XG67Y4cddlhE/Csc7yklJSUREdutvW7dunjsscd2eG/Hjh3j5Zdf3u7YlClTdnhS+4QTTohXXnklXn311epjq1evjqeffrouRwcAgFrxpDYAANSBJ554IiZNmhQDBgyIT3/607Fhw4aYMmVKHHDAAXH88cfvsXX79u0b9evXj+HDh8e5554bGzZsiEcffTRatWq1wxPYgwcPjuuvvz4uu+yy+NznPhcLFiyI3/72t9GyZcvt3nfRRRfFU089FRdddFGUl5dH48aNY8qUKdGuXbt444039tjvBQAAdocntQEAoA706tUrjjjiiJg2bVrceOONcffdd8dBBx0UEydOjI4dO+6xdTt16hQ//elPI5PJxM033xyTJ0+Os88+O8rLy3d479lnnx0XX3xxvPTSS3HzzTfHsmXLYsKECdGkSZPt3veJT3wi7r///ujcuXPceeedMXHixDjzzDM/8poAALC3ZXIf/jeSAAAAAABQpDypDQAAAABAMuypDQAAe8GaNWti69atOz1fUlISZWVle3EiAABIk+1HAABgLxgyZEjMmTNnp+fbt28fM2fO3IsTAQBAmkRtAADYC+bNmxcVFRU7Pd+wYcM4+uij9+JEAACQJlEbAAAAAIBk+KBIAAAAAACSIWoDAAAAAJAMURsAAAAAgGSI2gAAAAAAJEPUBgAAAAAgGaI2AAAAAADJELUBAAAAAEiGqA0AAAAAQDL+P1VmZhX7dNhSAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(data=df, x=\"is_fraud\", y=\"hours_diff_bet_trans\", ci=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "d57eb25a-a006-4383-b64e-de89fa1d5763", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:47.824101Z", + "iopub.status.busy": "2026-01-17T19:34:47.823835Z", + "iopub.status.idle": "2026-01-17T19:34:52.484471Z", + "shell.execute_reply": "2026-01-17T19:34:52.483920Z", + "shell.execute_reply.started": "2026-01-17T19:34:47.824068Z" + } + }, + "outputs": [], + "source": [ + "df = df.sort_values([\"cc_num\", \"trans_date_trans_time\"])\n", + "df = df.set_index(\"trans_date_trans_time\")\n", + "\n", + "# 1. Transaction Velocity (Rolling Count)\n", + "# Identifies sudden bursts in card usage\n", + "df[\"trans_count_24h\"] = (\n", + " df.groupby(\"cc_num\")[\"amt\"].rolling(\"24h\").count().shift(1).reset_index(0, drop=True).fillna(0)\n", + ")\n", + "\n", + "# 2. Recent Spending Baseline (Rolling Mean)\n", + "# Needed for the 24h ratio calculation\n", + "df[\"avg_amt_24h\"] = (\n", + " df.groupby(\"cc_num\")[\"amt\"]\n", + " .rolling(\"24h\")\n", + " .mean()\n", + " .shift(1)\n", + " .reset_index(0, drop=True)\n", + " .fillna(df[\"amt\"])\n", + ")\n", + "\n", + "# 3. All-time Spending Profile (Expanding Mean)\n", + "# Captures long-term user behavior\n", + "df[\"user_avg_amt_all_time\"] = (\n", + " df.groupby(\"cc_num\")[\"amt\"].transform(lambda x: x.expanding().mean().shift(1)).fillna(df[\"amt\"])\n", + ")\n", + "\n", + "# Reset index to restore dataframe structure\n", + "df = df.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "64ef62c8-690c-498d-84b0-650c6b444292", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:52.485654Z", + "iopub.status.busy": "2026-01-17T19:34:52.485402Z", + "iopub.status.idle": "2026-01-17T19:34:52.500265Z", + "shell.execute_reply": "2026-01-17T19:34:52.499733Z", + "shell.execute_reply.started": "2026-01-17T19:34:52.485628Z" + } + }, + "outputs": [], + "source": [ + "# Identifies spikes relative to recent 24-hour activity (Burst Detection)\n", + "df[\"amt_to_avg_ratio_24h\"] = df[\"amt\"] / df[\"avg_amt_24h\"]\n", + "\n", + "# Identifies spikes relative to long-term behavior (Anomaly Detection)\n", + "df[\"amt_relative_to_all_time\"] = df[\"amt\"] / df[\"user_avg_amt_all_time\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "c0012e88-b382-47a5-b99c-1ac4bc67646a", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:52.501477Z", + "iopub.status.busy": "2026-01-17T19:34:52.501208Z", + "iopub.status.idle": "2026-01-17T19:34:53.025508Z", + "shell.execute_reply": "2026-01-17T19:34:53.024737Z", + "shell.execute_reply.started": "2026-01-17T19:34:52.501451Z" + } + }, + "outputs": [], + "source": [ + "# Apply cyclical encoding\n", + "df[\"hour_sin\"] = np.sin(2 * np.pi * df[\"hour\"] / 24)\n", + "df[\"hour_cos\"] = np.cos(2 * np.pi * df[\"hour\"] / 24)\n", + "\n", + "df.drop([\"hour\"], axis=1, inplace=True)\n", + "\n", + "df.drop(\"day_of_week\", axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "2cc84b00-6180-4a34-ab9b-d0b759f17283", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:53.026724Z", + "iopub.status.busy": "2026-01-17T19:34:53.026430Z", + "iopub.status.idle": "2026-01-17T19:34:53.982407Z", + "shell.execute_reply": "2026-01-17T19:34:53.981592Z", + "shell.execute_reply.started": "2026-01-17T19:34:53.026694Z" + } + }, + "outputs": [], + "source": [ + "df = df.sort_values(\"trans_date_trans_time\")\n", + "df[\"hours_diff_bet_trans_log\"] = np.log1p(df[\"hours_diff_bet_trans\"])\n", + "df.drop(\"hours_diff_bet_trans\", axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "f8e14132-cd90-4756-a8d4-e23d73b1216d", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:53.983600Z", + "iopub.status.busy": "2026-01-17T19:34:53.983347Z", + "iopub.status.idle": "2026-01-17T19:34:54.004904Z", + "shell.execute_reply": "2026-01-17T19:34:54.004273Z", + "shell.execute_reply.started": "2026-01-17T19:34:53.983569Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timecc_nummerchantcategoryamtgendercityzipcity_popjobunix_timeis_fraudsplitday_sinday_cosagedistance_kmgender_bintrans_count_24havg_amt_24huser_avg_amt_all_timeamt_to_avg_ratio_24hamt_relative_to_all_timehour_sinhour_coshours_diff_bet_trans_log
8395732019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls286543495Psychologist, counselling13253760180train0.7818310.6234903178.6006.095.6416674.9700000.0519651.0000000.0000001.0000000.000000
681602019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient99160149Special educational needs teacher13253760440train0.7818310.6234904130.2101.012.110000107.2300008.8546661.0000000.0000001.0000000.000000
4436312019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City832524154Nature conservation officer13253760510train0.7818310.62349057108.2115.0445.778000220.1100000.4937661.0000000.0000001.0000000.000000
9748842019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder596321939Patent attorney13253760760train0.7818310.6234905295.6715.042.45400045.0000001.0599711.0000000.0000001.0000000.000000
7026642019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443399Dance movement psychotherapist13253761860train0.7818310.6234903377.5616.078.12000041.9600000.5371221.0000000.0000001.0000000.000000
.................................................................................
3946142020-12-31 23:59:0730560609640617fraud_Reilly and Sonshealth_fitness43.77MLuray63453519Town planner13885343470test0.433884-0.9009695477.0314.066.84250062.3564360.6548230.701932-0.2588190.9659261.609438
10386572020-12-31 23:59:093556613125071656fraud_Hoppe-Parisiankids_pets111.84MLake Jackson7756628739Futures trader13885343490test0.433884-0.90096921100.0718.050.59250050.4355162.2106042.217485-0.2588190.9659261.098612
16086072020-12-31 23:59:156011724471098086fraud_Rau-Robelkids_pets86.88FBurbank993233684Musician13885343550test0.433884-0.9009693980.7608.094.29875088.7047970.9213270.979428-0.2588190.9659260.000000
1464632020-12-31 23:59:244079773899158fraud_Breitenberg LLCtravel7.99MMesa83643129Cartographer13885343640test0.433884-0.9009695552.9313.071.22000061.0162050.1121880.130949-0.2588190.9659261.386294
12581292020-12-31 23:59:344170689372027579fraud_Dare-Marvinentertainment38.13MEdmond73034116001Media buyer13885343740test0.433884-0.9009692772.44110.024.51800061.7441921.5551840.617548-0.2588190.9659260.693147
\n", + "

1852394 rows Γ— 26 columns

\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time cc_num \\\n", + "839573 2019-01-01 00:00:18 2703186189652095 \n", + "68160 2019-01-01 00:00:44 630423337322 \n", + "443631 2019-01-01 00:00:51 38859492057661 \n", + "974884 2019-01-01 00:01:16 3534093764340240 \n", + "702664 2019-01-01 00:03:06 375534208663984 \n", + "... ... ... \n", + "394614 2020-12-31 23:59:07 30560609640617 \n", + "1038657 2020-12-31 23:59:09 3556613125071656 \n", + "1608607 2020-12-31 23:59:15 6011724471098086 \n", + "146463 2020-12-31 23:59:24 4079773899158 \n", + "1258129 2020-12-31 23:59:34 4170689372027579 \n", + "\n", + " merchant category amt gender \\\n", + "839573 fraud_Rippin, Kub and Mann misc_net 4.97 F \n", + "68160 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 F \n", + "443631 fraud_Lind-Buckridge entertainment 220.11 M \n", + "974884 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 M \n", + "702664 fraud_Keeling-Crist misc_pos 41.96 M \n", + "... ... ... ... ... \n", + "394614 fraud_Reilly and Sons health_fitness 43.77 M \n", + "1038657 fraud_Hoppe-Parisian kids_pets 111.84 M \n", + "1608607 fraud_Rau-Robel kids_pets 86.88 F \n", + "146463 fraud_Breitenberg LLC travel 7.99 M \n", + "1258129 fraud_Dare-Marvin entertainment 38.13 M \n", + "\n", + " city zip city_pop job \\\n", + "839573 Moravian Falls 28654 3495 Psychologist, counselling \n", + "68160 Orient 99160 149 Special educational needs teacher \n", + "443631 Malad City 83252 4154 Nature conservation officer \n", + "974884 Boulder 59632 1939 Patent attorney \n", + "702664 Doe Hill 24433 99 Dance movement psychotherapist \n", + "... ... ... ... ... \n", + "394614 Luray 63453 519 Town planner \n", + "1038657 Lake Jackson 77566 28739 Futures trader \n", + "1608607 Burbank 99323 3684 Musician \n", + "146463 Mesa 83643 129 Cartographer \n", + "1258129 Edmond 73034 116001 Media buyer \n", + "\n", + " unix_time is_fraud split day_sin day_cos age distance_km \\\n", + "839573 1325376018 0 train 0.781831 0.623490 31 78.60 \n", + "68160 1325376044 0 train 0.781831 0.623490 41 30.21 \n", + "443631 1325376051 0 train 0.781831 0.623490 57 108.21 \n", + "974884 1325376076 0 train 0.781831 0.623490 52 95.67 \n", + "702664 1325376186 0 train 0.781831 0.623490 33 77.56 \n", + "... ... ... ... ... ... ... ... \n", + "394614 1388534347 0 test 0.433884 -0.900969 54 77.03 \n", + "1038657 1388534349 0 test 0.433884 -0.900969 21 100.07 \n", + "1608607 1388534355 0 test 0.433884 -0.900969 39 80.76 \n", + "146463 1388534364 0 test 0.433884 -0.900969 55 52.93 \n", + "1258129 1388534374 0 test 0.433884 -0.900969 27 72.44 \n", + "\n", + " gender_bin trans_count_24h avg_amt_24h user_avg_amt_all_time \\\n", + "839573 0 6.0 95.641667 4.970000 \n", + "68160 0 1.0 12.110000 107.230000 \n", + "443631 1 5.0 445.778000 220.110000 \n", + "974884 1 5.0 42.454000 45.000000 \n", + "702664 1 6.0 78.120000 41.960000 \n", + "... ... ... ... ... \n", + "394614 1 4.0 66.842500 62.356436 \n", + "1038657 1 8.0 50.592500 50.435516 \n", + "1608607 0 8.0 94.298750 88.704797 \n", + "146463 1 3.0 71.220000 61.016205 \n", + "1258129 1 10.0 24.518000 61.744192 \n", + "\n", + " amt_to_avg_ratio_24h amt_relative_to_all_time hour_sin hour_cos \\\n", + "839573 0.051965 1.000000 0.000000 1.000000 \n", + "68160 8.854666 1.000000 0.000000 1.000000 \n", + "443631 0.493766 1.000000 0.000000 1.000000 \n", + "974884 1.059971 1.000000 0.000000 1.000000 \n", + "702664 0.537122 1.000000 0.000000 1.000000 \n", + "... ... ... ... ... \n", + "394614 0.654823 0.701932 -0.258819 0.965926 \n", + "1038657 2.210604 2.217485 -0.258819 0.965926 \n", + "1608607 0.921327 0.979428 -0.258819 0.965926 \n", + "146463 0.112188 0.130949 -0.258819 0.965926 \n", + "1258129 1.555184 0.617548 -0.258819 0.965926 \n", + "\n", + " hours_diff_bet_trans_log \n", + "839573 0.000000 \n", + "68160 0.000000 \n", + "443631 0.000000 \n", + "974884 0.000000 \n", + "702664 0.000000 \n", + "... ... \n", + "394614 1.609438 \n", + "1038657 1.098612 \n", + "1608607 0.000000 \n", + "146463 1.386294 \n", + "1258129 0.693147 \n", + "\n", + "[1852394 rows x 26 columns]" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "d348f8c3-37c4-431c-8fd1-b84fa31c3d93", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:54.006237Z", + "iopub.status.busy": "2026-01-17T19:34:54.005907Z", + "iopub.status.idle": "2026-01-17T19:34:54.187708Z", + "shell.execute_reply": "2026-01-17T19:34:54.187077Z", + "shell.execute_reply.started": "2026-01-17T19:34:54.006215Z" + } + }, + "outputs": [], + "source": [ + "df.drop(columns=[\"cc_num\", \"city_pop\", \"unix_time\", \"zip\", \"merchant\", \"gender\"], inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "b25bace2-88f2-4bd3-9742-ad87a27b2206", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:54.188795Z", + "iopub.status.busy": "2026-01-17T19:34:54.188524Z", + "iopub.status.idle": "2026-01-17T19:34:54.193852Z", + "shell.execute_reply": "2026-01-17T19:34:54.193113Z", + "shell.execute_reply.started": "2026-01-17T19:34:54.188762Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['trans_date_trans_time', 'category', 'amt', 'city', 'job', 'is_fraud',\n", + " 'split', 'day_sin', 'day_cos', 'age', 'distance_km', 'gender_bin',\n", + " 'trans_count_24h', 'avg_amt_24h', 'user_avg_amt_all_time',\n", + " 'amt_to_avg_ratio_24h', 'amt_relative_to_all_time', 'hour_sin',\n", + " 'hour_cos', 'hours_diff_bet_trans_log'],\n", + " dtype='object')" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "ee50676a-a865-4d70-ac11-20fa4f6f37cd", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:54.195044Z", + "iopub.status.busy": "2026-01-17T19:34:54.194772Z", + "iopub.status.idle": "2026-01-17T19:34:54.320015Z", + "shell.execute_reply": "2026-01-17T19:34:54.319208Z", + "shell.execute_reply.started": "2026-01-17T19:34:54.195016Z" + } + }, + "outputs": [], + "source": [ + "df = df[\n", + " [\n", + " \"trans_date_trans_time\",\n", + " \"job\",\n", + " \"age\",\n", + " \"gender_bin\",\n", + " \"category\",\n", + " \"distance_km\",\n", + " \"hour_sin\",\n", + " \"hour_cos\",\n", + " \"day_sin\",\n", + " \"day_cos\",\n", + " \"hours_diff_bet_trans_log\",\n", + " \"amt\",\n", + " \"trans_count_24h\",\n", + " \"amt_to_avg_ratio_24h\",\n", + " \"amt_relative_to_all_time\",\n", + " \"is_fraud\",\n", + " \"split\",\n", + " ]\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "5b66a6d4-589c-475f-a35d-45b7b5c594f8", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:34:54.321221Z", + "iopub.status.busy": "2026-01-17T19:34:54.320980Z", + "iopub.status.idle": "2026-01-17T19:35:20.252225Z", + "shell.execute_reply": "2026-01-17T19:35:20.251388Z", + "shell.execute_reply.started": "2026-01-17T19:34:54.321201Z" + } + }, + "outputs": [], + "source": [ + "df.to_csv(\"cleaned.csv\", index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "8d07c254-908a-4b38-a816-39dc8a6f84de", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:35:20.253806Z", + "iopub.status.busy": "2026-01-17T19:35:20.253484Z", + "iopub.status.idle": "2026-01-17T19:35:20.269107Z", + "shell.execute_reply": "2026-01-17T19:35:20.268431Z", + "shell.execute_reply.started": "2026-01-17T19:35:20.253770Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timejobagegender_bincategorydistance_kmhour_sinhour_cosday_sinday_coshours_diff_bet_trans_logamttrans_count_24hamt_to_avg_ratio_24hamt_relative_to_all_timeis_fraudsplit
8395732019-01-01 00:00:18Psychologist, counselling310misc_net78.600.01.00.7818310.623490.04.976.00.0519651.00train
681602019-01-01 00:00:44Special educational needs teacher410grocery_pos30.210.01.00.7818310.623490.0107.231.08.8546661.00train
4436312019-01-01 00:00:51Nature conservation officer571entertainment108.210.01.00.7818310.623490.0220.115.00.4937661.00train
9748842019-01-01 00:01:16Patent attorney521gas_transport95.670.01.00.7818310.623490.045.005.01.0599711.00train
7026642019-01-01 00:03:06Dance movement psychotherapist331misc_pos77.560.01.00.7818310.623490.041.966.00.5371221.00train
\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time job age \\\n", + "839573 2019-01-01 00:00:18 Psychologist, counselling 31 \n", + "68160 2019-01-01 00:00:44 Special educational needs teacher 41 \n", + "443631 2019-01-01 00:00:51 Nature conservation officer 57 \n", + "974884 2019-01-01 00:01:16 Patent attorney 52 \n", + "702664 2019-01-01 00:03:06 Dance movement psychotherapist 33 \n", + "\n", + " gender_bin category distance_km hour_sin hour_cos day_sin \\\n", + "839573 0 misc_net 78.60 0.0 1.0 0.781831 \n", + "68160 0 grocery_pos 30.21 0.0 1.0 0.781831 \n", + "443631 1 entertainment 108.21 0.0 1.0 0.781831 \n", + "974884 1 gas_transport 95.67 0.0 1.0 0.781831 \n", + "702664 1 misc_pos 77.56 0.0 1.0 0.781831 \n", + "\n", + " day_cos hours_diff_bet_trans_log amt trans_count_24h \\\n", + "839573 0.62349 0.0 4.97 6.0 \n", + "68160 0.62349 0.0 107.23 1.0 \n", + "443631 0.62349 0.0 220.11 5.0 \n", + "974884 0.62349 0.0 45.00 5.0 \n", + "702664 0.62349 0.0 41.96 6.0 \n", + "\n", + " amt_to_avg_ratio_24h amt_relative_to_all_time is_fraud split \n", + "839573 0.051965 1.0 0 train \n", + "68160 8.854666 1.0 0 train \n", + "443631 0.493766 1.0 0 train \n", + "974884 1.059971 1.0 0 train \n", + "702664 0.537122 1.0 0 train " + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "a9889db4-937c-490d-8050-1789bda4e0ee", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:35:20.271020Z", + "iopub.status.busy": "2026-01-17T19:35:20.270066Z", + "iopub.status.idle": "2026-01-17T19:35:20.416026Z", + "shell.execute_reply": "2026-01-17T19:35:20.415442Z", + "shell.execute_reply.started": "2026-01-17T19:35:20.270994Z" + }, + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['Psychologist, counselling', 'Special educational needs teacher',\n", + " 'Nature conservation officer', 'Patent attorney',\n", + " 'Dance movement psychotherapist', 'Transport planner',\n", + " 'Arboriculturist', 'Designer, multimedia',\n", + " 'Public affairs consultant', 'Pathologist', 'IT trainer',\n", + " 'Systems developer', 'Engineer, land', 'Systems analyst',\n", + " 'Naval architect', 'Radiographer, diagnostic',\n", + " 'Programme researcher, broadcasting/film/video', 'Energy engineer',\n", + " 'Event organiser', 'Operational researcher', 'Market researcher',\n", + " 'Probation officer', 'Leisure centre manager',\n", + " 'Corporate investment banker', 'Therapist, occupational',\n", + " 'Call centre manager', 'Police officer',\n", + " 'Education officer, museum', 'Physiotherapist', 'Network engineer',\n", + " 'Forensic psychologist', 'Geochemist',\n", + " 'Armed forces training and education officer',\n", + " 'Designer, furniture', 'Optician, dispensing',\n", + " 'Psychologist, forensic', 'Librarian, public', 'Fine artist',\n", + " 'Scientist, research (maths)', 'Research officer, trade union',\n", + " 'Tourism officer', 'Human resources officer', 'Surveyor, minerals',\n", + " 'Applications developer', 'Video editor', 'Curator',\n", + " 'Research officer, political party', 'Engineer, mining',\n", + " 'Education officer, community', 'Physicist, medical',\n", + " 'Amenity horticulturist', 'Electrical engineer',\n", + " 'Television camera operator', 'Higher education careers adviser',\n", + " 'Ambulance person', 'Dealer', 'Paediatric nurse',\n", + " 'Trading standards officer', 'Engineer, technical sales',\n", + " 'Designer, jewellery', 'Clinical biochemist',\n", + " 'Engineer, electronics', 'Water engineer', 'Science writer',\n", + " 'Film/video editor', 'Solicitor, Scotland',\n", + " 'Product/process development scientist', 'Tree surgeon',\n", + " 'Careers information officer', 'Geologist, engineering',\n", + " 'Counsellor', 'Freight forwarder',\n", + " 'Senior tax professional/tax inspector',\n", + " 'Engineer, broadcasting (operations)',\n", + " 'English as a second language teacher', 'Economist',\n", + " 'Child psychotherapist', 'Claims inspector/assessor',\n", + " 'Tourist information centre manager',\n", + " 'Exhibitions officer, museum/gallery', 'Location manager',\n", + " 'Engineer, biomedical', 'Research scientist (physical sciences)',\n", + " 'Purchasing manager', 'Editor, magazine features',\n", + " 'Operations geologist', 'Interpreter', 'Engineering geologist',\n", + " 'Agricultural consultant', 'Paramedic', 'Financial adviser',\n", + " 'Administrator, education', 'Educational psychologist',\n", + " 'Financial trader', 'Audiological scientist',\n", + " 'Scientist, audiological',\n", + " 'Administrator, charities/voluntary organisations',\n", + " 'Health service manager', 'Retail merchandiser',\n", + " 'Telecommunications researcher', 'Exercise physiologist',\n", + " 'Accounting technician', 'Product designer',\n", + " 'Waste management officer', 'Mining engineer', 'Surgeon',\n", + " 'Therapist, horticultural', 'Environmental consultant',\n", + " 'Broadcast presenter', 'Producer, radio',\n", + " 'Engineer, communications',\n", + " 'Historic buildings inspector/conservation officer',\n", + " 'Materials engineer', 'Teacher, English as a foreign language',\n", + " 'Health visitor', 'Medical secretary', 'Theatre director',\n", + " 'Technical brewer', 'Land/geomatics surveyor',\n", + " 'Engineer, structural', 'Diagnostic radiographer',\n", + " 'Television production assistant', 'Medical sales representative',\n", + " 'Building control surveyor', 'Therapist, sports',\n", + " 'Structural engineer', 'Commercial/residential surveyor',\n", + " 'Database administrator', 'Exhibition designer',\n", + " 'Training and development officer', 'Mechanical engineer',\n", + " 'Medical physicist', 'Administrator', 'Mudlogger',\n", + " 'Fisheries officer', 'Conservator, museum/gallery',\n", + " 'Programmer, multimedia', 'Cytogeneticist',\n", + " 'Multimedia programmer', 'Counselling psychologist', 'Chiropodist',\n", + " 'Teacher, early years/pre', 'Cartographer', 'Pensions consultant',\n", + " 'Primary school teacher', 'Electronics engineer',\n", + " 'Museum/gallery exhibitions officer', 'Air broker',\n", + " 'Advertising account executive', 'Chemical engineer',\n", + " 'Advertising account planner',\n", + " 'Chartered legal executive (England and Wales)',\n", + " 'Psychiatric nurse', 'Secondary school teacher',\n", + " 'Librarian, academic', 'Embryologist, clinical', 'Immunologist',\n", + " 'Television floor manager', 'Contractor', 'Health physicist',\n", + " 'Copy', 'Bookseller', 'Land', 'Chartered loss adjuster',\n", + " 'Occupational psychologist', 'Facilities manager',\n", + " 'Further education lecturer', 'Archivist', 'Investment analyst',\n", + " 'Engineer, building services', 'Psychologist, sport and exercise',\n", + " 'Journalist, newspaper', 'Doctor, hospital', 'Phytotherapist',\n", + " 'Pharmacologist', 'Horticultural therapist', 'Hydrologist',\n", + " 'Community arts worker', 'Public house manager', 'Architect',\n", + " 'Lexicographer', 'Psychotherapist, child',\n", + " 'Teacher, secondary school', 'Toxicologist',\n", + " 'Commercial horticulturist', 'Podiatrist', 'Building surveyor',\n", + " 'Architectural technologist', 'Editor, film/video',\n", + " 'Social researcher', 'Wellsite geologist', 'Minerals surveyor',\n", + " 'Designer, ceramics/pottery', 'Mental health nurse',\n", + " 'Volunteer coordinator', 'Chief Technology Officer',\n", + " 'Camera operator', 'Copywriter, advertising', 'Surveyor, mining',\n", + " 'Product manager', \"Nurse, children's\", 'Pension scheme manager',\n", + " 'Archaeologist', 'Sub', 'Designer, interior/spatial',\n", + " 'Futures trader', 'Chief Financial Officer',\n", + " 'Museum education officer', 'Quantity surveyor',\n", + " 'Physiological scientist', 'Loss adjuster, chartered',\n", + " 'Pilot, airline', 'Production assistant, radio',\n", + " 'Immigration officer', 'Retail banker',\n", + " 'Health and safety adviser', 'Teacher, special educational needs',\n", + " 'Jewellery designer', 'Community pharmacist',\n", + " 'Control and instrumentation engineer', 'Make',\n", + " 'Early years teacher', 'Sales professional, IT',\n", + " 'Scientist, marine', 'Intelligence analyst',\n", + " 'Clinical research associate', 'Administrator, local government',\n", + " 'Barrister', 'Engineer, control and instrumentation',\n", + " 'Clothing/textile technologist', 'Development worker, community',\n", + " 'Art therapist', 'Sales executive',\n", + " 'Armed forces logistics/support/administrative officer',\n", + " 'Optometrist', 'Insurance underwriter', 'Charity officer',\n", + " 'Civil Service fast streamer', 'Retail buyer',\n", + " 'Magazine features editor', 'Equities trader',\n", + " 'Trade mark attorney', 'Research scientist (life sciences)',\n", + " 'Psychotherapist', 'Pharmacist, community', 'Risk analyst',\n", + " 'Engineer, maintenance', 'Logistics and distribution manager',\n", + " 'Water quality scientist', 'Lecturer, further education',\n", + " 'Production assistant, television', 'Tour manager',\n", + " 'Music therapist', 'Surveyor, land/geomatics',\n", + " 'Engineer, production', 'Acupuncturist', 'Hospital doctor',\n", + " 'Teacher, primary school', 'Accountant, chartered public finance',\n", + " 'Illustrator', 'Scientist, physiological',\n", + " 'Scientist, research (physical sciences)', 'Buyer, industrial',\n", + " 'Radio producer', 'Manufacturing engineer', 'Animal technologist',\n", + " 'Production engineer', 'Biochemist, clinical',\n", + " 'Engineer, manufacturing', 'Comptroller',\n", + " 'General practice doctor', 'Designer, industrial/product',\n", + " 'Prison officer', 'Merchandiser, retail', 'Engineer, drilling',\n", + " 'Engineer, petroleum', 'Cabin crew', 'Commissioning editor',\n", + " 'Accountant, chartered certified', 'Local government officer',\n", + " 'Professor Emeritus', 'Press sub',\n", + " 'Chartered public finance accountant', 'Writer',\n", + " 'Chief Executive Officer', 'Occupational hygienist',\n", + " 'Doctor, general practice', 'Community education officer',\n", + " 'Landscape architect', 'Occupational therapist',\n", + " 'Special effects artist', 'Civil engineer, contracting',\n", + " \"Barrister's clerk\", 'Travel agency manager',\n", + " 'Associate Professor', 'Neurosurgeon', 'Plant breeder/geneticist',\n", + " 'Radio broadcast assistant', 'Field seismologist',\n", + " 'Industrial/product designer', 'Metallurgist',\n", + " \"Politician's assistant\", 'Insurance claims handler',\n", + " 'Theme park manager', 'Gaffer', 'Chief Strategy Officer',\n", + " 'Heritage manager', 'Ceramics designer', 'Animator',\n", + " 'Oceanographer', 'Colour technologist', 'Engineer, agricultural',\n", + " 'Therapist, drama', 'Orthoptist', 'Learning mentor',\n", + " 'Arts development officer', 'Biomedical engineer',\n", + " 'Race relations officer', 'Therapist, music', 'Retail manager',\n", + " 'Furniture designer', 'Building services engineer',\n", + " 'Maintenance engineer', 'Aid worker', 'Editor, commissioning',\n", + " 'Private music teacher', 'Scientist, biomedical',\n", + " 'Public relations account executive', 'Dispensing optician',\n", + " 'Advice worker', 'Hydrographic surveyor', 'Geoscientist',\n", + " 'Environmental health practitioner', 'Learning disability nurse',\n", + " 'Chief Operating Officer', 'Scientific laboratory technician',\n", + " 'Records manager', 'Barista', 'Marketing executive',\n", + " 'Tax inspector', 'Musician', 'Therapist, art',\n", + " 'Engineer, automotive', 'Clinical psychologist', 'Warden/ranger',\n", + " 'Surveyor, rural practice', 'Sport and exercise psychologist',\n", + " 'Education administrator', 'Chief of Staff',\n", + " 'Nurse, mental health', 'Music tutor',\n", + " 'Planning and development surveyor',\n", + " 'Teaching laboratory technician', 'Chief Marketing Officer',\n", + " 'Theatre manager', 'Quarry manager',\n", + " 'Interior and spatial designer', 'Lecturer, higher education',\n", + " 'Regulatory affairs officer', 'Secretary/administrator',\n", + " 'Chemist, analytical', 'Designer, exhibition/display',\n", + " 'Pharmacist, hospital', 'Site engineer',\n", + " 'Equality and diversity officer', 'Public librarian',\n", + " 'Town planner', 'Chartered accountant', 'Programmer, applications',\n", + " 'Manufacturing systems engineer', 'Web designer',\n", + " 'Community development worker', 'Animal nutritionist',\n", + " 'Petroleum engineer', 'Information systems manager',\n", + " 'Press photographer', 'Insurance risk surveyor', 'Soil scientist',\n", + " 'Buyer, retail', 'Public relations officer',\n", + " 'Health promotion specialist', 'Psychiatrist',\n", + " 'Visual merchandiser', 'Rural practice surveyor', 'Hotel manager',\n", + " 'Communications engineer', 'Insurance broker',\n", + " 'Radiographer, therapeutic', 'Set designer', 'Tax adviser',\n", + " 'Drilling engineer', 'Fitness centre manager', 'Farm manager',\n", + " 'Management consultant', 'Energy manager',\n", + " 'Museum/gallery conservator', 'Herbalist', 'Osteopath',\n", + " 'Statistician', 'Hospital pharmacist', 'Estate manager/land agent',\n", + " 'Sports development officer', 'Investment banker, corporate',\n", + " 'Biomedical scientist', 'Television/film/video producer',\n", + " 'Nutritional therapist', 'Company secretary', 'Production manager',\n", + " 'Magazine journalist', 'Media buyer', 'Data scientist',\n", + " 'Engineer, civil (contracting)', 'Herpetologist',\n", + " 'Garment/textile technologist', 'Scientist, research (medical)',\n", + " 'Civil Service administrator', 'Airline pilot', 'Textile designer',\n", + " 'Environmental manager', 'Furniture conservator/restorer',\n", + " 'Horticultural consultant', 'Firefighter',\n", + " 'Geophysicist/field seismologist', 'Psychologist, clinical',\n", + " 'Development worker, international aid', 'Sports administrator',\n", + " 'IT consultant', 'Presenter, broadcasting',\n", + " 'Outdoor activities/education manager', 'Field trials officer',\n", + " 'Social research officer, government',\n", + " 'English as a foreign language teacher',\n", + " 'Restaurant manager, fast food', 'Hydrogeologist',\n", + " 'Research scientist (medical)', 'Designer, television/film set',\n", + " 'Geneticist, molecular', 'Designer, textile',\n", + " 'Licensed conveyancer', 'Emergency planning/management officer',\n", + " 'Geologist, wellsite', 'Air cabin crew', 'Seismic interpreter',\n", + " 'Surveyor, hydrographic', 'Charity fundraiser', 'Stage manager',\n", + " 'Aeronautical engineer', 'Glass blower/designer', 'Ecologist',\n", + " 'Horticulturist, commercial', 'Research scientist (maths)',\n", + " 'Engineer, aeronautical',\n", + " 'Conservation officer, historic buildings', 'Art gallery manager',\n", + " 'Advertising copywriter', 'Engineer, civil (consulting)',\n", + " 'Oncologist', 'Engineer, materials',\n", + " 'Scientist, clinical (histocompatibility and immunogenetics)',\n", + " 'Investment banker, operational', 'Medical technical officer',\n", + " 'Academic librarian', 'Artist', 'Clinical cytogeneticist',\n", + " 'TEFL teacher', 'Administrator, arts', 'Teacher, adult education',\n", + " 'Catering manager', 'Environmental education officer',\n", + " 'Conservator, furniture', 'Analytical chemist',\n", + " 'Broadcast engineer', 'Media planner', 'Lawyer',\n", + " 'Producer, television/film/video',\n", + " 'Armed forces technical officer', 'Engineer, site',\n", + " 'Contracting civil engineer', 'Veterinary surgeon',\n", + " 'Sales promotion account executive', 'Broadcast journalist',\n", + " 'Dancer', 'Forest/woodland manager', 'Personnel officer',\n", + " 'Industrial buyer', 'Accountant, chartered',\n", + " 'Air traffic controller', 'Careers adviser', 'Information officer',\n", + " 'Ship broker', 'Legal secretary', 'Homeopath', 'Solicitor',\n", + " 'Warehouse manager', 'Engineer, water',\n", + " 'Operational investment banker', 'Software engineer'], dtype=object)" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"job\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "54e0b6c7-3472-4db6-8f5b-f1b99bf8a68d", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:35:20.417102Z", + "iopub.status.busy": "2026-01-17T19:35:20.416881Z", + "iopub.status.idle": "2026-01-17T19:35:20.526115Z", + "shell.execute_reply": "2026-01-17T19:35:20.525410Z", + "shell.execute_reply.started": "2026-01-17T19:35:20.417083Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['misc_net', 'grocery_pos', 'entertainment', 'gas_transport',\n", + " 'misc_pos', 'grocery_net', 'shopping_net', 'shopping_pos',\n", + " 'food_dining', 'personal_care', 'health_fitness', 'travel',\n", + " 'kids_pets', 'home'], dtype=object)" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"category\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "f70ae496-67f7-4a72-9835-6265da78bf1d", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:35:20.527739Z", + "iopub.status.busy": "2026-01-17T19:35:20.527154Z", + "iopub.status.idle": "2026-01-17T19:35:25.233505Z", + "shell.execute_reply": "2026-01-17T19:35:25.232920Z", + "shell.execute_reply.started": "2026-01-17T19:35:20.527715Z" + } + }, + "outputs": [], + "source": [ + "df = pd.read_csv(\"cleaned.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "b9e0ed84-3438-4b15-989c-bf43106671f0", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:35:25.234586Z", + "iopub.status.busy": "2026-01-17T19:35:25.234345Z", + "iopub.status.idle": "2026-01-17T19:35:25.249219Z", + "shell.execute_reply": "2026-01-17T19:35:25.248614Z", + "shell.execute_reply.started": "2026-01-17T19:35:25.234563Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
trans_date_trans_timejobagegender_bincategorydistance_kmhour_sinhour_cosday_sinday_coshours_diff_bet_trans_logamttrans_count_24hamt_to_avg_ratio_24hamt_relative_to_all_timeis_fraudsplit
02019-01-01 00:00:18Psychologist, counselling310misc_net78.600.01.00.7818310.623490.04.976.00.0519651.00train
12019-01-01 00:00:44Special educational needs teacher410grocery_pos30.210.01.00.7818310.623490.0107.231.08.8546661.00train
22019-01-01 00:00:51Nature conservation officer571entertainment108.210.01.00.7818310.623490.0220.115.00.4937661.00train
32019-01-01 00:01:16Patent attorney521gas_transport95.670.01.00.7818310.623490.045.005.01.0599711.00train
42019-01-01 00:03:06Dance movement psychotherapist331misc_pos77.560.01.00.7818310.623490.041.966.00.5371221.00train
\n", + "
" + ], + "text/plain": [ + " trans_date_trans_time job age gender_bin \\\n", + "0 2019-01-01 00:00:18 Psychologist, counselling 31 0 \n", + "1 2019-01-01 00:00:44 Special educational needs teacher 41 0 \n", + "2 2019-01-01 00:00:51 Nature conservation officer 57 1 \n", + "3 2019-01-01 00:01:16 Patent attorney 52 1 \n", + "4 2019-01-01 00:03:06 Dance movement psychotherapist 33 1 \n", + "\n", + " category distance_km hour_sin hour_cos day_sin day_cos \\\n", + "0 misc_net 78.60 0.0 1.0 0.781831 0.62349 \n", + "1 grocery_pos 30.21 0.0 1.0 0.781831 0.62349 \n", + "2 entertainment 108.21 0.0 1.0 0.781831 0.62349 \n", + "3 gas_transport 95.67 0.0 1.0 0.781831 0.62349 \n", + "4 misc_pos 77.56 0.0 1.0 0.781831 0.62349 \n", + "\n", + " hours_diff_bet_trans_log amt trans_count_24h amt_to_avg_ratio_24h \\\n", + "0 0.0 4.97 6.0 0.051965 \n", + "1 0.0 107.23 1.0 8.854666 \n", + "2 0.0 220.11 5.0 0.493766 \n", + "3 0.0 45.00 5.0 1.059971 \n", + "4 0.0 41.96 6.0 0.537122 \n", + "\n", + " amt_relative_to_all_time is_fraud split \n", + "0 1.0 0 train \n", + "1 1.0 0 train \n", + "2 1.0 0 train \n", + "3 1.0 0 train \n", + "4 1.0 0 train " + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "4d6896f6-e65d-4987-9001-25d45eb4e856", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:35:25.250262Z", + "iopub.status.busy": "2026-01-17T19:35:25.249975Z", + "iopub.status.idle": "2026-01-17T19:35:27.958927Z", + "shell.execute_reply": "2026-01-17T19:35:27.958063Z", + "shell.execute_reply.started": "2026-01-17T19:35:25.250242Z" + } + }, + "outputs": [], + "source": [ + "from category_encoders import WOEEncoder\n", + "from xgboost import XGBClassifier\n", + "\n", + "df[\"amt_log\"] = np.log1p(df[\"amt\"])\n", + "# 4. TEMPORAL SPLIT (75% Train, 25% Test)\n", + "train_size = int(len(df) * 0.75)\n", + "train_df = df.iloc[:train_size].copy()\n", + "test_df = df.iloc[train_size:].copy()\n", + "\n", + "# 5. Weight of Evidence Encoding (Fit on Train ONLY to prevent leakage)\n", + "woe_cols = [\"job\", \"category\"]\n", + "encoder = WOEEncoder(cols=woe_cols)\n", + "\n", + "# Fit on training data and target\n", + "encoder.fit(train_df[woe_cols], train_df[\"is_fraud\"])\n", + "\n", + "# Transform both sets\n", + "train_encoded = encoder.transform(train_df[woe_cols]).add_suffix(\"_woe\")\n", + "test_encoded = encoder.transform(test_df[woe_cols]).add_suffix(\"_woe\")\n", + "\n", + "train_df = pd.concat([train_df, train_encoded], axis=1)\n", + "test_df = pd.concat([test_df, test_encoded], axis=1)\n", + "\n", + "# 6. Final Feature Selection\n", + "features = [\n", + " \"amt_log\", # Normalized transaction value\n", + " \"age\", # User demographic\n", + " \"gender_bin\", # Binary demographic\n", + " \"distance_km\", # Spatial anomaly indicator\n", + " \"hours_diff_bet_trans_log\", # Log-transformed velocity signal\n", + " \"hour_sin\",\n", + " \"hour_cos\", # Cyclical daily time\n", + " \"day_sin\",\n", + " \"day_cos\", # Cyclical weekly time (ADD THESE)\n", + " \"job_woe\", # Risk-encoded profession\n", + " \"category_woe\", # Risk-encoded category\n", + " \"trans_count_24h\", # Recent transaction burst count\n", + " \"amt_to_avg_ratio_24h\", # Deviation from 24h spending norm\n", + " \"amt_relative_to_all_time\", # Deviation from long-term spending norm\n", + "]\n", + "\n", + "X_train, y_train = train_df[features], train_df[\"is_fraud\"]\n", + "X_test, y_test = test_df[features], test_df[\"is_fraud\"]\n", + "\n", + "# 7. MODEL TRAINING: COST-SENSITIVE XGBOOST\n", + "# Calculate scale_pos_weight to handle 0.5% imbalance\n", + "imbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "b0c0a6f9-4027-4fef-9f8d-408354d830f5", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:40:03.702733Z", + "iopub.status.busy": "2026-01-17T19:40:03.702353Z", + "iopub.status.idle": "2026-01-17T19:42:40.616720Z", + "shell.execute_reply": "2026-01-17T19:42:40.615746Z", + "shell.execute_reply.started": "2026-01-17T19:40:03.702698Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 18 candidates, totalling 90 fits\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:06] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\n", + "Potential solutions:\n", + "- Use a data structure that matches the device ordinal in the booster.\n", + "- Set the device for booster before call to inplace_predict.\n", + "\n", + "This warning will only be shown once.\n", + "\n", + " return func(**kwargs)\n", + "/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:07] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\n", + "Potential solutions:\n", + "- Use a data structure that matches the device ordinal in the booster.\n", + "- Set the device for booster before call to inplace_predict.\n", + "\n", + "This warning will only be shown once.\n", + "\n", + " return func(**kwargs)\n", + "/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:08] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\n", + "Potential solutions:\n", + "- Use a data structure that matches the device ordinal in the booster.\n", + "- Set the device for booster before call to inplace_predict.\n", + "\n", + "This warning will only be shown once.\n", + "\n", + " return func(**kwargs)\n", + "/usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:09] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.\n", + "Potential solutions:\n", + "- Use a data structure that matches the device ordinal in the booster.\n", + "- Set the device for booster before call to inplace_predict.\n", + "\n", + "This warning will only be shown once.\n", + "\n", + " return func(**kwargs)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best Parameters: {'colsample_bytree': 0.8, 'learning_rate': 0.1, 'max_depth': 8, 'n_estimators': 500, 'subsample': 0.8}\n", + "Final Test PR-AUC: 0.9978\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "import warnings\n", + "\n", + "warnings.filterwarnings(\"ignore\", category=UserWarning, module=\"xgboost\") #\n", + "# 1. Define Parameter Grid for Optimization\n", + "param_grid = {\n", + " \"max_depth\": [4, 6, 8],\n", + " \"learning_rate\": [0.01, 0.05, 0.1],\n", + " \"n_estimators\": [100, 500],\n", + " \"subsample\": [0.8],\n", + " \"colsample_bytree\": [0.8],\n", + "}\n", + "\n", + "# 2. Setup TimeSeriesSplit\n", + "# This ensures each fold uses a training set that precedes the validation set in time\n", + "tscv = TimeSeriesSplit(n_splits=5)\n", + "\n", + "# 3. Run GridSearchCV\n", + "# Scoring is set to 'average_precision' (PR-AUC) as it is more robust than ROC-AUC for fraud\n", + "grid_search = GridSearchCV(\n", + " estimator=XGBClassifier(\n", + " scale_pos_weight=imbalance_ratio, tree_method=\"hist\", device=\"cuda\", random_state=42\n", + " ),\n", + " param_grid=param_grid,\n", + " cv=tscv,\n", + " scoring=\"average_precision\",\n", + " verbose=1,\n", + " n_jobs=-1,\n", + ")\n", + "\n", + "\n", + "grid_search.fit(X_train, y_train)\n", + "\n", + "# 4. Extract Best Parameters\n", + "print(f\"Best Parameters: {grid_search.best_params_}\")\n", + "best_model = grid_search.best_estimator_\n", + "\n", + "# 5. Final Training\n", + "# Train on the entire 75% training set using optimized parameters\n", + "best_model.fit(X_train, y_train)\n", + "\n", + "# 6. Final Evaluation on 25% Unseen Test Set\n", + "y_pred_proba = best_model.predict_proba(X_test)[:, 1]\n", + "\n", + "# Precision-Recall Analysis\n", + "precision, recall, thresholds = precision_recall_curve(y_test, y_pred_proba)\n", + "\n", + "print(f\"Final Test PR-AUC: {roc_auc_score(y_test, y_pred_proba):.4f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "e6cbf870-6ac9-48f8-a7c0-481fb7354caa", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:48:41.919632Z", + "iopub.status.busy": "2026-01-17T19:48:41.919274Z", + "iopub.status.idle": "2026-01-17T19:48:41.993176Z", + "shell.execute_reply": "2026-01-17T19:48:41.992463Z", + "shell.execute_reply.started": "2026-01-17T19:48:41.919606Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal Threshold: 0.9016819596290588\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 461339\n", + " 1 0.96 0.80 0.87 1760\n", + "\n", + " accuracy 1.00 463099\n", + " macro avg 0.98 0.90 0.94 463099\n", + "weighted avg 1.00 1.00 1.00 463099\n", + "\n" + ] + } + ], + "source": [ + "# Select threshold where recall is at least 80% while maximizing precision\n", + "idx = np.where(recall >= 0.80)[0][-1]\n", + "optimal_threshold = thresholds[idx]\n", + "\n", + "y_final_pred = (y_pred_proba >= optimal_threshold).astype(int)\n", + "print(f\"Optimal Threshold: {optimal_threshold}\")\n", + "print(classification_report(y_test, y_final_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "3491c88c-3d12-4753-bdbf-5523f0954f2d", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:48:48.619810Z", + "iopub.status.busy": "2026-01-17T19:48:48.619211Z", + "iopub.status.idle": "2026-01-17T19:48:49.127976Z", + "shell.execute_reply": "2026-01-17T19:48:49.127164Z", + "shell.execute_reply.started": "2026-01-17T19:48:48.619783Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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f/489u7di4MHD2L79u2wsrLC1atXpY5IRERElGUtWqh1luPjYdACpalhgZKIKA+6efM1Bg7cg0aNXLF0aXudgiSLk0SUF8lkMjRu3BiNGzfGjBkzcOTIEezbt0/qWERERER6a9ZMhVOn8v74kwAnySEiynP27bsPL68tCAmJxvbtd7B27XWpIxER5SgLCwt4enpi2bJlUkchIiIi0lvqyXKio/N2R5NMFSj379+v1+yIoihi//79WT6OiIiyTqMRMXfuWfj67kdcnAoAULt2UXToUE7iZERERERERJRVISEpRckLF+QSJjG+TBUoZ82ahXbt2mHVqlV48eLFJ/d/9uwZli9fjjZt2mD27NnZDklERB8XE6OEr+8+LFhwXruuZ89KCAjohaJFbSVMRkRERERERPooWzb/TCqUqQfZDx8+jPXr12PdunVYuHAhXFxcULlyZbi6usLBwQGiKCIyMhIvX77ErVu38O+//6JAgQLw8fHBoEGDjPwlEBHlb8+fR2LAgD24ffstAEAmE/DDD80wcmQdjjdJRERERESUSzVvrkZQkLnUMXJEpgqU1tbWGDFiBIYMGYJjx47hyJEjuHr1Kg4dOqR99FsQBJQsWRL16tVDq1at0LJlS5ib549vot70eGyeiCi1s2dfwNd3P969iwcA2NkpsHJlB7RqVUbiZERERERERESZk6WpgMzMzNCmTRu0adMGAKBWqxEZGQkAcHBwgFyet5+HNy72ciKirFu69JK2OOnmVgD+/l3w2WdOEqciIiIiIiIiyrxszVUul8vh5MQPwkREUvnjj/Zo334zSpd2wIoVHVCggKXUkYiIcsTFixc/ul0QBCgUChQtWhRFihTJoVREREREpI9sFSiJiEhajo5WCAjoicKFbWBmlql5z4iI8gQfH59Mj7NbqlQpjB07Fp6enkZORURERGQcUVF5+8lbFiiJiHKJ27ffYMqUo1i1qiOKFLHRri9WzE7CVERE0li9ejXmz58PpVKJXr16oWTJkgCAZ8+eYfv27bC0tMSIESPw8uVLbN26FV9//TVkMhnat28vcXIiIiKizElKSnm9caM5vvgiKeOdczkWKImIcoGDBx9i5MhAxMUl4Ysv9mHXrh6wsOCvcCLKv06dOgULCwts27YNCoVCZ1vfvn3h4+ODa9eu4ZtvvkGfPn3QvXt3rFq1igVKIiIi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EREREZHq/fCDIP/5zRsxBCF5rY7CgD0oVUrIehMCADx+HI62bbfDy8sPMhk/NyIiIiIiIiKizLx9W0iyk2CCUo0Unl+agnbixAu0b78Dr15Fws/vOby9r6o6JCIiIiIiIiIitRYXV3hyTUxQktoSBAHLl/8LT88DiIlJnkehWrWS6N69koojIyIiIiIiIiJSP717J8p/Dg9ngpIoT75+TcSPP/phzpwLEP4b0d2liz0OH+4Fa2sj1QZHRERERERERKSGPn36lpQMDJSoMJKcYYKS1M7799Ho0mU39u17JC+bMqUx1q3rCH19TRVGRkRERERERESkvipU+LZ6t65u4VnDg6t4k1q5du09Bg48jJCQWACAnp4mVqxoh44dK6o4MiIiIiIiIiIi9VanjlTVIeQKe1CSWlm37qY8OWlra4Rjx3oxOUlERERERERElEMzZ+qoOoRsYw9KUiuLF7fGo0fhMDXVwYYNnWFurqvqkIiIiIiIiIiICgU9PcVh3ZcvS9Cwofr3qmSCklRKEASIRN8mcDUw0MLu3d1hZqYDTc3CM5krEREREREREZGqNWqkmIwMDS0cK3lziDepzLNnn9Cly268exelUG5hoc/kJBERERERERFRDunpAf/3f/GqDiPHmKAklQgIeIl27XbgypUg9O9/ELGxiaoOiYiIiIiIiIio0BOLvw3z9vMrHIOnmaCkAiUIAlasuIa+fQ8gKio5oy+VCoiKilNxZEREREREREREhV9c3Ldh3VL1n34SABOUVIDi4pLw00/+mDnzHGSy5Gx+hw4VcPRoL/zwg6GKoyMiIiIiIiIiKvzatEmS/3zrVuGYQo8JSlUShKy3KSI+foxB1667sWfPQ3nZpEkNsXFjZxgYaKkwMiIiIiIiIiKiokNb+9vPL1+KsWiR+uddmKBUF6LCsapSbty8+RFt2mzDjRsfAQB6ehrYsKETfv65McTiovu+iYiIiIiIiIgKmqWlTOHxggXakMky2FhNMEFJSvXuXRRcXXfh48dYAIC1tSEOH+6Fzp3tVRwZEREREREREVHRY2QErF37VaHs82fVxJJdTFCSUllbG2HEiLoAAEdHKxw/3hfVq5dScVREREREREREREVX165JMDf/1m3y4UP1nouycKw1ToXa1KlO+OEHA/TrVx1aWur9B0FEREREREREVBSknovy7Vv1nmKP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10D+3UDFU36dG/g9oZ5YL+qrIOpGLJbAyMgcurr6Sn0dIiJ1wAQlEVEhIRKJYGxsDkNDU0ilSaoOR4FEIoKxsR4iI7+wp4eaYd2op/yoF4lEgz0nKV/ODfyeUE+sF/VVEHUjFksgFovVbsQMEZGyMEFJRFTIiMViiMVaqg5DgYaGGDo6Ovj6VYqkJPb0UCesG/XEeqH8lpdzA38f1RPrRX2xboiI8h9vuxMREREREREREZHKMEFJREREREREREREKsMEJREREREREREREamMSBAEzricAUEQIJMp/+ORSMSQSjl3ibphvagv1o16Yr2oL9aNeiqIehGLRVxgoZBje7R4Y72oL9aNemK9qC/WjXpSp/YoE5RERERERERERESkMhziTURERERERERERCrDBCURERERERERERGpDBOUREREREREREREpDJMUBIREREREREREZHKMEFJREREREREREREKsMEJREREREREREREakME5RERERERERERESkMkxQEhERERERERERkcowQUlEREREREREREQqwwQlERERERERERERqQwTlERERERERERERKQyTFASERERERERERGRyjBBSURERERERERERCrDBKUSPX/+HIMGDUKtWrXg5OSEBQsWICEhIcv9BEHA2rVr0bx5c9SoUQMeHh64deuW8gMuJnJTLyEhIViwYAFcXV1Ru3ZtODs7Y+LEiQgKCiqgqIuH3P7NpLZ582Y4ODhgxIgRSoqy+MlLvQQHB+OXX35Bw4YNUaNGDbRv3x6HDh1ScsTFQ27rJSIiAtOnT0fz5s1Rq1YtdOrUCTt27CiAiIuP169fY/r06XB1dUWVKlXQqVOnbO3H8z8pA9uj6ontUfXF9qh6YntUfbFNqp4KY3tUo0BepRiKjIzEgAEDULZsWXh7eyM4OBjz589HXFwcpk+fnum+69atw/LlyzFp0iQ4ODhg27ZtGDx4MA4ePAgbG5sCegdFU27r5f79+zh58iS6d++OmjVrIiIiAqtWrYK7uzuOHDkCMzOzAnwXRVNe/mZShIaGYsWKFTA3N1dytMVHXuolJCQEHh4eKFeuHGbPng0DAwM8ffo0x418Sisv9TJ27Fi8ePECEyZMwA8//IBz587h999/h0QiQc+ePQvoHRRtT58+xdmzZ1GzZk3IZDIIgpCt/Xj+p/zG9qh6YntUfbE9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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "from sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score\n", + "\n", + "# Calculate ROC data\n", + "fpr, tpr, roc_thresholds = roc_curve(y_test, y_pred_proba)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Calculate PR data\n", + "precision_vals, recall_vals, pr_thresholds = precision_recall_curve(y_test, y_pred_proba)\n", + "pr_auc = average_precision_score(y_test, y_pred_proba)\n", + "\n", + "# Plotting\n", + "fig, ax = plt.subplots(1, 2, figsize=(16, 6))\n", + "\n", + "# ROC Curve\n", + "ax[0].plot(fpr, tpr, color=\"darkorange\", lw=2, label=f\"ROC curve (area = {roc_auc:.4f})\")\n", + "ax[0].plot([0, 1], [0, 1], color=\"navy\", lw=2, linestyle=\"--\")\n", + "ax[0].set_xlabel(\"False Positive Rate (Friction)\")\n", + "ax[0].set_ylabel(\"True Positive Rate (Fraud Caught)\")\n", + "ax[0].set_title(\"ROC Curve\")\n", + "ax[0].legend(loc=\"lower right\")\n", + "\n", + "# Precision-Recall Curve\n", + "ax[1].plot(recall_vals, precision_vals, color=\"blue\", lw=2, label=f\"PR curve (area = {pr_auc:.4f})\")\n", + "ax[1].set_xlabel(\"Recall (Fraud Caught)\")\n", + "ax[1].set_ylabel(\"Precision (Flag Accuracy)\")\n", + "ax[1].set_title(\"Precision-Recall Curve\")\n", + "ax[1].legend(loc=\"lower left\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "274edbb2-c68f-48b1-bdd0-8e1181a1c35a", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:48:54.704332Z", + "iopub.status.busy": "2026-01-17T19:48:54.704021Z", + "iopub.status.idle": "2026-01-17T19:48:55.105412Z", + "shell.execute_reply": "2026-01-17T19:48:55.104765Z", + "shell.execute_reply.started": "2026-01-17T19:48:54.704306Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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2M8rudj+0mL7S4vtLy22v7SKUj+Pj5ESEREREREREREZCYttRERERERERERERsJiGxERERERERERkZGw2EZERERERERERGQkLLYREREREREREREZCYttRERERERERERERsJiGxERERERERERkZGw2EZERERERERERGQkLLYREREREREREREZCYttRERERERERERERlKkim2RkZH45JNP0KtXL9SvXx89evTQ6ThRFLFmzRp06NABjRo1wqBBg/DHH3+YNiwRERER6Yz9PCIiIiotilSx7e7duzh16hRcXFzg6uqq83Fr167F8uXLMXLkSKxevRpOTk4YNWoUHj9+bMK0RERERKQr9vOIiIiotChSxTYfHx+cOnUKy5cvR4MGDXQ6Jj09HatXr8aoUaMwcuRIeHl5YdmyZShbtizWr19v4sREREREpAv284iIiKi0KFLFNplM/zi///47kpKS0L17d/U6CwsLdOnSBREREcaMR0REREQGYj+PiIiISgszqQMU1IMHDwAAtWvX1ljv6uqKTZs2IS0tDVZWVlJEIyoRxIwMIDXFqOdUmcmgRDpU8akQFSqjnru0EjMzIEY9BgQh/51lMqTaWUKRlA6liu1f6Nj+0pLJkF7FCaKTs9RJSAfFtZ8nJiYg9f4N/juXCv+flZYJ2l+oUAmyKtWMci4iosJQ7IttCQkJsLCwgKWlpcZ6e3t7iKKI+Pj4AnXCzMxMc/OfXC7T+Er6ExMTICqV+e/3IgZicqLGOpVMQKqNJVQp6YBK/G/9o4eASgXlnZuApSUAHQoXOlBevQzB3gEw4Kq+lMRXL012buOW70gfmQDSpA5RirH9pZXd/jZTZ8OsUTOp41A+ims/L2XZ50h+9NAk56b88f9ZaZms/S0sIJQrr7lOzO7Hixpf9F0vJsZD7tEEcpfa6v1EiP8dBzHrWPH1g177Kv73eSLH5exzvfb+YkYGzJp7QbCy/u/8AARbO8iqGn5BiJ8zpcX2l1ZRav9iX2wzJZlMQLlytiZ9D3t7a5Oe/3WiUgnlq5cQU1OQ+fQpBF3ugNGRKj0NmQ/uI+3P65CXLavb3TUaJ1Ah7fdLkJVz1G33l3H6h3xDYRd7xIT4Qn5HIzPizwuZiChCsLWFWeWqUichKtLkZcrAoX5dmJn4dzwVbabs55l16ozkiFMmOTdRaZN5/27Wi4wMiNHP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2BYVFYW0tLRct6elpSEqKsrgUERERERUNLi6umL69Ok4fvw4tmzZgn79+uHu3btSxyIiIiKJyf8ttiEtFcrL56QNU8QYVGzr1KkTjh49muv2EydOoFOnTgaHIiIiIqKip3nz5pg/fz5Onz4tdRQiIiKSmKyuh/p15ppvIIqihGmKFoOKbfk1YGZmJmQyPqGqEw44TERERMWMmRnn2CIiIirtBGsbmPUZrF5WXbkgYZqiReeeUlJSksaAuK9evcrxUdGEhAQcPHgQTk5OxklIRERERERERERFjtk7vaDYsx0AICZyEqVsOhfbQkJCsHLlSgBZ07wuXLgQCxcuzHFfURQxbdo0owQkIiIiIiIiIqKiSda0RdZdbZmZUkcpMnQutrVp0wY2NjYQRRFfffUV/Pz80KBBA419BEGAtbU1GjRogIYNGxo9LBERERERERERFSH/FtmU5yJg1tlX4jBFg87FtqZNm6Jp06YAgNTUVHTt2hVubm4mC0ZEREREptenTx9Mnz4d3t7eAICwsDA0b94czs7OEicjIiKiYsHcHAAglOdwYtkMmsVg0qRJLLQRERERlQC3b9/Gy5cv1ctz5szBlStXJExERERExYmsXtaTjaqrlyROUnQYPJVUfHw89u/fjydPniA+Pl5rhtLscd2IiIiIqOiqWrUqfvvtN/To0QNyuRyiKELgbOlERESkK7OsO9sgilBePAu5Z2tp8xQBBhXbfv31V0yZMgWpqamws7ODvb291j7spBEREREVff7+/liyZAl+/vlnWFpaQhAEfPTRR/jkk09yPUYQBFy+fLkQUxIREVFRJW/SHIrNWa8z1y2HrElzCOYW0oaSmEHFti+//BJOTk5YsWIF3N3djZ2JiIiIiArJmDFjULduXZw/fx4vXrxAWFgYGjZsiOrVq0sdjYiIiIoBwdYOZiMmQLFpFQAgc/kiWMzM/aJdaWBQsS0yMhIffvghC21EREREJUDbtm3Rtm1bAMCePXswaNAg9OzZU+JUREREVFyYte6gLrap7tyUOI30DCq21axZE8nJycbOQkREREQS++uvv6SOQERERMWQ+fszkfn9UqljFAkGFdumTp2K//u//0OPHj04Lbyh3phQgoiIiKgouXDhAk6ePImoqCgAWRMpdOjQAS1atJA4GRERERVFQnkn9WsxMQFCGe3x/UsLnYptn3/+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ceJEacIRERFRiSHYlQHkckCphPgyFqhURepIRmNQsc3e3h4vX77Mdfu9e/fg5ORkcCgiIiIiks60adMwfPhw/Pbbb3j69CkAoFq1avDy8tKYNIGIiIioQP59fFR88gio6yFxGOMxqNjm7e2NnTt3YsiQIVrb7t69i127dqFfv34FDkdERERE0nB0dISfn5/UMYiIiKgEk9VrCNWt61l3uJUgBhXbpk2bhoEDB6JHjx7o2LEjBEFAWFgYfvrpJxw5cgROTk58vICIiIioGIiKigIAVK1aVWM5P9n7ExERERnMxlbqBCZhULGtUqVK2L17N5YtW4bw8HCIooi9e/fC1tYWfn5++OCDD/iIAREREVEx4OPjA0EQcPXqVVhYWKiX83Pr1q1CSEdERERU/BhUbAOA8uXLY8GCBViwYAHi4uKgUqng6OgImcygCU6JiIiISAJffPEFAMDc3BwAsHDhQp2KbURERESUM4OKbXPmzIG/vz8aN24MAFp3sV27dg3bt29Xd96IiIiIqGiyt7eHh4eHusDWt29fiRMRERERFW8G3Ya2Z88ePHr0KNftT548QVhYmKGZShleOSYiIiLpTJo0CRcuXFAvd+rUCcePH5cwEREREZU+otQBjMokz3w+f/4cVlZWpjg1ERERERmRra0tEhIS1MtPnz5FSkqKhImIiIio1FCpAADKX09IHMS4dH6M9NixYxpXOXfu3ImzZ89q7ZeYmIizZ8/Cw8PDOAmJiIiIyGQaNWqEVatWITY2FmXKlAEAnDp1Ci9evMj1GEEQMHLkyEJKSERERCVWejoAQKjgJHEQ49K52Hb//n0cOnQIANQzVv35558a+wiCABsbG3h6eiIoKMi4SYmIiIjI6ObNm4fZs2fju+++A5DVn9u/fz/279+f6zEsthEREZExyN5uAdXNq1BdvSx1FKPSudg2fvx4jB8/HgBQt25dLFiwAD179jRZsBJPLFnPIxMREVHx5OLigh07diA9PR2xsbHw8fHB3Llz0alTJ6mjERERUQknmJlLHcEkDJqN9K+//jJ2DiIiIiKSkKWlJapWrYpJkyahVatWqFatmtSRiIiIqIQT3qordQSTMKjYRkREREQl06RJk6SOQERERKWEYP7fnW2qp48gq1ZDwjTGY3Cx7dSpUwgJCcHNmzeRmJgIMYfHIm/dulWgcERERERU+O7fv4+ffvoJT548QXx8vFY/TxAEbNq0SaJ0REREVFIIDuXUr5VnT0E2IEDCNMYjM+Sgw4cPY8KECXjx4gV8fX2hUqng5+cHX19fWFlZwd3dHYGBgcbOSkREREQmFhYWhp49e2LLli2IjIyESqWCKIoaf1QqldQxiYiIqKSwL5v11dJS0hjGZNCdbatXr0ajRo2wbds2xMfHY/v27ejXrx+8vLzw5MkTDBo0CM7OzsbOSkREREQmFhwcjHr16mHt2rVwdHSUOg4RERGVcPK3W0J58rDUMYzKoDvb7t+/D19fX8jlcpiZZdXrFAoFAMDZ2RmDBw/G2rVrjZeyJBMEqRMQERERqT1//hz9+vVjoY2IiIjIQAYV26ysrGD+7yB29vb2sLCwQExMjHp7hQoV8OTJE+MkJCIiIqJC4+7ujufPn0sdg4iIiKjYMqjYVqtWLdy/f1+9XK9ePezduxcKhQLp6enYv38/qlSpYrSQRERERFQ4goKC8OOPP+L333+XOgoRERFRsWTQmG1dunRBaGgoZs+eDQsLC0yYMAETJ06Ep6cnACA1NRULFy40alAiIiIiMr21a9eiTJkyGDp0KOrUqYMqVapAJtO8PisIAr7//nuJEhIREREVbQYV20aPHo3Ro0erlzt27IjQ0FAcOXIEcrkc7du3R6tWrYwWskQSpQ5AREREpO3OnTsAgCpVqiA5ORn37t3T2kfgmLNEREREuTKo2JaT5s2bo3nz5urlpKQk2NnZGev0RERERFQITpw4IXUEIiIiomLNoDHb8hIbG4tly5ahY8eOxj41ERERERERERGVRPGvpE5gNHrd2RYbG4uwsDA8evQIDg4O6Nq1Kzw8PAAA0dHR+P7777Fnzx6kp6ejRYsWJglMRERERKZ34cIFnDx5ElFRUQCAqlWrokOHDuzjERERkVGJ6akAAOXv52EeME7iNMahc7Ht/v37GDZsGF69egVRzBpwbN26dfjqq68gCAI++ugjZGRkoGvXrhg9erS6CEdERERExUdGRgZmzpyJY8eOQRRF2NvbAwASEhKwceNGdOnSBUuXLoW5ubnESYmIiKgkkFWuBhUAoVIVqaMYjc7Ftm+//RYpKSmYN28emjdvjidPnuCLL77AwoULkZiYiI4dO+KDDz5A9erVTZmXiIiIiExo5cqVOHr0KEaNGoVRo0ahQoUKALKecNiwYQPWr1+PlStXYtq0adIGJSIiohJBqOIsdQSj07nYdunSJQwePBj+/v4AgDp16kAul2Ps2LHo06cPvvjiC5OFJCIiIqLC8fPPP6NPnz748MMPNdaXL18es2bNQmxsLPbt28diGxERERmV+Pc9iKJYImY913mChFevXsHd3V1jXd26dQEAnTt3Nm6q0qT4/wwRERFRCRITE4NGjRrlur1Ro0aIiYkpxERERERUkmk8PpqWKl0QI9K52KZSqWBmpnkjXPayjY2NcVMRERERkSQqV66MCxcu5Lr94sWLqFy5ciEmIiIiopJMKO8kdQSj02s20j///BOWlpbq5eTkZAiCgMuXLyMxMVFr/65duxY8IREREREVmt69e2PFihUoU6YMRo4cCRcXFwiCgIcPH2LTpk04dOgQJk+eLHVMIiIioiJLr2Lbpk2bsGnTJq31wcHBWusEQcCtW7cMT0ZEREREhW7ChAl4/Pgxdu7ciV27dkEmy3oQQqVSQRRF9OnTBxMmTJA4JREREVHRpXOxbfPmzabMUQqJUgcgIiIi0iKXy7Fo0SKMHDkSERERePr0KQCgWrVq8Pb2Vo/ZS0REREQ507nY1qJFC1PmULt//z4+//xzXLlyBba2tujVqxemTZsGCwsLnc8REhKCL774Ah06dMDq1atNmJaIiIioZKpbty4La0RERFSo0oMCYfnNhmI/I6nOEyQUhvj4eIwYMQKZmZlYsWIFpk+fjp07d2LRokU6nyMmJgYrV65E+fLlTZiUiIiIqORIT0/HJ598gtDQ0Dz327x5M+bNm4fMzEyD3uf+/ft477330KRJE7Rp0waLFy9GRkaGXucICQmBu7s7xo8fb1AGIiIiKmJen4wzLRXii2jpshhJkSq27dixA8nJyQgODka7du3Qv39/zJo1Czt27EB0tG6N/dVXX8HHxweurq4mTktERERUMvzwww/Ys2cPOnTokOd+HTp0wO7du7Fr1y6934MXVYmIiCgngiDAcsVr8wOoVNKFMZIiVWyLiIiAl5cXypYtq17XvXt3qFQqnDlzJt/jL126hGPHjmHmzJkmTElERERUsoSHh6Nr166oXr16nvvVqFED77zzDg4cOKD3e/CiKhEREeVGsLAErKwBAGLkA4nTFFyRKrY9ePAAtWvX1lhnb28PJycnPHiQd2MrlUp89tlnmDBhAipWrGjK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lSujXbt2ePz4MY4fPw6VSoXvv//elBmJiIiIiIiIiKgUEeTy/xYUmdIFMYBM1x23b9+O+vXr49ChQ/j222+xe/duDBs2DKdOnUJcXJwpMxIRERFRIdm/fz+CgoJy3T5nzhz1eL1EREREpiS41ZM6gkF0LrY9fvwYvXr1gpXVfwPUDRkyBCqVCpGRkSYJR0RERESFKyQkBBYWFrlut7S0xKZNmwoxEREREVHxonOxLT4+Ho6OjhrrypUrBwBIT083bqrShAMQExERURHy999/o1693K8i161bFw8ePCjERERERETFi87FNgCcmYqIiIiohBNFEYmJibluT0hIgEKhKMRERERERMWLzhMkAMDSpUuxevVq9bLq36lXP/74Y1hbW2vsKwgC9u3bZ4SIRERERFRY6tevj/3792PkyJFaj5NmZGTg559/zvPONyIiIqLSTudim6enZ47r33y0lIiIiIiKr7Fjx2LChAkYPnw4xo0bh7feegsAcOfOHaxZswb37t3jTPREREREedC52BYaGmrKHERERERUBLRv3x4LFizAggULEBgYqF4viiJsbW3x2WefoUOHDtIFJCIiotIno3jNFaDXY6SF4f79+/j8889x5coV2NraolevXpg2bVqes2I9f/4cISEhOHPmDB49eoQyZcrA09MTM2bMQLVq1QoxPREREVHx17dvX3Tt2hWnT5/G48ePAQA1atRAmzZtYGdnJ3E6IiIiKjUyMgAAyisXIPdqL3EY3RWpYlt8fDxGjBiBmjVrYsWKFYiOjsaiRYuQlpaGTz75JNfjbty4gaNHj6Jfv35o3LgxXr58ie+//x4DBgzA/v37+agrERERkZ7s7OzwzjvvGPWcvKhKREREejHP6iMIZRwkDqKfIlVs27FjB5KTkxEcHIyyZcsCAJRKJebPn4/x48ejUqVKOR7XrFkzhIeHw8zsv2/n7bffRocOHRAWFoZRo0YVRnwiIiKiEkGpVOLQoUM4f/48YmNjMWXKFLi7uyMxMRG//fYb3n77bVSoUEGvc/KiKhEREelLXr8RFHdvSR1Db0Wq2BYREQEvLy91oQ0Aunfvjnnz5uHMmTPo27dvjsfZ29trratcuTIcHR3x/PlzU8UlIiIiKnESEhIwZswYXLt2DTY2NkhNTcWwYcMAADY2Nvj888/Ru3dvzJgxQ6/z8qIqERERlRYy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AoQnj8QOp1R8QQIREREREREREVUJOp2dCydq1RY3kDKw2EZERERERERERFWCxMAAACA8ShY5ktKx2EZERERERERERFVDdjYAQHY/QeRASqf2mG03b96szDiIiIiIiIiIiIjKJLF8HzgTDYmxidihlIp3thERERERERERUZUgMTUTO4RysdhGRERERERERESkJSy2iUEQxI6AiIiIiIiIiIgqAYttREREREREREREWsJim9gkYgdARERERERERFS1CH8/EDuEUrHYRkREREREREREVYOObuH/ZQUQXmaJG0spWGwjIiIiIiIiIqIqQed9O8V07vdfihhJ6VhsIyIiIiIiIiKiKkGip6eYFh4miRhJ6VhsIyIiIiIiIiKiKqP2p4sLJwyNxA2kFCy2ERERERERERFRlSExMi6ceJEKoaBA3GBKwGIbERERERERERFVGZKGjRXTsgtnRYykZCy2ERERERERERFRlSGpb6CYLoj7Q7xASsFimygEsQMgIiIiIiIiIqqyJNY2AADZjasiR6KKxTYiIiIiIiIiIqpSag0coZiWJd4RMRJVLLaJTSIROwIiIiIiIiIioipFx6a1Yrog9qSIkahisY2IiIiIiIiIiKoUiY4OdBw6AwAKLp0TORplLLYREREREREREVGVo9PSGgAgaWQuciTKWGwjIiIiIiIiIqIqR9LUQuwQSsRiGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERVVnCg0QIMpnYYSiw2CYGQewAiIiIiIiIiIiqNomxiWK64Nqf4gVSDIttopOIHQARERERERERUZWjY9FSMS1kZ4sYiTIW24iIiIiIiIiIqErSsWkNACj487zIkfyLxTYiIiIiIiIiIqqShLTnAID8yxdEjuRfLLYREREREREREVGVpOvYvXAiJxtCQYG4wfzPW1dsS0hIwOTJk+Hg4ABnZ2esW7cOubm55S4nCAK2bt2Knj17wt7eHh4eHrh8+XLlB0xERERERERERKLQdflQMf109eciRvKvt6rYlp6ejkmTJiEvLw/+/v7w9vbGnj17sHbt2nKX3bZtG/z8/PDxxx8jICAAjRo1wpQpU/D333+/gciJiIiIqDy8qEpERETaJjEyUUy/+vOSeIEU8VYV23bv3o2XL19i48aN+OCDDzBixAgsXLgQu3fvRkpKSqnLvXr1CgEBAZgyZQo+/vhjODk54dtvv4WJiQl27NjxBveAiIiIiErCi6pERERUWWr/Z5li+m14lPStKrbFxMTAyckJJiYmijY3NzfIZDKcPn261OUuXryIrKwsuLm5Kdr09PTQp08fxMTEVGbIRERERKQGXlQlIiKiyqLTwkoxLbt3V8RICr1VxbbExERYWloqtRkZGaFRo0ZITEwsczkAKstaWVnh4cOHyMnJ0X6wRERERKQ2XlQlIiKiyiKpW08xnX/ujIiRFKoldgBFZWRkwMjISKXd2NgY6enpZS6np6cHfX19pXYjIyMIgoD09HTUqVNHo5hq1dJ+PVKADl79b1q3li4klbANKpuuro7S/+nNYv+Li/0vLva/uNj/4klMTMTw4cOV2l73ompwcDBycnI0zvOIiIio+pCYNYTw/BnwFuQFb1Wx7W2joyOBqWn9Slm37sjREPLyYGxuVinrJ/UYGdUVO4Qajf0vLva/uNj/4mL/v3k15aIqwKKu2Nj/4mL/i4v9Ly72v7hqzV2M/MO/opbTB4DINzW9VcU2IyMjZGZmqrSnp6fD2Ni4zOVyc3Px6tUrpUQsIyMDEomkzGXLIpMJyMj4R6Nly6M7YASMjeoiIyMbBQWyStkGlU5XVwdG7H/RsP/Fxf4XF/tfXJXd/0ZGdZlgVxGVeVFVjkVdcbH/xcX+Fxf7X1zsf5GYtgLaLhc7CgBvWbHN0tJS5TGCzMxMPH36VOXRgeLLAcC9e/dga2uraE9MTESTJk1e69GC/PzK/SJUUCCr9G1Q6dj/4mL/i4v9Ly72v7jY/29ejbqoyqK6qNj/4mL/i4v9Ly72v7jepouqb1WxzcXFBVu2bFF6zCAyMhI6OjpwdnYudbkOHTrAwMAAERERimJbXl4ejh8/DhcXlzcSOxERERGVjhdV6U1j/4uL/S8u9r+42P/iehv6/616zmH06NGoX78+vLy8EBsbi71792LdunUYPXo0zM3NFfNNmjQJffr0Ufysr6+PGTNmIDAwEMHBwThz5gzmz5+PtLQ0eHp6irErRERERFSEi4sL4uLikJGRoWir6EVVOV5UJSIiorfZW3Vnm7GxMYKDg7Fq1Sp4eXmhfv36GDFiBLy9vZXmk8lkKCgoUGqbNm0aBEFAYGAgnj9/Djs7O+zYsQPNmzd/k7tARERERCUYPXo0QkJC4OXlhRkzZiAlJaXUi6oPHz5EVFQUgH8vqvr7+8PMzAxSqRShoaG8qEpERERvrbeq2AYUvsY9KCiozHlCQkJU2iQSCWbMmIEZM2ZUUmREREREpCleVCUiIqKa4q0rthERERFR9cSLqkRERFQTvFVjthEREREREREREVVlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZZIBEEQxA7ibSUIAmSyyuseXV0dFBTIKm39VDb2v7jY/+Ji/4uL/S+uyux/HR0JJBJJpaybtIt5XvXG/hcX+19c7H9xsf/F9bbkeSy2ERERERERERERaQkfIyUiIiIiIiIiItISFtuIiIiIiIiIiIi0hMU2IiIiIiIiIiIiLWGxjYiIiIiIiIiISEtYbCMiIiIiIiIiItISFtuIiIiIiIiIiIi0hMU2IiIiIiIiIiIiLWGxjYiIiIiIiIiISEtYbCMiIiIiIiIiItISFtuIiIiIiIiIiIi0hMU2IiIiIiIiIiIiLWGxjYiIiIiIiIiISEtYbCMiIiIiIiIiItISFtsqQUJCAiZPngwHBwc4Oztj3bp1yM3NLXc5QRCwdetW9OzZE/b29vDw8MDly5crP+BqRpP+f/LkCdatW4chQ4agffv2cHFxwfz585GcnPyGoq4+ND3+iwoKCoKNjQ1mzJhRSVFWX6/T/ykpKVi8eDG6du0Ke3t7uLm54eDBg5UccfWiaf+/ePECy5cvR8+ePeHg4ICBAwciNDT0DURcvTx48ADLly/HkCFD0KpVKwwcOFCt5Xj+pYpgnicu5nniYp4nLuZ54mKeJ66qlufVqvQt1DDp6emYNGkSWrRoAX9/f6SkpGDt2rXIycnB8uXLy1x227Zt8PPzw4IFC2BjY4Ndu3ZhypQpOHDgAJo3b/6G9qBq07T/r127hqioKAwfPhzt2rXDixcv8MMPP2DkyJE4fPgwzMzM3uBeVF2vc/zLPX36FJs2bUKDBg0qOdrq53X6/8mTJ/Dw8EDLli2xatUqGBgY4M6dOxVOoGuy1+n/uXPnIjExEfPmzcO7776LmJgYrFixArq6uhg1atQb2oOq786dO4iOjka7du0gk8kg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jw8OHToEd3d3bNmyRTGWnr6+Pvr06YNx48ZhyJAhSsv17dsXEyZMwJEjR3Dw4EEIgqA4wX/xxRdo06YNdu/eje+++w66urpo2rQpBg8erPRmyJLo6elh0KBBiIyMxLx581Q+P3z4sGK8j1q1auHdd9+Fp6cnvLy8Shz3S65OnToICQnB+vXrER4ejqysLLRs2RJr1qyBu7u70rxr1qyBjY0Nfv31V6xbtw6GhoZo06YN2rdvX+r6nZyc8P3332POnDlYtGgRNmzYgEGDBqFx48bYunUrduzYgdzcXJibm6NTp05K23RxcYGvry++//57bNiwARYWFlizZg1OnjypViFVR0cH69atw4cffog9e/YgMDAQWVlZMDU1RefOnbFw4UJF7LVr18bGjRuxcuVK+Pr6olGjRpg0aRKMjIyUxj1T9/hfvXo1Vq1ahTVr1iAvLw+ffvoppFIpunXrhu3bt8PPzw9+fn6oVauWIpay/n4qSkdHB5s2bUJQUBAOHDiAqKgo1K1bF82aNcOECRPUehx98ODB2LNnD37++WdkZGSgUaNGcHNzw+zZs5WOqePHj0NPT6/Ev1EiIqqZ+vbtCwsLCwQGBmLUqFGwtrbG3r17sXHjRoSHhyMtLQ1mZmZo1aoVvLy8FMvVr18fu3btgr+/P6KiohAeHo4GDRrAyckJ5ubmAArfGv/s2TOEhYUhNjYW1tbW+OabbxAZGanxhdbiysu7NOHk5IQvv/wS27Ztw1dffYVmzZphwYIFSE5OVimMeXl54fnz5zh27BgiIiLg4uKC7du3qxT+bG1tsWPHDqxZswZ+fn545513MHv2bDx9+lStYhtQWPDq2rUrQkJCEBoaivT0dBgZGaFdu3bYvHkzPvzwQwAV63f5nXK7d++Gnp4ePvroIyxatEjlxVmurq749ttv4e/vjw0bNqBFixZYs2YN9u/fX+7jxKUpKxdPSEjA7du3sXTpUo3WTVTVSISKjGhIRFRD/f3333Bzc8O2bdu0dpWV6HUNHToUjo6OTFyJiKhaYd4lniFDhsDMzEwxnI22fPnllzh//jz27dvHO9uoRuCYbUREamjevDmGDx+OrVu3ih0KEQAgJiYGDx48wIwZM8QOhYiISKuYd1W+vLw8lbHi4uPjcfPmTTg6Omp1Wy9evMCvv/6K//znPyy0UY3BO9uIiIiIiIiIapCkpCRMnjwZgwcPRuPGjZGYmIjdu3fD0NAQhw4dgqmpqdghElVpHLONiIiIiIiIqAYxNjZG69at8csvv+D58+eoV68eevTogQULFrDQRqQFvLONiIiIiIiIiIhISzhmGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZaw2EZERERERERERKQlLLYRERERERERERFpCYttREREREREREREWsJiGxERERERERERkZb8f+LTcOl3bPRGAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, precision_recall_curve\n", + "\n", + "# Get values\n", + "fpr, tpr, _ = roc_curve(y_test, y_pred_proba)\n", + "precision, recall, _ = precision_recall_curve(y_test, y_pred_proba)\n", + "\n", + "# Plotting\n", + "import matplotlib.pyplot as plt\n", + "\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5))\n", + "\n", + "# ROC Plot\n", + "ax1.plot(fpr, tpr, label=\"XGBoost (AUC = 0.998)\")\n", + "ax1.set_title(\"ROC Curve (Catching Fraud vs. Friction)\")\n", + "ax1.set_xlabel(\"False Positive Rate (Blocked Customers)\")\n", + "ax1.set_ylabel(\"True Positive Rate (Caught Fraud)\")\n", + "\n", + "# PR Plot\n", + "ax2.plot(recall, precision, label=\"XGBoost (PR-AUC = 0.998)\")\n", + "ax2.set_title(\"PR Curve (Confidence vs. Catch Rate)\")\n", + "ax2.set_xlabel(\"Recall (Fraud Caught)\")\n", + "ax2.set_ylabel(\"Precision (Confidence of Alert)\")\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "eddc4cfd-f5b3-44c0-8e68-cb8d2d8416a1", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:48:58.314428Z", + "iopub.status.busy": "2026-01-17T19:48:58.314115Z", + "iopub.status.idle": "2026-01-17T19:48:58.466236Z", + "shell.execute_reply": "2026-01-17T19:48:58.465591Z", + "shell.execute_reply.started": "2026-01-17T19:48:58.314403Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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c985HiuMiAMA7sput6tfv36OgqV8+fLasWOHxowZo+joaL377rtO/ffs2aPvvvtOYWFh8vT01OLFi/Xqq6/qm2++UWBgYJbEdOjQIVWoUEFubs7fJwcFBWnp0qU6fvx4uve+W61WXbx40aktZ86cypMnj2w2m/r166d9+/apQ4cOKl26tP73v/9p/vz5OnHihL744gvHPosXL1bZsmUVGhqqHDly6D//+Y+GDx8uu92uzp07S5LeffddffTRR8qdO7f69u0r6f8VU5l1/PhxDRo0SC+99JI6dOigkiVL6tq1a3rllVcUHR2tjh07qnDhwtq/f78mTJig8+fP67333pMk7dy5U2+99Zbq1KmjwYMHS5KOHTumn3/+WV27dnWco1u3bpKkLVu23DWWZ599VpMnT9batWud7s23Wq1av369qlevrieeeEIXL17UN998o9atW+vFF1/UlStXtGzZMsfnIrP3ZU+cOFFTp05Vw4YN1bBhQ/3+++/q0aOHbty44dTv5MmT2rRpk1q0aKGiRYvqwoULWrp0qV555RWtW7dOBQsWVOnSpfXaa69p0qRJeumll1StWjVJUtWqVe8aw9q1a3XlyhW99NJLMplMmjVrlsLDw7Vp0ybHqObWrVv15ptvKjAwUIMGDVJcXJzee++9TN3+cOvnNDk5WX/99ZciIyNVvHhxpxgvXLigDh06yGQyqXPnzvLz89P27dv13nvv6fLly473NMXMmTNlMpnUo0cPXb58WbNmzdLgwYP1zTffOPpERUUpMTFRnTp1Ut68eXXgwAEtWrRIZ8+e1aRJkyTdnIkyduxYrV+/Xq+++qrTOdavX6969erJ19c3zWvL7N+Wn376SevXr1fnzp2VL18+FSlSRNLN9StCQ0P17LPP6saNG1q3bp1ef/11TZ8+XY0aNcpwrm+VlJSU6u+DJHl7ezvdJhEXF6dXX31VTZs2VcuWLbVhwwaNGzdOgYGBatiwoaSbXzZ07dpV58+fV5cuXZQ/f36tXbvWqQBPT0Y+b0ePHlWnTp1UsGBB9erVS7lz59b69es1YMAARUZGqmnTppKU4b8XKVasWKGkpCR16NBBnp6e8vX1TfUFXwqr1aqePXsqODhY77zzjn788UfNmTNHTz75pF5++WVJcvx9PXDggDp16qRSpUpp8+bNGjJkSIbzATwS7AAA3GL48OH2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dXybzabAwEANHTo0ze2FChWSdPMfv926dVOpUqUUERGhwoULy8PDQ9u2bdO8efPueB/lre5ULNxp9kBaK6TbbDbVq1cv1T26KVKKVn9/f61atUo//PCDtm/fru3bt2vFihVq06aNPv3003RjTYu/v7/q1q2r77//XsOGDdOWLVt05coVPfvss44+3377rSIiItSkSRP17NlT/v7+cnd31/Tp051GDrPatGnTNHHiRL3wwgt6/fXX5evrKzc3N33yySf3/YioO63kfr/HzYhKlSrJx8fHMXKZ8jl77rnn1LZt2zT3uX3NhNvXV0iREr/ValX37t0d90CXKlVKuXPnVnR0tCIiIpw+2wULFlT16tW1fv169e3bV7/88ovOnDnjWIcgq6T12d+7d6/69eunGjVq6IMPPlBAQIA8PDy0fPlyrV27NkvPnxajVvRP7/OW8n706NEj1YyZFCmFbkb/XqTIzFMZXPmEA+BhQyEOALirIkWK6Mcff9Tly5edRq6OHTvm2H6r21delqQTJ07Iy8srU9Mb76ZcuXLat2+fbDabU0Fx4MABeXl53fezfosVK6bDhw+rTp06dx1V27Jli65fv66pU6c6jTCmtQjTnY5z60hkys/S/xtRzWi8V69ezdAInqenp0JDQxUaGiqbzaYPP/xQS5cuVf/+/dOczZARzz77rHbs2KHt27dr7dq18vb2dlr5ecOGDXryySc1efJkpzykLPiVGSl5PnHihJ588klH+8WLF1ON2m7YsEG1atXSJ5984tQeHx+vfPnyOV7fz8hpenGmtfp8Wr8jmWW1WnX16lVJN2cDpCwymJHPQEb873//04kTJ/Tpp5+qTZs2jvY73dbQsmVLDR8+XMeOHXM83/zpp5++6zky+7clLRs2bFDOnDk1e/Zsp6n2y5cvT3dfoxQpUkR//vmn7Ha702ctI08myKiU3wUPD490PwOZ+XvxIDzxxBPatWuXrl275jQqnpX5AB4G3CMOALirBg0ayGq16ssvv3RqnzdvnkwmU6ppzfv373e6H/Xff//V5s2bVa9evSwbLWnRooUuXLig77//3tF28eJFRUVF6emnn07z/vHMaNmypaKjo/X111+n2paYmOgogFKu59ZR0ISEhDSLAC8vL6dpvylSRqluvS/z6tWrWrVqVabi3b9/v+NxTreKj49XcnKypJuPDLqVm5ubY6T01im9GX18WYomTZrIy8tLX331lbZv365mzZo53R6QVp5+/fVX/fLLLxk+R4q6devKw8NDixYtcjre7Y9gSznv7SPU69evd9wrmyKlGEjr/blXBQsWVGBgoFatWqUrV6442nfv3q3//e9/93Xsn376SVevXlW5cuUk3bzO5s2ba8OGDWkeO63Vv9OT8gXXrfmz2+1asGBBmv2bN28ud3d3rVu3TlFRUWrUqJFy585913Nk9m9LWtzd3WUymZxmkJw6dSrNR3a5Sv369RUdHe0UU1JSUpp/X+6Vv7+/atasqaVLlzpmBt3q1s9ARv9ePCj169fXjRs3nK7fZrOl+hwAjzpGxAEAdxUaGqpatWrps88+0+nTp2WxWLRz505t3rxZXbt2TXVfX2BgoHr27On0+DJJCg8PT/dcW7ZscTzj+caNGzpy5IjjUWGhoaGOwqN58+YKCQnR0KFD9eeffypfvnxavHixrFZrhs6Tnueff17r16/XBx98oF27dqlq1aqyWq06duyYoqKiNGvWLAUFBalevXry8PBQ37591bFjR125ckXffPON/P39U02dr1ixohYvXqwvvvhCxYsXl5+fn+rUqaN69erpiSee0Hvvvadjx47J3d1dy5cvV758+TI8Kt6zZ09t2bJFffv2Vdu2bVWxYkVdu3ZN//vf/7RhwwZt3rxZfn5+ev/99xUXF6fatWurYMGCOnPmjBYtWqTy5cs77suVMv74shR58uRR48aNHVOBb52WLkmNGjXS999/rwEDBqhRo0Y6deqUlixZojJlyji+1MgoPz8/9ejRQ9OnT1efPn3UsGFD/fHHH9q+fbvTKHfKeadMmaKhQ4eqSpUq+t///qc1a9Y4jaRLN78MMZvNWrJkifLkyaPcuXMrODg4Vb/MevPNN9W/f3916tRJ7dq1U3x8vL788ksFBgY6Fed3k5CQoG+//VbSzVHw48ePa/HixcqVK5d69+7t6Ddo0CDt2rVLHTp00IsvvqgyZcooLi5Ov//+u3788Uft3r07U7GXKlVKxYoV06effqro6Gh5e3trw4YNd/yywt/fX7Vq1dLcuXN15coVPfPMM+meI7N/W9LSsGFDx0KLrVu3VkxMjL766isVK1bM6T7tzDpx4oQj77fKnz+/6tWrl6ljvfTSS1q0aJEGDRqkLl26KCAgQGvWrHF8WZVV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qyNHjtx1v/79+8tisWj27NlO7WFhYerTp0+WxQcAAAAAmfXIFuKTJ0/OdCG+cuVKrV279gFF9eg4ffq0Jk+erHPnzjm1V6xYUUuXLlXp0qWz7FxnzpzR0qVLVa9ePX3++ef66KOPlJCQoJdeekl//fVXmvts27ZNv/76a5bFAAAAAABZ6ZEsxJF5iYmJ930Mb29vhYSEKHfu3FkQ0U1FixbVxo0b9eabb6p+/fpq3LixZsyYoZw5c+qrr75K1f/69ev6+OOP9dZbb2VZDAAAAACQlVxWiO/fv199+/ZV/fr1FRISoueff16rVq1ybE+Z5rxjxw69/vrrqlKliho1auSYOr5gwQI1atRINWvW1Hvvvafr169Lujm9fOjQoZKkOnXqyGKxKDQ0NN14wsLCtHv3bm3dulUWi0UWi0WRkZGO7UuWLFHz5s1VqVIlhYaG6osvvpDNZsvw9W7dulXdu3dXnTp1VLVqVb344ovavn27Y/upU6dksVgUFRWVat927do5FZZ79+5VmzZtFBQUpGeffVY7d+7U888/r4iIiAzHY7FYNGPGDI0dO1b16tVTnTp1JGXsfenSpYskqX379o5cpWy7fWp6UlKSRo0apfr16ysoKEjPP/+8Nm7cmOE4c+fOLS8vL6e2PHnyqFixYqlG5CVp9uzZMpvNateu3V2PGxUVpebNm6tKlSrq0qWL/vnnnwzHBAAAAAD3I4erTnzmzBlVrVpVnTp1kqenp37++We9//77stvtatu2raPfhx9+qLZt26pDhw76+uuv9c477+jw4cM6evSohg8frpMnT2r06NF68skn1bdvXzVq1Ej9+vXT1KlTNWvWLPn4+MjT0zPdeD744AO9/fbbypUrl4YMGSJJKlSokCRp4cKFGjlypMLCwtSoUSPt379fkydPVkJCgqNvek6dOqWnn35aPXr0kJubm7Zv367evXtr/vz5qlWrlooWLaqQkBB99913atGihWO/EydO6Pfff9fAgQMlSefOnVOvXr1UoUIFff7550pISNCHH36ohIQElS9fPsP5l25+mVG5cmV9/PHHSk5OlpT++1KxYkUNGzZMI0aM0KhRo1SqVKm7nmPw4MHasWOH3njjDZUqVUrffvutwsPDNWXKFDVu3DhT8aaIj4/X0aNHVbduXaf2M2fOaMaMGZo7d65MJtMd9z906JAuXryo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999XrVq19OKLL2rhwoWqXLmyLl++7HS8v/76SxaLRdu2bUs3R127dtXbb7/teH3w4EFZLBa99tprjrZjx47JYrHowIEDjrbvv/9ezz//vIKCglS/fn2NGjVKSUlJTseOj4/Xhx9+qPr166tSpUpq166dfvjhh3RjAgAAAICsksPVATxO9u3bp65duyokJEQjR46U2WzWwYMHdebMGUlSTEyM+vTpowIFCujixYuaO3euwsLCtG7dOuXIkUMffPCB3n77beXKlUtDhgyRJBUqVEiSFBUVpTfffFPt2rVTeHi4zp8/r/Hjxys+Pl6fffaZpJsj1j169JDZbNbYsWMlSVOmTFF8fLyKFSvmiPPgwYPq3r27atWqpYkTJ+rChQsaP368/vzzTy1ZskTu7u6OvhMmTFDDhg01fvx42Ww2Va5cWWPHjtXatWvVsWNHR79ly5apYMGCql+/frp5qlGjhpYvX+54vWfPHuXMmVP79u1zasudO7cqVqwoSdq8ebNee+01tWrVSoMGDdKxY8f02Wef6d9//9WkSZMkSdevX1f37t0VExOjN954QwULFtTq1avVp08frVixQhaLJRPvJgAAAADcGwpxA40dO1bFixfX/PnzHcXsrYXpqFGjHD9brVZVqVJFDRo00E8//aT69eurTJky8vb2Vu7cuRUSEuLoa7fbNWbMGD3zzDP6+OOPHe0BAQHq3bu3+vfvr7Jly2r58uWKiYnR4sWLVbRoUUlSpUqV1KxZM6dCfNq0aQoICNC0adPk4eEhSSpcuLB69uypbdu2KTQ01NG3XLlyTueUpObNm2v58uWOQjw5OVmrV69W+/btnYr4O6levboiIyN1+vRpFSlSRHv27NELL7ygJUuW6K+//lLp0qW1Z88eVa1a1XG8yZMnKyQkROPHj5ckNWjQQF5eXho2bJiOHDkii8WiNWvW6PDhw/r2229VpkwZSdJTTz2lv//+W1988YUmTpyYbmxAVnF3f/gmJKXE/DDG/rAi565B3l2DvBuPnLsGeTdedsw5hbhBrl27pl9//VVvvfXWHYvRbdu2aerUqTp69KjT1O4TJ07cdST5+PHjOn36tN59910lJyc72mvWrCk3NzcdPHhQZcuW1cGDBxUYGOgowiWpaNGiKleunNPx9u7dq9atWzuKcOnmFwZms1n79u1zKsQbNWqUKp4OHTro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77+aNm2a+vfvr4ULFzode8uWLfr77781bNgwxcbGatSoUfroo4/02WefSZKmT5+uJUuWaPDgwSpbtqxiY2O1c+dOXb9+PUOx79u3T127dlVISIhGjhwps9msgwcP6syZM5Ju3nvdq1cvnTx5UoMHD1b+/Pm1cOFCde/eXUuWLFGlSpUyna/PP/9cjRs31ueff679+/crMjJSxYoVU6dOnfTiiy/q7NmzWrt2rebPny9J9zx1PDk5Wb/++quqVavm1H758mWNGTNG7777rry8vO64//nz5zVy5Ej17t1bPj4+Gj9+vAYOHKiNGzfKw8PjnmICAAAAgMygEL+DYsWKyc/PT2fOnFFISIjTtri4OM2cOVOVK1d2ah8+fLjj5+TkZBUtWlQvv/yyjh8/rpIlSzq22e12TZ061TGd/fTp05o+fbpsNpvc3Nz022+/qX79+urcubNjn+bNm2c49rFjx6p48eKaP3++3N3dJUn169d3bN+6dasOHDigWbNm6amnnnJsb9asmaZPn67IyMgMnytFcHCw3n//fUk3p4/v2rVLGzZsUKdOnVSoUCEVKlRIbm5uqXKZWbNmzVJ0dLS6devm1D558mQVL15czzzzzF33j4uL06JFi1S2bFlJkpeXl7p06aJff/1V1atXv6/Y7oW7O5NS7kVK3sifsci78ci5a5B31yDvxiPnrkHejZcdc04hfg/y5s2bqgiXpFWrVmnevHn6+++/dfXqVUf7iRMnnArxGjVqON1TXrp0ad24cUMxMTEKCAhQhQoVNHv2bEVGRqphw4aqVKmS3Nwy9qG5du2afv31V7311luOIvx2e/fulbe3t6MIlyQPDw81bdpUa9euzdB5bndroZ9yTT/99NM9HetOdu7cqcjISPXv399p1P7o0aP68ssv9fXXX6d7jAIFCjiKcEkqU6aMJCk6OjpLY80os/nOo/dIH/lzDfJuPHLuGuTdNci78ci5a5B342WnnFOI34P8+fOnatu4caOGDBmil156SW+++aby5s2r8+fPa8CAAUpKSnLqazabnV6nFOUp/fr16yc3NzetXLlSkydPlp+fnzp37qwBAwbIZDLdNbb4+HjZbDYVKFDgrn38/f3TvK64uLi7Hv9OfHx8nF57eHhkeCp9Rvz+++8KDw9X69atNXDgQKdto0ePVosWLVSkSBHFx8dLkmw2m27cuKH4+Hh5e3s7vsi4Pfcp09Fvf4+MEh9/TVarzSXnfpi5u7vJbPYifwYj78Yj565B3l2DvBuPnLsGeTeekTk3m70yNPJOIX4P0iqGo6KiVL58eafFzXbv3n1Px/f09FR4eLjCw8P1999/a/ny5YqMjFTRokXVpk2bu+7r4+MjNze3NBczS+Hr66uYmJhU7RcuXHBaHM3T01M3btxw6nOvhfr9+Pvvv9WrVy9VqVJFI0eOTLX9+PHj+uGHH7R69Wqn9q+//lpff/21vvvuO5UuXdqocDPFarUpOZk/wPeK/LkGeTceOXcN8u4a5N145Nw1yLvxslPOs88k+WzIw8MjwyOliYmJqRb7WrNmzX3HULx4cb311lvKmzevjh07lm7/3LlzKyQkRN9++62sVmuafapVq6bLly/rhx9+cLQlJydr06ZNTougFSpUSH/99ZfTvreuvJ4Z9zpCfu7cOfXo0UOFCxfWpEmT0lxQbcKECVqwYIHTf/nz51eTJk20YMECPfHEE/cUMwAAAAA8CIyI30Xp0qW1fPlyrV27VsWLF1e+fPnu2Ldu3boaMWKEpkyZoipVqmjbtm368ccf7+m8/fv3V8WKFVWhQgV5eXnpP//5j+Li4lS7du0M7T9o0CB169ZN3bp108svvyxfX1/9/vvvypcvn9q3b69GjRopODhYb7/9tgYNGuRYNf3cuXOaNGmS4zjNmzfXhx9+qMmTJzuu6ZdffrmnaypdurSSk5M1f/58ValSRd7e3ipVqtRd90lMTFSvXr0UGxur9977/9q797iasv4P4J+Kmi6KGjKUGcycKFFJiTRTDFPkriJC5DIh4UdM7ibDMC65DIlBpFGMJ9dnXIZxGXNpMB73yqUYD91ON3Wq/fvDq/3YndLRHKfJfN6vl9fLWWudddb+ntPZ+3v22mt/htu3b4t1urq6sLa2BoBKF4DT09ODubk5nJ2dazReIiIiIiKi14WJ+EsMHjwYV65cweLFi5GdnY0BAwZU2dbPzw9paWmIiYlBdHQ0XF1dsXLlSvj4+Lzy6zo4OODIkSPYtm0bSktL0bJlS6xYsQJdunRR6fmOjo7YsWMHVq9ejdmzZ0NbWxsffPABpk6dCuD5vbg3b96M5cuX48svv0RBQQFsbGywdetWySJoQ4YMwf379xEbG4tvvvkGXl5emDZtGqZPn/7K2+Tu7o5hw4Zh8+bNyMjIQKdOnZRu61bR06dPcePGDQDPr5t/UfPmzXHy5MlXHgcREREREVFt0xIEQajtQRC9CbbdyMLjwsovB6jIXF8Ho9s0QlZW/t/mOpW6pF49bTRqZMj4aRjjrnmMee1g3GsH4655jHntYNw1T5MxNzU1VGmxNl4jTkRERERERKRBnJpex5SWluJlkxjq1as7b2lJSUmVdVpaWlXeB52IiIiIiKguqztZGwEARo0a9dLbop04cQIWFhYaHFHN2djYVFnHa8CJiIiIiOhNxUS8jlm4cCHy8/OrrG/SpIkGR/PXxMfHV1mnq6urwZEQERERERFpDhPxOqa6W37VJba2trU9BCIiIiIiIo3jYm1EREREREREGsREnIiIiIiIiEiDmIgTERERERERaRATcSIiIiIiIiIN4mJtRGpi9pbqf06v0paIiIiIiN4szAaI1EAQBPR9r8ErPaesTEBZmfCaRkRERERERH9XTMSJ1EBLSwtyeSFKS8tUfg4TcSIiIiKifyYm4kRqUlpahpIS1RNxIiIiIiL6Z+JibUREREREREQaxESciIiIiIiISIOYiBMRERERERFpEBNxIiIiIiIiIg1iIk5ERERERESkQUzEiYiIiIiIiDSIiTgRERERERGRBjERJyIiIiIiItIgJuJEREREREREGsREnIiIiIiIiEiDmIgTERERERERaRATcSIiIiIiIiINYiJOREREREREpEFMxImIiIiIiIg0iIk4ERERERERkQYxESciIiIiIiLSICbiRERERERERBqkJQiCUNuDIHoTlJaW1fYQ/lF0dLQZ81rAuGseY147GPfawbhrHmNeOxh3zdNUzLW1taClpVVtOybiRERERERERBrEqelEREREREREGsREnIiIiIiIiEiDmIgTERERERERaRATcSIiIiIiIiINYiJOREREREREpEFMxImIiIiIiIg0iIk4ERERERERkQYxESciIiIiIiLSICbiRERERERERBrERJyIiIiIiIhIg5iIExEREREREWkQE3EiIiIiIiIiDWIiTkRERERERKRBTMSJaig5ORmjR4+GnZ0dunbtiuXLl6O4uLi2h1UnHTlyBBMnToSbmxvs7OzQr18/xMfHQxAESbu9e/eiV69esLW1Rd++fXHq1CmlvnJzczFnzhw4OTnB3t4eU6ZMwX//+19NbUqd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IScnB8bGxmjfvj1Gjx4tmerfpk0bfPvtt1izZg1iY2NRVFSEZs2aSVa1/+CDD7Br1y6sXLkSmzZtgiAIaN++Pb788kule4hXxdvbG02aNMHmzZsRHR2N4uJimJubw9HRUaVV7AcNGoTJkyfj0aNHkqnw+vr62LJlCw4cOIADBw4gOjoaeXl5aNCgAdq0aYP58+djwIABYnsXFxd8/vnniIqKQkREBCwsLDBjxgykp6erNREvKyvDsWPHMHjwYC7WRkR/a1qCJlZoISIiojph3759mD17NuLj42Fra1vbw6FaVlpaCi8vL3h6emLq1Km1PZxqHT9+HNOnT8f333+PJk2a1PZwiIiqxGvEiYiIiKhSOjo6CAkJwe7du5Gfn1/bw6lWVFQU/P39mYQT0d8ep6YTERERUZW8vLzg5eVV28NQSVxcXG0PgYhIJTwjTkRERERERKRBvEaciIiIiIiISIN4RpyIiIiIiIhIg5iIExEREREREWkQE3EiIiIiIiIiDWIiTkRERERERKRBTMSJiIiIiIiINIiJOBEREREREZEGMREnIiIiIiIi0iAm4kREREREREQaxESciIiIiIiISIP+H/sd931TonboAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# Extract feature importance based on 'gain'\n", + "importance = best_model.get_booster().get_score(importance_type=\"gain\")\n", + "# Sort features by importance\n", + "sorted_importance = {\n", + " k: v for k, v in sorted(importance.items(), key=lambda item: item[1], reverse=True)\n", + "}\n", + "\n", + "# Plotting top 10 features\n", + "plt.figure(figsize=(10, 6))\n", + "plt.barh(\n", + " list(sorted_importance.keys())[:10], list(sorted_importance.values())[:10], color=\"skyblue\"\n", + ")\n", + "plt.gca().invert_yaxis()\n", + "plt.xlabel(\"Importance Score (Gain)\")\n", + "plt.title(\"Top 10 Features: Validating Behavioral Engineering\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "12e1f1cd-81e7-41b6-bedc-7debbc488be6", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:49:04.587570Z", + "iopub.status.busy": "2026-01-17T19:49:04.587274Z", + "iopub.status.idle": "2026-01-17T19:49:04.601246Z", + "shell.execute_reply": "2026-01-17T19:49:04.600735Z", + "shell.execute_reply.started": "2026-01-17T19:49:04.587544Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Financial Summary for Test Period:\n", + "----------------------------------\n", + "Fraud Loss Prevented (TP Savings): $810,775.56\n", + "False Positive Count: 61\n", + "Estimated Operational Cost (FP): $305.00\n", + "Net Model Business Value: $810,470.56\n" + ] + } + ], + "source": [ + "# 1. Define Business Parameters\n", + "# cost_per_fp: Estimated cost of manual review + customer friction (standard range: $2 - $10)\n", + "cost_per_fp = 5.00\n", + "\n", + "# 2. Identify True Positives and False Positives at the Optimal Threshold\n", + "# Based on the selected optimal threshold of 0.895\n", + "optimal_threshold = 0.8953993320465088\n", + "y_final_pred = (y_pred_proba >= optimal_threshold).astype(int)\n", + "\n", + "# TP indices: Predicted as fraud and actually fraud\n", + "tp_indices = (y_final_pred == 1) & (y_test == 1)\n", + "# FP indices: Predicted as fraud but actually legitimate\n", + "fp_indices = (y_final_pred == 1) & (y_test == 0)\n", + "\n", + "# 3. Aggregate Financial Impact\n", + "# test_df must contain the original 'amt' column before log transformation\n", + "fraud_loss_prevented = test_df.loc[tp_indices, \"amt\"].sum()\n", + "total_fp_count = fp_indices.sum()\n", + "operational_friction_cost = total_fp_count * cost_per_fp\n", + "\n", + "# 4. Net Business Value\n", + "net_savings = fraud_loss_prevented - operational_friction_cost\n", + "\n", + "print(f\"Financial Summary for Test Period:\")\n", + "print(f\"----------------------------------\")\n", + "print(f\"Fraud Loss Prevented (TP Savings): ${fraud_loss_prevented:,.2f}\")\n", + "print(f\"False Positive Count: {total_fp_count}\")\n", + "print(f\"Estimated Operational Cost (FP): ${operational_friction_cost:,.2f}\")\n", + "print(f\"Net Model Business Value: ${net_savings:,.2f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "1c11a761-e5bd-438c-872e-0bf3dd101558", + "metadata": { + "_kg_hide-input": true, + "execution": { + "iopub.execute_input": "2026-01-17T19:49:14.962584Z", + "iopub.status.busy": "2026-01-17T19:49:14.962273Z", + "iopub.status.idle": "2026-01-17T19:49:14.968428Z", + "shell.execute_reply": "2026-01-17T19:49:14.967755Z", + "shell.execute_reply.started": "2026-01-17T19:49:14.962558Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "

Business Impact & ROI

\n", + "

The financial summary translates these technical metrics into a clear business case.

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MetricFinancial ValueBusiness Implication
Fraud Loss Prevented$810,775.56The direct capital saved by blocking transactions correctly identified as fraud.
False Positive Count61Out of ~463,000 transactions, only 61 legitimate users were inconvenienced.
Operational Friction Cost$305.00The low overhead for manual reviews and customer service calls regarding blocked cards.
Net Business Value$810,470.56The total ROI of the model for the test period after accounting for operational costs.
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%%html\n", + "

Business Impact & ROI

\n", + "

The financial summary translates these technical metrics into a clear business case.

\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MetricFinancial ValueBusiness Implication
Fraud Loss Prevented$810,775.56The direct capital saved by blocking transactions correctly identified as fraud.
False Positive Count61Out of ~463,000 transactions, only 61 legitimate users were inconvenienced.
Operational Friction Cost$305.00The low overhead for manual reviews and customer service calls regarding blocked cards.
Net Business Value$810,470.56The total ROI of the model for the test period after accounting for operational costs.
\n" + ] + }, + { + "cell_type": "markdown", + "id": "45509f41-ded1-4539-8537-99ac4481d1db", + "metadata": {}, + "source": [ + "\n", + "### Business Impact & ROI\n", + "\n", + "The financial summary translates these technical metrics into a clear business case.\n", + "\n", + "| Metric | Financial Value | Business Implication |\n", + "|-----------------------------|-----------------|--------------------------------------------------------------------------------------|\n", + "| **Fraud Loss Prevented** | **$810,775.56** | The direct capital saved by blocking transactions correctly identified as fraud. |\n", + "| **False Positive Count** | **61** | Out of ~463,000 transactions, only 61 legitimate users were inconvenienced. |\n", + "| **Operational Friction Cost** | **$305.00** | The low overhead for manual reviews and customer service calls regarding blocked cards.|\n", + "| **Net Business Value** | **$810,470.56** | The total ROI of the model for the test period after accounting for operational costs. |\n" + ] + }, + { + "cell_type": "markdown", + "id": "d3daf293-4cdb-470c-b2ac-23cf918b819c", + "metadata": {}, + "source": [ + "**Conclusion & Business Impact**\n", + "\n", + "**Technical Summary**\n", + "Implemented an industry-standard fraud detection pipeline using the Sparkov simulated dataset (Jan 2019 – Dec 2020). The project transitioned from a baseline model with significant data leakage to a production-ready system utilizing temporal validation and behavioral feature engineering.\n", + "\n", + "**Key Technical Implementations**\n", + "\n", + "* **Temporal Validation**: Replaced standard random train-test splits with a time-series split (75% train / 25% test). This eliminated \"look-ahead bias,\" ensuring the model only learned from historical data to predict future transactions.\n", + "* **Behavioral Feature Engineering**: Developed 14 high-signal features, including:\n", + "* **Velocity Metrics**: 24-hour rolling transaction counts and spending averages to detect automated \"burst\" fraud.\n", + "* **Geospatial Analysis**: Haversine distance calculations between cardholder residence and merchant location.\n", + "* **Cyclical Encoding**: Sine/Cosine transformations of time and day to capture periodic fraud patterns (e.g., late-night surges).\n", + "* **Risk Profiling**: Weight of Evidence (WoE) encoding for high-cardinality features like `job` and `category`.\n", + "\n", + "\n", + "\n", + "**Model Optimization & Imbalance Management**\n", + "Used cost-sensitive XGBoost with `scale_pos_weight` to address the 0.5% fraud class imbalance. Hyperparameters were tuned via `TimeSeriesSplit` cross-validation, prioritizing Area Under the Precision-Recall Curve (PR-AUC) over ROC-AUC to accurately reflect operational performance in a high-skew environment.\n", + "\n", + "**Performance & Business Results**\n", + "\n", + "* **Final Precision**: 0.97\n", + "* **Final Recall**: 0.80\n", + "* **Optimal Threshold**: 0.895\n", + "* **PR-AUC**: 0.9980\n", + "\n", + "**Operational Impact**\n", + "The finalized model achieved a 32% increase in precision compared to the baseline (0.65 to 0.97). By optimizing the classification threshold to 0.895, the system captures 80% of fraudulent activity while maintaining an exceptionally low false positive rate. In a production environment, this translates to a drastic reduction in customer friction (unnecessary card blocks) and lower operational costs for manual transaction review, without significant compromise to fraud detection coverage." + ] + }, + { + "cell_type": "markdown", + "id": "8796ff59-9de4-47e7-80f4-16961ccf7324", + "metadata": {}, + "source": [ + "**Precision-Recall Trade-off**\n", + "\n", + "**Performance Shift**\n", + "\n", + "* **Baseline Model**: Precision 0.65 | Recall 0.84\n", + "* **Optimized Model**: Precision 0.97 | Recall 0.80\n", + "\n", + "**Strategic Rationalization**\n", + "The optimization prioritized Precision to mitigate operational costs and customer friction. In the baseline model, 35% of fraud alerts were false positives. The optimized model reduced false positives to 3%, ensuring that 97% of automated card blocks are legitimate fraud cases.\n", + "\n", + "**Business Impact**\n", + "The 4% reduction in Recall (fraud detection coverage) is offset by a 32% gain in Precision (alert accuracy). This configuration minimizes the volume of manual reviews required by security analysts and prevents the unnecessary freezing of legitimate customer accounts, which is the primary driver of churn in retail banking.\n", + "\n", + "**Threshold Selection**\n", + "The classification threshold was moved from 0.50 to 0.895. This specific operating point on the Precision-Recall curve represents the maximum attainable Precision before Recall degrades below the 80% institutional requirement." + ] + }, + { + "cell_type": "markdown", + "id": "d90dbd36-49c7-409c-9f4d-b468a957c45b", + "metadata": {}, + "source": [ + "# Pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "e3bb660e-6c6c-4220-8d2e-cf362ef425e4", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:50:42.358854Z", + "iopub.status.busy": "2026-01-17T19:50:42.358182Z", + "iopub.status.idle": "2026-01-17T19:51:18.337920Z", + "shell.execute_reply": "2026-01-17T19:51:18.337288Z", + "shell.execute_reply.started": "2026-01-17T19:50:42.358821Z" + } + }, + "outputs": [], + "source": [ + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import RobustScaler\n", + "from category_encoders import WOEEncoder\n", + "from xgboost import XGBClassifier\n", + "import joblib\n", + "\n", + "# 1. Define the complete feature list as used in the successful training\n", + "# Ensure these match exactly the names in your train_df and test_df\n", + "categorical_features = [\"job\", \"category\"]\n", + "numeric_features = [\n", + " \"amt_log\",\n", + " \"age\",\n", + " \"gender_bin\",\n", + " \"distance_km\",\n", + " \"hours_diff_bet_trans_log\",\n", + " \"hour_sin\",\n", + " \"hour_cos\",\n", + " \"day_sin\",\n", + " \"day_cos\",\n", + " \"trans_count_24h\",\n", + " \"amt_to_avg_ratio_24h\",\n", + " \"amt_relative_to_all_time\",\n", + "]\n", + "\n", + "# 2. Re-define X_train and X_test to include ALL required columns\n", + "# This step ensures 'job' and 'category' are present for the WOEEncoder\n", + "features = categorical_features + numeric_features\n", + "X_train = train_df[features]\n", + "y_train = train_df[\"is_fraud\"]\n", + "X_test = test_df[features]\n", + "y_test = test_df[\"is_fraud\"]\n", + "\n", + "# 3. Define Preprocessing Transformer\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " (\"cat\", WOEEncoder(), categorical_features),\n", + " (\"num\", RobustScaler(), numeric_features),\n", + " ]\n", + ")\n", + "\n", + "# 4. Create the Integrated Pipeline\n", + "# Note: Ensure imbalance_ratio is calculated from the current y_train\n", + "imbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum()\n", + "\n", + "pipeline = Pipeline(\n", + " steps=[\n", + " (\"preprocessor\", preprocessor),\n", + " (\n", + " \"classifier\",\n", + " XGBClassifier(\n", + " colsample_bytree=0.8,\n", + " learning_rate=0.1,\n", + " max_depth=8,\n", + " n_estimators=500,\n", + " subsample=0.8,\n", + " scale_pos_weight=imbalance_ratio,\n", + " tree_method=\"hist\",\n", + " random_state=42,\n", + " ),\n", + " ),\n", + " ]\n", + ")\n", + "\n", + "# 5. Fit the Pipeline\n", + "# This will now find the 'job' column successfully\n", + "pipeline.fit(X_train, y_train)\n", + "\n", + "# 6. Serialization and Inference\n", + "joblib.dump(pipeline, \"fraud_detection_model_v1.pkl\")\n", + "y_proba = pipeline.predict_proba(X_test)[:, 1]\n", + "y_pred = (y_proba >= 0.9016).astype(int) # Using optimized threshold" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "ff3c6a68-4688-49c9-83d8-ffb6e66b56b3", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:53:13.591475Z", + "iopub.status.busy": "2026-01-17T19:53:13.590550Z", + "iopub.status.idle": "2026-01-17T19:53:20.610031Z", + "shell.execute_reply": "2026-01-17T19:53:20.609204Z", + "shell.execute_reply.started": "2026-01-17T19:53:13.591444Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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mrQs7Nix46DzIAgCWF4nkUsHtPg4o097jD7tY7/kpBI8vTPBe8egfbUWdX0B0WFd0E/vigMYX/cDHTAti4feCyLPWkeHyko29u5IamU1lamx1kqbZZEXiRKQJTa5XUiWCTQdQ2cLRAil2KFRJcdla5fz6MefMvWi0Xw0uD/fda+g75YyHvz6U5KtarSASX1Nfm64jGfef5Oy93OQMYiSODW22qirj97M9etD/1pceAkAsYHDGhEi2AiiYXVIxTY8B62tF2lERzi1LUkVIaIfbcGKGtjGdkHOaVrzKwHKxU17C8TJEoxo2soqCIfCibR42dVXX83VV19NWVkZX3zxBZ9//jmPP/44jz/+OP3792f06NFcdNFFzU6Bf6AO6wiXs88+G0mSmDFjRkJXkLKyMmbNmkVubm580ITb7SY9PZ0lS5Yk1PDu3r073mf7QO3Zbx6Iz/5SXV19wOepn8Z03rx5CQW2aDTKm2++2aI8HS5vvvkm0UZLaBYXF/Pll1/SoUOHeKFz1KhR2Gw2pk2bRijUdHYNn89HJNIwmbXT6Ww2ODtQLpeLmpqaFrcY1df6m40W/qlfxrs1qqurE84J4PV6adu2LaFQiHA43KrzjxgxAoBXX3014Z43b97Md999x4ABA+KzN5199tkATf5+5s+ff0x1HRKEk54sE72oH8HfXIh+etN+vACyJPHoeBd/enUwN354PmdflErXbbuxhxI/U370esi32wirWpNzWICkwY0L13Dhuu0M3VbIpO9Xcc83C/jjmEuZduZwipOSWNS1I69cMJgnLz6T75IGsMbRlaAkoVKDgp9MSunBamxS09mEjEaBwC7aNOnnX00yATRKSaOENGpwU4mXIHaiuWk4XroE55IbUJ68COm+M+HUWCWHnObAflMfHLf2bzYgEATh0MvIyODaa6/ljTfeYO7cudx///1IksSjjz7Keeed16pzH9aWgvp54KdPn86kSZMYNWpUfErSQCDA1KlTE2YemjBhAs899xx33XUXI0aMoKysjPfff58uXbqwbt26fVwp0ZQpU/B6vQwcOJDs7Gxqa2uZNWsWkiS1eEad3/zmN9x6663cfPPNjB8/Pj4l6b66NB1JhmFwyy23cOGFFxIIBHj//fcJh8P89re/jafJzs7mf//3f3nkkUcYP348o0ePJjc3l8rKSjZv3szcuXOZOXNm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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import shap\n", + "import pandas as pd\n", + "\n", + "# 1. Get the model and preprocessor\n", + "model = pipeline.named_steps[\"classifier\"]\n", + "preprocessor = pipeline.named_steps[\"preprocessor\"]\n", + "\n", + "# 2. Initialize Explainer\n", + "explainer = shap.TreeExplainer(model)\n", + "\n", + "# 3. Transform Data (Crucial Step)\n", + "# Resolves \"You have categorical data...\" error by converting strings to numbers first\n", + "X_test_transformed = preprocessor.transform(X_test)\n", + "\n", + "# 4. Calculate SHAP Values\n", + "# We sample 1000 rows for performance efficiency\n", + "sample_size = 1000\n", + "X_sample = X_test_transformed[:sample_size]\n", + "shap_values = explainer.shap_values(X_sample)\n", + "\n", + "# 5. Visualisation\n", + "# Re-map feature names so the plot is readable (not just Feature 0, Feature 1...)\n", + "feature_names = categorical_features + numeric_features\n", + "\n", + "shap.summary_plot(shap_values, X_sample, feature_names=feature_names)" + ] + }, + { + "cell_type": "markdown", + "id": "5d06f9d4-a10c-49c0-97f8-7bf90c0cac66", + "metadata": {}, + "source": [ + "### **Executive Summary**\n", + "\n", + "The model is **behaviorally driven**, not just rule-based. The dominance of transaction amount (`amt_log`) and spending deviations (`amt_to_avg_ratio_24h`) confirms that the model is successfully catching **\"burst\" fraud**β€”where fraudsters try to extract maximum value quicklyβ€”rather than just relying on static user demographics.\n", + "\n", + "---\n", + "\n", + "### **Top Feature Interpretations**\n", + "\n", + "#### **1. `amt_log` (Transaction Amount)**\n", + "\n", + "* **Importance:** This is the #1 predictor of fraud.\n", + "* **Interpretation:**\n", + "* **Red Dots (High Value):** Are clustered heavily on the **right side** (positive SHAP value). This means **high transaction amounts strongly push the model to predict \"Fraud.\"**\n", + "* **Blue Dots (Low Value):** Are clustered on the **left side**. Small transactions decrease the risk score.\n", + "\n", + "\n", + "* **Business Logic:** Fraudsters aim to maximize theft before the card is blocked. The model has correctly learned that high-value transactions are inherently riskier.\n", + "\n", + "#### **2. `category` (Merchant Category)**\n", + "\n", + "* **Importance:** 2nd most important feature.\n", + "* **Interpretation:**\n", + "* **Red Dots (High Risk Categories):** Since you used Weight of Evidence (WoE) encoding, a \"high value\" (Red) corresponds to categories with historically high fraud rates (e.g., online shopping, electronics). These dots push the prediction to the right (Fraud).\n", + "* **Blue Dots (Safe Categories):** Categories with low fraud rates (e.g., fuel, groceries) push the prediction to the left (Legitimate).\n", + "\n", + "\n", + "* **Validation:** This proves your `WOEEncoder` worked correctly by successfully mapping risky merchant types to higher numerical values.\n", + "\n", + "#### **3. `amt_to_avg_ratio_24h` (Spending Anomaly)**\n", + "\n", + "* **Importance:** 3rd most important feature.\n", + "* **Interpretation:**\n", + "* **Red Dots (High Ratio):** When a transaction is significantly larger than the user's 24-hour average (red dots), the SHAP value is positive.\n", + "* **Meaning:** This validates your feature engineering. The model is flagging **anomalous spikes** in spending. If a user usually spends $50 but suddenly spends $500, this feature lights up red and signals fraud.\n", + "\n", + "\n", + "\n", + "#### **4. `hour_cos` / `hour_sin` (Time of Day)**\n", + "\n", + "* **Importance:** 4th & 6th features.\n", + "* **Interpretation:** The mixture of red and blue clusters shows that fraud has a specific temporal pattern.\n", + "* **Context:** Fraud often occurs during \"unsociable hours\" (e.g., 2 AM - 5 AM). These features capture those cyclic high-risk time windows.\n", + "\n", + "---\n", + "\n", + "### **Nuanced Observations**\n", + "\n", + "* **`distance_km` (10th place):** Surprisingly, geospatial distance is less impactful than spending behavior. This suggests that in this dataset, fraudsters are likely using stolen card details online (Card Not Present) or locally, rather than physically traveling long distances.\n", + "* **`gender_bin` (Low Importance):** Demographic features like gender are near the bottom. This is **excellent** for fairness. It shows the model judges the *transaction behavior*, not the *person*, which is crucial for regulatory compliance (avoiding bias).\n", + "\n", + "### **Conclusion for Stakeholders**\n", + "\n", + "\"The SHAP analysis confirms our model is robust and logically sound. It prioritizes **high-value transactions** and **spending anomalies** (sudden spikes against a user's history) as the primary indicators of fraud. It has also successfully learned to identify high-risk merchant categories automatically.\"" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "e9b09c2b-6544-42b8-9013-7ac889d728b2", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T19:58:45.107491Z", + "iopub.status.busy": "2026-01-17T19:58:45.107151Z", + "iopub.status.idle": "2026-01-17T19:58:52.384519Z", + "shell.execute_reply": "2026-01-17T19:58:52.383817Z", + "shell.execute_reply.started": "2026-01-17T19:58:45.107465Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9MAAAJfCAYAAAB8CIVSAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdcVFfeP/DPnRmYoQ8gIKKCCFLFhj3W2GKP3XSNMTG7Kc8mmx7zZLPZJP42edI2iSnGJGZNYo0m9thFsAtYKIoURXovM8zc+/uDMDLOADNI5/N+vXwp55577rnHGWa+9zRBkiQJRERERERERGQxWWtXgIiIiIiIiKi9YTBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNREREREREZCUG00RERERERERWYjBNRNRGiaKIzz77DBMmTEBYWBgmTJiAr776ClOmTIEoilaXt379eowdOxZarbYZaktERETUuQiSJEmtXQkiIjK1bt06/POf/8SSJUsQFBQEJycnvPLKK3jhhRcwd+5cq8vTaDQYP348Hn/8cTz00EPNUOOmU1VVhfPnzyM7Oxs5OTnQaDQYM2YMgoKCGpWvPkVFRTh58iSysrJQWVkJR0dHBAQEoF+/flAoFACAgwcPIjExsc4y7r//fjg4OAAAsrOzkZiYiMzMTJSUlECpVMLLywuRkZFQq9XWNwYRERG1SYrWrgAREZm3efNmjBw5Ei+++CIAYO3atdDpdJg+fXqjylMqlZg9ezbWrl2LBx98EIIgNGV1m1RlZSXOnDkDR0dHuLm5ITMz847y1aW0tBRbtmyBra0twsLCoFQqkZWVhdOnTyM3NxeTJ08GAISEhMDHx8foXEmScPToUTg5ORkCaQA4f/48bt68CX9/f7i7u6O8vBwXLlzA5s2bMXv2bLi5uVnZGkRERNQWMZgmImqDNBoNLl++jKeeesqQtnnzZowfPx5KpbLR5d5zzz34+uuvER0djeHDhzdFVZuFvb09HnjgAdjb2yMnJwdbtmy5o3x1SUpKglarxcyZMw1BbkhICCRJQlJSEjQajaFn2cvLy+jcmzdvQqfTISAgwCi9b9++GD9+PORyuSGtd+/e2LhxI86dO4fx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9a8z3CaLqDPiAmRERERERBawsTEd0v1AoA5yfqMm6pT41iciIiIiskDtId413FTAAn895AJ3myXqbBhMExERERFZIC0t2Wz6Y6HcJouoM2IwTURERER0B0JdJQz30kPG3mmiToXBNBERERGRBdRq9zqPPR6qg8je6RbhoRJhwyiG2gCu5k1EREREZAFX1y51HpvcXcSRWZV3fA25XAYXZzsUFVdArxfvuLyOqCI7CUp5QGtXg4jBNBERERHRnZLLgCD1nQ/zVigkuLoKKJBL0Ok4bNyclAJ9a1eBCACHeRMRERERUTvi4dGttatABIDBNBERERERtSMaTUVrV4EIAINpIiIiIiJqR4qLC1q7CkQAGEwTERERERERWY3BNBERERERtRt+fn1auwpEABhMExERERFRO5KRkdLaVSACwK2xiIiIiIioHdHpquo8ti9DhuWHbGHNpmL3Berw9hDdnVeMOh32TBMRERERUbthb+9Y57HPLypQrgPKdILFf3antmDlqUNhzzQREREREbUbarW72fTEQgFHMuVWl6cXxTutEnVS7JkmIiIiIqJ248YN813JX19SQC5YM8C7mlzGkIgah68cIiIiIiJq14o0wPpkOfSSYP3JQiPOIQKDaSIiIiIiake6dOlqkrYuUQ5tI0dr6/X6O6wRdVYMpomIiIiIqN24fTVvvSjhiwtyq1bwJmoKDKaJiIiIiKjdKCzMM/r5t6sSrpcJABo3XFuh4JrM1DgMpomIiIiIqN36v1NioxYeqyFymDc1Eh/DEBERERFRu+HrG2D498V8AYcygMb2SgOAKHGAODUOe6aJiIiIiKjduHEjzfDvLy/KobjDxbi5ljc1FoNpIiIiIiJqN6qqtACAAg3wU5IMujvsWFbY2DRBragz4jBvIiIiIiJCkRb4xykb7EiTo0IPDOgi4s3IKkS4NxytPnXUBj9fMQ0tApxFRN2rMfycVCTgv0lyHLwhx7USAQ42QISbiBf6V6F/F8uiYpXKHgCwLkmBqkZuh1VbVVVVw5mIzGAwTUT1mjFjBm7evImTJ0+2dlUaZdmyZThy5AhOnToFJyen1q4OERFRmyRKwH37bHGhQIa/hOngppKw9rICs3crsW+6Bv7ODQe6SpmED0YYB6bOtsbnrUuU47/JCkz31WNJsIhirYDvE+W4Z4cSP03QYky3hqNjd3dP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OERFRcHGxgb+/v4YOnSoRYFaz549UVZWhqtXr6KiogKSJMHBwQH+/v6IiIgwCSZkMhnuuecenDlzBleuXMHVq1ehUqkQEhKCwYMHm1wzJCQEKpUK58+fx6lTpyAIAjw9PTF+/Pg72tv2TqxevRqvvPIKzpw5g+joaLi7u+OBBx6AWq3GqlWrmuWa7777Ll588UVs2bLFMK98wYIFFgfTb775JgoLC7Fv3z7DytgDBgyAm5sbnnrqKXh6emLNmjXYuHEjAMDb2xsvv/yy0b7JlpDL5fj222/x6quv4ujRo9i/fz+8vLzwt7/9DdeuXcNPP/1k9rwHHngAO3fuhFarxZQpU8zm+eSTT/Dmm29i165d+O6779ClSxesWLECycnJuH79eqPn95sTEBCADz/8EP/+97+xdetWCIKAXr164bPPPsO7775rskBcfe1rzr333gsnJyd8/PHH2L59O/R6PTw8PPD444/j2Weftbq+NUPGk5OT8f7775scnz59utFIECIiIqLHQ3U4nqW843JkAvdbpsZp1/tME3UECxYswIULFxAdHW2yBRS1fTk5JS12LYVCBldXBxQUlBlW4FQqFXB2tkNxcQVX876NufaiurG9rMP2sg7by3Jsq4YVFuZDrXaDXgQGbVLhRvmd9Uz7qDQ4u7B127qlPs876+vLw6N5vmPzMQxRCzE3Z/zcuXOIjY1F7969GUgTERERWaBmfRe5DHgiXN9EG2QRWa/dD/Om9isnJwcVFRX15rGzszMsKnYn8vPzG1wAzdbWtlmH3n///ffYvHkzhg0bhi5duiAlJQV//PEH5HK5YWh0WVkZ8vLyGiyre/fuhsXk2qqioiKz+5jXJpPJmnwfdSIiIurY8vOz4eLiCgB4oI8e/zpdvWBaYynkCgDaBvMR3Y7BNLWapUuXIjExsd48kZGR+PHHH+/4Wi+88AKOHDlSbx5fX1/s2bPnjq9Vl/79+2P37t3YsWMHKioqYGtri8DAQDz11FMYP348AODnn3/Ge++912BZp06davM92R988EGdc8xrODs74+TJky1UIyIiIupo1Erg4XABX8eKjd4mS5Q6z3BnaloMpqnVvPLKK8jOzq43j7e3d5Nc669//WuD2zXV3je8OYwYMQK//vprvXkmTZrU4PZmgGX7k7e2+++/HwMHDqw3j1J554uGEBERUefSvXsvo5+fHiDD6vONXwZKFBlMU+MwmKZWM3z48Ba7Vv/+/dG/f/8Wu15jde/evcMMe+7Tpw/69OnT2tUgIiKiDiY3Nwve3j0MP4d2ETDKW0TUTaFRvdOcc02N1bYnXRIREREREdVSWVlukvZkuL7Rw7wVFm7VSnQ7BtNERERERNRu2NiYThOb2ENEdwcRgPXDvXVVVU1QK+qMGEwTEREREVG7UXuIdw2ZADweqmvUkO3Gz7amzo7BNBERERERtRtpaclm0xcH6KGUW19eW99ulNouvnKIiIiIiKjdc7YF7gvQQyZIUFj4RwYJcgbT1EhczZuIiIiIiNoNtbrubUSXh+qgs3Lc9hDlNQA+d1Qn6pwYTBMRERERUbvh6tqlzmP+zhL+Pdy6BcVSUkrvtErUSXFMAxERERERdVoeHt1auwrUTjGYJiIiIiKiTkujqWjtKlA7xWCaiIiIiIg6reLigtauArVTDKaJiIiIiIiIrMRgmoiIiIiIOi0/vz6tXQVqpxhMExERERFRp5WRkdLaVaB2iltjERERERFRp6XT1b2V1qkcAfsy5BaVc7ePiMGeYlNVi9oBBtNERERERNRp2ds71nnszVM2OJktg7yB8bx6EfgpWcK5+Zomrh21ZQymiYiIiIio01Kr3c2mx+cLiMmu7pUWLehw1uh0TVktagc4Z5qIiIiIiDqtGzdSzaZ/fUkBuSC1cG2oPWEwTUREREREVEteJbDhqhx6SbD4HJlgeV7qGBhMExERERFRp9WlS1eTtHVJCuitXUuMwXSnw2CaiIiIiIg6rdtX864Sga8uKSDCuuBYtGRiNXUoDKaJiIiIiKjTKizMM/p5R5oc2RXsZaaGMZgmIiIiIiL60xcX5JA1YuExucyy/aip4+DWWERERERE1Gn5+gYY/n0+T8Dp3MYFxRzm3fmwZ5qIiIiIiDqtGzfSDP/+8mLjt8OSwG20OhsG00RERERE1GlVVWkBANkVwJYU67bDqo2zrDsfDvMmIiIiIqImV6QF/nHKBjvS5KjQAwO6iHgzsgoR7tb14FaJwLhtSiQWyfDGoCr8JVxndDyzVMJLRxU4eF1AdoUALzsJU3qK+J++VXBTNVy+SmUPAPghUYE7GagtkysA6BrMRx0Hg2kiIiIiImpSogTct88WFwpk+EuYDm4qCWsvKzB7txL7pmvg72x5QP31JQUyysz3+5ZWAaM26FGqleGRIB187CVcKJBhzWU5jt2UYd90DWQNdBm7u3tCq6++jtjIXmkA0OsZSHc2DKaJmkliYiLi4uJQWFgIW1tb9OzZE0OGDIGdnV2D55aVlSExMREZGRkoLCxEVVUVnJyc0KNHD/Tv3x8qlelj1uvXr+PcuXPIzs6GKIpwdXVFeHg4+vTpc8dlExEREVlje6ocJ3Pk+GaMBjP8qvt7Z/npMXyLCqvOKfDF6KoGSqiWUwG8f16Bp8J1eO+cjcnxXWkypBYDP03UYXy3mmBWD7VSwvvnbXAhX0DfBnrCr1+/hjNSKPI0HKhN1uGcaaJmEBsbi4MHD8LW1hYjRoxASEgIrly5gt9++w1VVQ1/eKSmpuL06dNQKpXo168fhg8fDi8vL8TFxWHTpk0oLy83yp+cnIzff/8dxcXFGDBgAIYOHQobGxscPHgQZ8+evaOyiYiIiKy1/ZoMHioJ03xvDZzuogJm+umxK10Ojd6ycv55xgYBLhLm+Zs/oaR6ujM87IwDZq8/f1ZZ2HX4xUUFZHe4gJhMYDDe2bBnmqiJVVZW4tSpU/Dw8MC0adMgk1U/s/Lw8MDu3bsRHx+PAQMG1FtG165dcd9998He3t6QFhISAk9PTxw+fBixsbEYNmwYgOptGKKiomBnZ4c5c+ZAqVQCAMLCwrBr1y6cPn0avXv3hrOzs9VlExERETVGXL4MEe6iyRDrgV1E/JCowJViAaGu9QevZ3IE/HxFju1TtKgrTh3eVYJMAF6OVuB/I0V0s5dwsUCGD2MVuKeHHoEuDQfI6YIPzuc1QR8jg+lOhz3TRE3s2rVr0Ol0CAsLMwTSAODr6wsnJyckJSU1WIabm5tRsFvD398fAJCfn29Iy8/PR2VlJfz8/AyBNAAIgoDAwECIoojk5ORGld2Srly5gr/85S8YPXo0+vbti7CwMIwdOxZvv/02KisrTfJfuHABc+bMQXh4OPr164fFixfj4sWLCAoKwpw5c0zyb9y4EVOnTjWUPX78eHzyyScWjRQgIiIi62T9uRDY7WrSbpbXH3hKEvDKCVvM9tNjsGfdy4IFu0r4cpIMCYUCpu5Qof9GO9z3hxKjvEV8M1ZrUV2/TXZo9HZYtXGf6c6HPdNETSw7OxsA4OXlZXLMy8sLycnJqKqqgo2N6byfhpSVlQGA0bxrvb562JNCYfp2rknLyspqVNn10Wq1Fn9oKBQKs/WrLTo6GufOncOgQYPQs2dPVFVV4dChQ/j++++RmZmJjz76CHK5HED1A4v77rsPer0eY8eOha+vL06cOIEVK1aYLfvtt9/G999/j4CAACxYsAAqlQpHjhzBp59+ioyMDLzzzjtGDz6IiIjoFlECtBbGiUpZdQdtpR6wlZs5/mdaZQPDvH9KluNSgYBvxja8qJePIzDQQ8Ld3arQ3VFCdJYMX19SwE0p4c3B9Z9/sxzYed0OIje2okZgME3UxGrmHDs4OJgcq+kRLisrg1qttrrs06dPA4DRomJqtRqCIODGjRuQJAlCrSFGN27cMFyvMWXXZ/fu3cjMzLQo78CBAxEZGVlvntmzZ2PhwoVGQfeLL76I+fPn49ChQ0hOTkZQUBAAGHqrX3zxRSxdutSQf/ny5bh586ZRuRcuXMD333+PUaNG4bPPPoOtrS0A4O9//zseeeQR7NixA4sWLWpw6H1dFAoZ5PKWCcRlf46Vs7GRG66pUNT+m7/SazPXXlQ3tpd12F7WYXtZri221ZEbAqb/ZtlnzMkFVeijBuzkgA4yKJXG54l/3p+TSg6l0vz9FWuBt88q8HQ/Ef5u1dG37Z+dzAqFcZkxWQKmbxOx/14R/bsIAATcGwi42ol497QCj4QBwa511/eXC3c6U/oWuVyOWoMErdJSn+dt8fXVnvGbF5EZGo0GcXFxFucPDw83rIKt01U/Aa3pRa2tJlCsyWON2NhYXL16FcHBwfDx8TGkK5VKBAUF4fLlyzh48CAiIiKgUCiQkpKCy5cvW3S9usquz7Bhw6DRaCzKWzNfuz61Hz5UVFSguLgYoihi9OjRiI+Px/nz5xEUFAS9Xo+YmBh07doV9957r1EZf/3rX3Ho0CGjtA0bNgAAZs2ahby8PKNjkydPxvHjx3H06NFGB9Nqtb3RA4yW4OhouuK6vX0jP707AXPtRXVje1mH7WUdtpfl2lJbDZJL+HaKZSFnoJcKzkoB3o465GllcHa2NTpeJIkARAR6KuHsbP7z899H9aiSJDwUYYt8qeY8ANCjAgrkSzJ0cwRs5QJ+OKqHl4OE0f7G7TU/VMI7p/WILVJiiG/dQePQHiKkU00zPFsuM71fa7XU53lben21ZwymiczQarU4c+aMxfkDAwMNwXRNwKzX602GNtcEtQ0Neb7d5cuXER0djZ49e+Kuu+4yOT5ixAgAQEJCgmFOtkqlwujRo7F///56h5Q3VHZdPDw8rLqHhpSVleGf//wn/vjjDxQVFZkcLywsBFA9p1uj0cDNzQ0uLi5GeXr16mVyXk17PP/883Ve+/Yg2xqFheUt2jPt6KhCaWklRLH624VCIYO9vRLl5RrodJyrVZu59qK6sb2sw/ayDtvLcm2xrewBzOlpYWYNUKwBwlzlOH5TQGGR1mgRsiOpctgrBHRVVKK42HwRV/LlKKiUIWyt6Vjwf8VI+FeMHkfmVCGiC3CjWA69KDNpr8ISAYACJeVVKC6u+/Pxri6Aj72A6+Vy4A6Heut0OhQXN24tlpb6PG+Lr6+W4Oxs2TRGazGYJjLDyckJy5cvb9S5tYdy3x7s1TcEvC6XL1/G4cOH0b17d0ycONHs3F6FQoHRo0dj6NChKCgogEwmg7u7O4r//JSqa0i5JWXXpbKy0uI50zY2Ng3OEV+xYgViYmIwdOhQjBgxAh4eHlAoFIiJicGmTZsgSY37hV9z3vPPPw9PT0+zeSwd2m6OTie2WBBbMwSsqkpf65o1ox1EaDTWj3joyMy3F9WF7WUdtpd12F6W6yhtNa2HhF9TbLE5UTTsM51XCWy9qsCk7npAp0PNx1ZKcXUQ28u5+jN7aR89JvkYB7a5lQKeP26LRb11mNJTD2+lCI0G8HeW4Y8M4ECaiGEet4LvnxOqv3eEOFdBo6n/O8QC7zx8eMXnjod7i5J0B5/FLfN53lFeX20Fg2miJubp6YnLly8jKyvLJJjOysqCWq22ePGxmmDXx8cHkyZNMjt0vDalUomuXbsafk5LSwMA9Oxp+jjZ2rJvt3fv3iabM11cXIwTJ04gLCwMa9asMeq5j4+PN8rr5uYGpVKJ/Px8FBUVwdX11kSolJQUk7J79eqF06dPw93dHbNmzbKovkRERHRnZvjqMchDxNPHbJFQpIObUsLaBAX0EvBCf+Ngcd6e6qHRp+dVTx+LcJcQ4W4c2qaVVgfXQWoJU3veCgKXhejx3yQ57ttrg0eDBXR3kHA8S4bNKQqM8dZjkEfDIfKcHhX4/FrDi6I1RC5XAOCD7c6EwTRRE/P19YVcLseFCxcQEBBg6O1NTU1FSUmJSVBZWloKnU4HZ2dno57hhIQEHDlyBD4+Ppg8ebLVQ8OLi4tx/vx5uLi4GLa9aqqygaadM137vmv3QGdlZWHTpk1GeeVyOYYMGYIjR45gy5YtRguQffrppyZlL1y4EBs3bsSaNWswbtw4o+AbqF593dnZ2TBMn4iIiO6cXAasv1uDN0/b4OtLClTqgf7uIj4eqUWABXs/WypQLeH0g3K8sF+LjVflyK4Q0NVOwpNhVSZBe116+3jhvgA9vkuUQy81fqi3Xs9AurNhME3UxOzs7DB48GBER0fj999/R0BAAMrKyhAbGwu1Wo2+ffsa5T9w4AAyMzOxePFiODk5Aaje+unw4cOwsbGBv7+/SY+rjY0N/Pz8DD9fvHgRaWlp6Nq1K1QqFQoLC3H58mXIZDJMmDDBqNfZ2rLr0pRzph0dHTFgwACcOXMGS5cuxaBBg5CdnY1du3bB1dXVZDXyl19+GSdOnMAHH3yAM2fOwM/PDzExMYZtyWqLiIjAo48+im+++QbTp0/HXXfdhW7duiEvLw8JCQmIjY3F1q1bDSuFExERUdNQK4H/G1GF/xtR/zzimh7p+vR0lJD9cIXZY0FuAtberWv0sOX09Kt4LCQYaxIYGpF1+IohagYRERFQKpWIi4tDVFSUIXAdOnSoRUO8c3NzIUkStFotjhw5YnLc0dHRKOB1dXXFlStXEBsbC61WC3t7ewQEBGDAgAEm87OtLbul/Oc//8Hrr7+OmJgYnD59Gm5ubpgzZw4CAwOxcuVKo7y9e/fGjz/+iJUrV+LAgQNQKBQICQnB+++/j/vvv9+kjV944QX07dsXX331FXbt2oWqqirY29vD29sbDz30kMUrmBMREVHH1NtFwthuehzJlDW6d7qld/eg1idIjV3Vh4iojYmPj8fcuXMxYcIE/Oc//2mRa+bklLTIdYDqRUNcXR1QUFBmePquVCrg7GyH4uIKLkB2G3PtRXVje1mH7WUdtpfl2FbWaYr2KizMh1rthv3XZVi0r/FbU3mo9LiwUNuoc1vq87yzvr48PJyapVzu1E1E7VJpaanRz5Ik4eOPPwZwa6swIiIioobU9CiP7SbCz0mE0Mh1vS3d5YQ6Dg7zJqJ2adq0afD390dwcDB0Oh2OHz+OpKQkhISEcNVuIiIislh+fjZcXFwhE4DHQ3V4JcayXVeIGEwTUbs0evRoHDx4ECdPnoQoilCr1ZgxYwZefvllODo6tnb1iIiIqB1a2FuPt07boLwRI61r705CnQODaSJql956663WrgIRERF1AN279zL829EGeDBQj68vW79NFpei6nz4+ISIiIiIiDqt3Nwso5+XBusgNiIuZjDd+TCYJiIiIiKiTquystzo517OEu72ESEXGBxT/RhMExERERFRp2VjY7od1uOhOquHecvlnEHb2TCYJiIiIiKiTsvbu4dJ2mhvEb2drdsmS69vvv2hqW1iME1ERERERJ1WWlqySZogAE+E6hq54zR1FgymiYiIiIiIbjPPXw9HK0ZuC4J1w8Kp/WMwTUREREREnZZa7W423cEGeDjI8qHbkV30TVUlaic4S56IiIiIiDotV9cudR57fZAOLw+wLKBOT00AENREtaL2gME0ERERERGRGTIBsJVbnpc6Fw7zJiIiIiIiukMeHt1auwrUwhhMExERERER3SGNpqK1q0AtjME0ERERERHRHSouLmjtKlALYzBNREREREREZCUG00RERERERHfIz69Pa1eBWhhX8yYiIiIios6rTAOhQtNwPqUNJCe7Og9nZKSgRw//JqwYtXUMpomIiIiIqFMS8krgNvIlyPJLG8yr93ZF/un3AYX5vbJ0uqqmrh61cRzmTUREREREnZIst9iiQBoA5JkFsN11ts7j9vaOTVUtaicYTBMRERERETVAkgmwX72rzuNqtXsL1obaAgbTREREREREDRBECTYxSZDHpZo9fuOG+XTquBhMExERERERWUCSy2D39d7Wrga1EQymiYiIiIiILCDoRag2RkHIKzE51qVL11aoEbUmBtNERERERESW0otQrTtokszVvDsfBtNEREREREQWEkQJ9l/uAap0RumFhXmtVCNqLQymiYiIiIiIrCDLKYZyx+nWrga1MgbTREREREREVpBkAuy+2G2U5usb0Eq1odbCYJqIiIiIiMgKgijB5vQVKM6nGNJu3EhrxRpRa2AwTUREREREZCVJLoPdl3sMP1dVaVuxNtQaFK1dASIiIiIiovZG0ItQbolB6RuLIHm6QKWyb75rFZXB4R8/Q7njDIQKDaoG+KPszcXQRfhZV1CVDgh9Gq6XMlD6xkJU/GWq4ZD9qi1w+PfWOk8t2P4qdEP7NO4GOij2TLcDy5YtQ1BQEEpKTPez60zWrFmDoKAgbNy4sd40AEhOTsaCBQswYMAABAUF4f777wcAlJeX46mnnsLgwYMRHByMwYMHW3z9GTNmWJWf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Y63cm4iIiKi23L+fCk/P5rqv27sK6Oquwfl0MbQw7J0uf3kyqo+4ABkREREREZGZCgvzDcpeDFQbTaQBQCZXGC2n+ovJNBERERERkZlkMsPkeIiPFh7Wxlf1VhUV1XRIZGFMpomIiIiIiMxUeoh3CakYeCHA+DZZArfOanCYTBMREREREZnpzp3rRssnt1VDYiTLEouZejU0/BslIiIiIiKqJi5WwPhWhit3u1kz9WpouJo3ERERERGRmZycXMs89nYnFQY110+omxTEA2hdw1GRJTGZJiIiIiIiMpOzs1uZx5raFC9GVtqtW+qaDoksjGMNiIiIiIiIapi7e7PaDoGqGZNpIiIiIiKiGqZUFtR2CFTNmEwTERERERHVsJycB7UdAlUzJtNEREREREREZmIyTUREREREVMN8fdvVdghUzZhMExERERER1bDExFu1HQJVMybTRERERERENUytVpV57EiSCADwyXkp+m1X4LsrEkuFRVXAZJqIiIiIiKiG2djYGS1XaYFdd4uT58Q8Ea48EOOHK0zT6gP+LREREREREdUwJydXo+V/3JEgp0ikVyZoNZYIiaqIyTQREREREVENS06+bbT8+ysSiESCXplIzGHe9QGTaSIiIiIiolpwOUOE8/clEAT9nmmRSFTGGVSXMJkmIiIiIiKqYW5uTQ3KfrwqheSRXmkA0GrUlgiJqojJNBERERERUQ17dDXvtAIg4pYEGoG90PUVk2kiIiIiIqIalpWVoff1r3FSaMuoK5FIaz4gqjIm00RERERERBZUpAFWXpNCW0avtFZbVppNdQmTaSIiIiIiohrWokUb3Z933JYgQ1n28G5BYDJdHzCZJiIiIiIiqmHJyXd0f/7+qhRiGC489g/Oo64PmEwTERERERHVMJWqCABwPl2EyxliaMtJmKVSzpmuD/i3RERERERE9VZWoYBZx6XYlSBGgQbo5KbF/C4qdHAtr+cX0ArAhhsS7LotQVSmCFlFIvjYCRjtq8FLwWpYSfTrpxUAn5yX4UCSBLkqoK2jgNfbqzDS17Qh2VZWNgCAH/7eDqu8VbwfXfmb6ib2TBORUd999x38/PzwzTff1HYoJjt8+DC6du2KZ599trZDISIiIgvQCsCwCA023xDjOX81PgxV4X6BCKP3KnAzp/yh0vlq4LW/5LivFGGqnwYfd1Whk5sWiy9LMfGAHEKpXPxhETBitwI770gwpZ0aH3VRwU4mYPoRBTbflJR9k1JcXZsgJR/YfpvbYTUU7JmmBkMQBERFReHatWvIzc2FlZUVWrVqhS5dukAmk1V4flZWFi5cuID79+8jLy8PWq0WdnZ28PHxQUhICGxsbPTqnzt3DhcuXDB6rW7duiEkJMSkugAgEonwwgsvmPikRERERAQA226JcSIZ+N/jagxrrgYAjPLVIHyLFRZfkuL73mX38MrFwM4hSoQ1+adn+dl2GjS3E7D4kgxH74nRp1nxsdVxUtx6KMbmQUr08iwu+z8/DYbsUuCjczKMaKGBvIKcOikpARuyg8qdKV1CJJYAZW6cRXUFk2lqME6ePIno6Gj4+vqiQ4cOyMrKQnR0NDIyMjBs2DCIROW/AczLy0N+fj58fX1ha2sLsViMzMxMXLt2DTdu3MBTTz0Fa2trg/PCw8NhZWWlV+bm5qb3dcuWLeHo6GhwbkZGBiIjI9GiRYtKPDE9qnfv3jhy5AjnGRERETUS2xPE8LABRvhqodUUl7lZASN9Ndh8UwKlRgVFGUmuXAK9RLrEUB8NFl+SIT5bhD7NistOp4rhZiXoEmkAEIuK7zP/vAwnUsXo26z85LdIK8LP5WyHVVpFv7dS3cDfOKlByMzM1CXSgwYN0pXb29vjxIkTuHHjBtq0aVPOFQAvLy94eXkZlHt6euLAgQOIjY1Fx44dDY77+vrC3t6+3Gu7urrC1dXVoPzevXsAAH9//3LPJ9OIxWKDEQRERETUcEVliNDZQwSxSL8ft7ObFr/GSXEjR4RAZ1P6gv+RVlCcyLoo/ilTagErieF1rKXFZZEZFSfTpwp88KDItCRZq1GbGC3VJs6Zpgbhxo0bAID27dvrlfv7+0MqlSI+Pr7S17azswMAFBUVlVmnqKgIWq15Q3FUKhVu3LgBW1tbeHt7Vzq+qsrNzcX333+Pxx9/HEFBQQgNDcUHH3xg9Hnj4+Mxe/ZsDBw4EJ06dUJAQAC6d++Od955Bw8ePNDVW7VqFQICAjBnzhyDa9y8eRPjx4+Hv78/EhMTTY4zOjoaL730EsLDwxEUFIQOHTqgX79++PTTT3V1jM2ZLil75plnsGHDBgwdOhTBwcEICQnBjBkzkJ6ebnIMREREVLek5ovgaWtY7mFdnOSm5Jvfw7ssWgp7mYD+3hpdWRsHAcn5ItzN1b/e6dTidOpeBfcRBOCneNsKtsOi+oY909QgpKenQyQSoUmTJnrlUqkUrq6uZiVMarVa919WVhZOnz4NAGjevLnR+ps2bYJKpdLdv1OnTvDx8anwPjdv3oRKpUJwcDDEYtPeaymVSgiCaT+EZTIZJJLyJ+8olUosX74c//vf/2BtbY0xY8ZAo9HgxIkTUKsN34hGRkbizz//RLdu3dC/f38IgoCLFy9i27ZtiIyMxNatWyGXy9GlSxe0bt0a+/btQ05ODhwcHHTXiIqKQmxsLMLDw01+iRAXF4ePPvoI0dHR6Nu3LwICApCfn4/4+Hjd309Fbt26hcWLFyM8PBx9+vTBxYsXceTIEbz11ltYtWqVSdcwRioVQyKxzHtJsbj4g1omk+juKZWW/j9/pJdmrL2obGwv87C9zMP2Ml1jbiutABRpKq4HAAoJIBIBBZriPz/aXnZWxe2oEUugUJjejksuinH0ngRLe2rQxP6fz9X/CxKwOg6YcVSOReFauNsI2HJDjD/uFl+7SBBDoSj7c/h0iggxOaZ/TkulMigUJjaGGRrz91dN4G9e1CDk5eXBysrKaPJoa2uL1NRUaDSaCpNLAIiJicGJEyd0X9vb26Nfv37w9PTUq6dQKODv74+mTZtCLpcjOzsbUVFR2LNnD/r06QM/P79y7xMbGwsAFdYrbfPmzcjNzTWprikxXL58Gbt27YJIJMKmTZvQsmVLAMDRo0fx4YcfGtQfMWIEhg0bpjdH/MGDB/joo4+wd+9eHDhwAEOHDkXbtm3RsWNHxMfHY8eOHXjmmWcAFPeCHz58GIWFhRg3bpypj42EhARcv34dvXr1wooVK0w+r7SMjAx8+eWXGDp0KIDilxnvvPMOTp48iZs3b6JVq1aVuq6Tk43F5zXZ2VkZlNnYKIzUJMB4e1HZ2F7mYXuZh+1lusbYVofvaNFvg2kj/a79nwT+riJYS9VQagzbS3JfC0ALV3s5HBxMSxrXx2jxyVktnm8vwuzu+p+rPRyANcO0ePGAFoO2F1+vqS3wVT8xZh7QwsVWAgcHeZnX3n9RAzEEk5cUE0vE5V6vqhrj91dNYDJNDYJarS6zd7ckgVar1SYl076+vnBycoJarcb9+/dx+/ZtFBYWGtR7dEg5UJwYb9y4ESdPnkSrVq3KXEU8KysLKSkp8PLy0uu1rcjjjz9utMfYGBcXlwrrREdH4969exg8eLAukQaALl26oHPnzvjjjz/06svlxT/UBUFAYWEhHj58CI1Gg+DgYOzduxeRkZEYOnQoFAoF+vfvj3379mHjxo26ZDo2NhZRUVFwdHTEgAEDTH1syOVyyOVyxMbGIjY21qwXECXc3d11iTQANGvWDD4+Prh8+TJu375d6WQ6Kyvfoj3TdnZWyM0thFZbPEJBKhXDxkaB/Hwl1Gqu+lmasfaisrG9zMP2Mg/by3SNua285MB3fUx7QW0rqJCTAzS1luJensigvW7eFwGQwkGkRE5Oxdf7M1GEKXskGOwjYHE3jdFzBnkCMZOK52lrBSDETcCxe8X3aW6tRk5O2VMCh3iJ8MVZ01MvtUqNnJzq32u6sX5/OTgYLiJcHZhMU4MglUqNJrwAoNFodHVMYWdnp5sn7evri5YtW2LLli1Qq9Xo1KlTuedaWVkhMDAQ58+fR2pqapnDmGNiYgCY1ysNAE2bNjWrfkWSkpIAwCCRtLGxMXqv+/fv48cff8TevXuRmppqME88Oztb9+eAgAC0b98ex48fx7Vr1+Dv749Tp04hMTERU6ZM0SXmpujUqROGDh2KiIgIjBw5Em5ubujYsSNGjBiBQYMGmTRM/tGh91ZWVrrV2bOyskyO5VFqtdZiSWzJkG6VSlPqnlJdHEolFyspzXh7UVnYXuZhe5mH7WW6xtxWThJgrK+JlQVAqQSCXMQ4nSqCskgDreaf9jpzTwYbqYDmVmooleVf6ny6CM/sUyDEVYsVvYqgUQHlDbAO/nuDFkENHLxd/Dn8mLsKSmXZyWmwIxDkoMK1h1Ymreat1WqhVFb/MO/G/P1VEzhQnhoEW1tbFBYW6hLn0sobAm4KV1dXuLm54erVqybVL1nZu6zkXqvVIj4+HgqFQq832BQFBQXIz8836T9Te7BNlZubiyVLlmDVqlWwtbXFSy+9hE8++QSLFy/G1KlTAUBvPnfTpk3x2GOPQSwWY9OmTUhKSsLp06chCIJZQ7wBwNHREfPmzcPatWsxY8YMtGzZEmfOnMHrr7+OSZMmlbs4XIny/v5NnYdOREREdcvIllqk5gM7Ev5JazIKge23JRjkrdHbFutWjgi3cvQT2bgsEZ45qICPnYDf+xfB2oyuxps5IqyOk2KQtwatHSv+XeLpZqkmJdKA6Z1AVLv4t0QNgru7OxITE5GWlqY3t1mtViMjI8NgvrO51Go1lBW91vxbSe+ssT2pAeD27dsoKChAcHCw2Qn+li1bqnXOdMlWYDdv3tQrz8/PR0pKil7ZrVu3EBUVBblcjk2bNuk936PnlwgLC0OrVq2wbds2hIaG4sqVK2jfvj3atm1r0jOUJpFIEBwcjODgYADF7fj+++/j7NmzOHjwIIYMGWL2NYmIiKh+G+WrxUpP4NVjUlwLAlwUAlbFSqERgLkd9TsWxu4rHhV3fmzx73S5KmDCATmyioCXgjTYn6j/e5mvvYCupfah7rlVgRG+GnjbCrjzUIRVcVI4ywV80b3il/oA8ISXEv9NEHC/sOKEuro7RahmMJmmBqF169a4ePEioqKi9BLnmJgYqNVqgz2mc3JyoNVq4eTkpCvLz883ukdxcnIyHjx4oHddrVYLtVptMFQ5NzcXV69ehUKhgIeHh9FYSxYeq8ze0tU9Zzo4OBienp44ePAgbt26pespP3fuHC5cuKBXVyQS6f4rPbz76tWrOHLkiNHrlyxEtmnTJvz444/Izc3FhAkTTIq/tLy8PGg0Gr355e7u7rrV20sPLyciIqLGQyIG/nhKgtf2FWHlNSkKNUBHVy2+fqwIbSroLc5UipCUV9yj/ckFw3VuJrRW6yXTQc5arLsuQXqBCC4KYGQLDeZ2VMHdxOm4Xk098UKAGp9fkprQQ81Rc/UBk2lqEFxcXBAUFIQrV65g37598PHxwYMHDxAdHQ1PT0+DZHrnzp3Izc3FjBkzdGXHjx9Hfn4+mjVrBjs7O2g0Gty/fx83btyATCZD9+7ddXVVKhXWrl2rW6xMoVAgOzsbMTExUKlU6N+/v9HhOXl5ebh79y7c3d1NSnYfVd1zpkNCQjBkyBCsXr0aY8eOxbBhw6BWq3Hq1CmDoc8+Pj7w9/dHfHw8xo0bh8cffxwPHjzA6dOnjQ6vB4pXPO/Xrx/27duHq1evwtraWm8RMFNt2bIFixYtQmhoKNq1awdbW1vExMTg1KlTutXWiYiIqHFythLh615q/Ce8/DnAJT3SJXzsBKRNLTD5Piv6VG1BsLt3b+LZdn5YclmKitb+EonFgMlrf1NtYTJNDUZ4eDjs7e1x7do13LlzB1ZWVggODkaXLl1M2rqodevWiI+PR3x8vG6+s52dHQICAhASEqJblAwonsfSsmVLpKWlISEhASqVClZWVvDy8kJISIjBftcl4uLiIAhCpXqla4JCocDLL78MBwcHbNy4UTd8+4knnoC7uzuWL1+uq+vg4IA5c+ZALpfj8OHD+Pnnn2Fra4t+/fohNDQU8+bNM3qPoKAgBAcH48SJExg6dChsbW3NjrNDhw7o3bs3YmJicPnyZahUKjg4OKBv37544403yhwFQERERFSXuFkBY1pqsOmmBJpyeqdFIi5tVR+IBK68Q0Q1KC0tDe+99x6OHTuGdevWVbgien2Tnv7QYveSSsVwdrbFgwd5uhU4FQopHByskZNTwNW8H2GsvahsbC/zsL3Mw/YyHdvKPPWpvbKyMuHk5IKoDBH679Tf53miP7BmuBSTdqqxNgbwVChx+enqf5761F7Vyd3dvkauy1ceRFSjIiMjERkZibZt2za4RJqIiIjIVCUjJdu7CujqroGY86LrPQ7zJqJqp1KpcPr0aZw/fx4HDhxAdnY2PvroI4N62dnZFS4eJpPJ0KRJk0pvbUZERERUF2RmpsHR0RkA8GKgGs8fUZRZVyyRAjBtlXCqPUymiajaFRYWYsOGDdi7dy/s7Ozw4osvYtiwYQb1lixZgg0bNlR4vYMHD8Lb27smQiUiIiKyuCE+WnhYC0gtMD5vWhAazxDs+ozJNBFVO3t7e3z99dcV1ps0aRK6dOlS4bXc3d2rKzQiIiKiWuHt3VL3Z6kYeCFAjYUXpNDCMKEWtEym6wMm00RUawICAhAQEFDbYRARERHVuPv3U+Hp2Vz39eS2aiy+JEWR0by54p1oqPZxATIiIiIiIqIaVliYr/e1ixUwvrUGEpHhQmRSKfs86wMm00RERERERDVMJjNccGx6gNroftNqNbe7rA+YTBMREREREdWw0kO8SwQ6Cwj30EBk0DvNbbPqAybTRERERERENezOnetGy/8VqIbwSO+0SMw0rT7g3xIREREREVEtGeythbNcvydaLGKaVh9wZjsREREREVENc3JyNVouEQMjW2oAyNDOUUAPDy36OCQB4NagdR2TaSIiIiIiohrm7OxW5rFwj+Ke6dkharzsr8atW5lgMl33cfwAERERERFRHeLu3qy2QyATMJkmIiIiIiKqQ5TKgtoOgUzAZJqIiIiIiKgOycl5UNshkAmYTBMRERERERGZick0ERERERFRHeLr2662QyATMJkmIiIiIiKqQxITb9V2CGQCbo1FRERERERkIZJriZBGJuiVSdt5AoM66r5Wq1WWDYoqhck0ERERERGRhViv/hPWPx/UL5zYSy+ZtrGxs2xQVCkc5k1ERERERGQhkqt3K6zj5ORqgUioqphMExERERERWYg0JqnCOsnJty0QCVUVk2kiIiIiIiILEGU8hDgrr7bDoGrCZJqIiIiIiMgCpPHJJtVzc2taw5FQdWAyTUREREREZAGSmCQIoorrcTXv+oHJNBERERERkQVI4pIBiaTCellZGRaIhqqKyTQREREREZEFSK/dBdSa2g6DqgmTaSIiIiIiIguQxiTBhFHeaNGiTY3HQlXHZJqIiIiIiKiGibLyIM54aFLd5OQ7NRwNVQcm00RERERERDVMElvx/tIlVKqiGoyEqou0tgMgIiIiIiJq6KRxyRAAk4Z5W1nZ1FwgWXmwmfUTZLvOQ1SghKpTK+TNnwh1B1+TTpfEJcPuwzWQnY6DIJeiaEAIchdMhODmoFdPnJoFm8URkB+5AnFaNrQeTlA+0Rn5b4yE4GJXAw9meeyZJqoBsbGx8PPzw7vvvlvboehcu3YNY8eORadOneDn54dp06bVdkhEREREjYYkLgmQVrySNwC4ujapmSC0WmDYJ5BvPomC5/oj98MJEN/PgePoRZDcTKnwdHFyJpxGLYTkViry3h+LgpeGQH7gMpzGfQEUqf+pmFsIp6EfQ/HHBRSOewy5CyejaEAIrH8+AMexnxfH0QCwZ5oaFD8/P6PlMpkM0dHR1Xqv9PR0/Oc//0GvXr0wdOjQar12TZg9ezaSk5MxduxYeHh4oHXr1jV6v0WLFsHR0REvvfRSjd6HiIiIqD6QXk00eSXvpKQEtGxp/Pfa8jiOXgRtczc8/OYFo8dl284CJ2KR979XUTCsCwBAOSoMLuFvw2bxFjz8fma517f5agdE+Uo82D8fWm9XAICqUys4jVsMq3XHUDilHwBAsfciJHfvI/v3N1A0sKPufK2TLWyXboP0yl2o27cw+/nqGibT1OC0bNkSY8aM0SuTSqv/Wz0zMxMREREAUOeT6YKCAty8eRP9+/fHhx9+aJF7btmyBa6urkymiYiIiABIryWaNMS7Jsm3nwE8nKAa0QX4u3NYcHOAcmQYrDafwEOlClDIyjxfsfMclANDdIk0AKj6BEHduikU287okmnRwwIAgNbdUe98rYdT8T2tyr5HfcJkmhqcpk2bYsaMGbUdhkXl5uZCLpdDLpcbPZ6YmAgAcHR0NHq8vlEqlVCr1bC1ta3tUIiIiIgqJMrJh/h+jsn1a2qYtyTqNtC5FSAW6w21VnduBdGvhyG5kQJNYHOj54rvZUJ8PwfqkJYGx9SdWkF+8LLua1W4HwSxCHbv/4bc+ROhbeYC6dW7sPlqB5RDOkPTtlm1P1tt4JxpapAKCgqQnZ1dqXOLioowf/589OzZE4GBgejYsSPGjRuHM2fO6Or88ccfGDlyJAAgIiICfn5+8PPzQ1hYmMH11q9fj/79+yMwMBChoaGYNWsWiooMV2iMiorCs88+i9DQUAQEBCAsLAyzZs0yeI5p06bBz88PSUlJ+L//+z907twZoaGhuHXrltHnmTZtGoYPH24Q6x9//KGr8/PPP2Pw4MFo3749goKCMGDAAKxevdrgWj///DOeeuopdO3aVdc2Y8eOxenTp/Xq+fn5ITs7Gzdv3tTdz8/PD7GxsbrjxuZsf/fddwaxvfvuu/Dz88O5c+fw2muvoUuXLggJCcGRI0cAFP9dz5s3D7169UJgYCA6dOiAMWPG4MSJE3rX1mg0WLRoEXr37o327dujffv26NGjB5577jkolUqjbUdERERUHSRxyWbV19bQnGJxahbg6Wx4v797jMUpWeWcm61X99HzxQ/yAKUKAKDx80Lu0v+DJC4ZzkM/hmvHN+A46T9Q9QpEzk+vVPUx6gz2TFODc+7cOXTq1AmCIMDGxgbh4eH4+OOP4erqWvHJAKZOnYoLFy6gXbt2GDlyJNLT07F3714899xz+OGHH9CjRw+0b98e06ZNw6pVq9ChQwcMHDgQAGBnp78y4ZkzZ7Bnzx4MHjwYTZo0wZEjR7B79244ODhgwYIFunrHjh3Dyy+/DCsrKwwaNAhNmzZFTEwM9u3bh6tXr2LHjh1QKBR6137mmWfg6OiIp59+GgUFBXBw0F9BscSzzz4LPz8/g1jbt28PAJg7dy62bdsGf39/TJo0CWKxGEeOHMHChQuRnp6ON998U3etDRs2wM7OTvc8t2/fxsGDBzF9+nSsWbNGd805c+Zg+fLlsLGxwdSpU3XnN23a1KS/A2PefPNNyGQyjBkzBiKRCF5eXlAqlXjqqaeQkJCA8PBwBAUFIScnB3v27MELL7yA77//Hr169QIAfPTRR9i4cSOCg4MxcuRISCQS3L17F2fOnEFhYaFB+xIRERFVF2lskskreQPAgwf34eRUwe+uKjVEOQV6RSKVGihSQfTIftaCs21xb3RBEaAwTAGFv4d2iwrL3pJLd6yC80v+rPF0hrpTKxQNCIHG2xWyU3GwXrkfWhc75M2fWP6z1RNMpqlBad68Ofr06YPWrVsjJycHR48excGDBxEdHY0dO3ZUOMx569atuHDhAjp37ozff/8dYnHx4I2nnnoK06ZNw4IFC7Bnzx40b94cY8aMwapVq9CmTZsyh5WnpqZi8+bNuoXRZs2ahT59+mDXrl16yfQHH3wAe3t77Ny5E87O/7wt/O233/Dxxx/jp59+Mph73Lx5c/z6668Vtkn//v3h7e1tNNa//voL27Ztw4gRI7BkyRJd+dtvv42xY8di9erVeP7553UxrV+/3qANL1y4gMmTJ2PZsmVYsWIFAGDGjBlYuXIlHBwcqm3IvbW1NbZt26Y3lH3hwoW4ceMGFi1apDdP/rXXXsPgwYOxcOFC7N69W/es7u7u2Lx5c7XEU0IqFUMiscwgH7G4+CNYJpPo7imVlv4/f6SXZqy9qGxsL/OwvczD9jId28o89aW95DfuFa/kXcECZCWf5y4uLlAYSVpLk5yJg+3wTw3KZWevw2qL/qjBh5FfQWjhDljLAaXaoL2kf/eES+2tISrjvmJ76+Lra7UGCbVUXbySt9zRBlBIITkVC5tnvkTegfnQdm4FEQD1k92gdLaB9WdboJ3WD1p/73Kfrz7gb17UoBw4cEDv6xdffBHz5s3D+vXrsWTJEnz88cflnl+SeM2aNUuXSANA9+7d0b59e0RGRiIpKQleXl4mxdOxY0e9FcbFYjHat2+PgwcPIjs7G46Ojjhz5gxSUlIwduxYFBYW4t69e7r6/fr1w2effYa//vrLIJmeObP81RZNsX79egDFvdel7wsAffv2RVRUFI4cOYLRo0cD+GfOtVarRVZWFpRKJTw9PeHm5oa4uLgqx1OeZ5991mBO+P79++Hm5obw8HCD+Nu3b48TJ04gNzcXdnZ2sLa2RkZGBvbt24dBgwZVW1xOTjYQiSy7nIidnZVBmY0Ne9bLYqy9qGxsL/OwvczD9jId28o8db69HE1b56Xk89zBoVXFlXv4Afs/0i+bswpo6gy8NUqv2L5tU8BKDni6APceGLZXdh4AwLZtU8DB2vj92haPMLTOyoP1o3UycwEXOzi4/z1S8rcjgIcT7PoG6dcb1wNYFAG7yAQgrG3Fz1jHMZmmBu/999/Hpk2bDOb1GpOSkgKRSISOHTsaHGvZsiUiIyMRHx9vcjLdrJnh4golCWlqaiocHR1x5coVAMCmTZuwadMmo9fJysoyKCsZUl0Vd+7cAQCMHz++zDopKf/sOXjixAl88cUXiI+Ph0ql0qvn5ORU5XjK4+/vb1CWlpYGtVqNvn37lnleSkoK2rRpgzlz5uCtt97Cq6++Cnt7e/j7+6Nv37545plnYG1dxoeGCbKy8i3aM21nZ4Xc3EJotQKA4jfYNjYK5OcroVY3jD0bq4ux9qKysb3Mw/YyD9vLdGwr89SX9pK2bAIbE7bFKvk8z8y8DxcXt/IrSyRAWDu9IhsHG2jd7FH4SDmKNEBRAWyCm0N6Mg65OfnQlhp0bnXsGmQ2Cjxs6gw8MnRcx94Gdm4O0JyMQ8EjdWxPxUEIboH8v8ttkjIhVmuQ+0g9cVY+7AAUPCyEqqz71ACHsl4QVBGTaWrwFAoF7O3tkZuba/F7SySSMo8JgqD3/yeeeAKPP/640bouLi4GZfb29lWOr+TeixYtKjPWkhcL8fHx+Ne//gWFQoFx48ahbdu2sLEp7pVdsmRJtSzipf57iJAxZa3c7eHhgTlz5pR5nqenJ4Di4e6HDh3Ctm3bcPLkSURHR+OLL77AqlWrsHnzZnh4eFQyZq3FktiSId0qlabUPaW6OJTKstuvMTLeXlQWtpd52F7mYXuZjm1lnvrSXuqWTWFjSr2/P8/T0lJha+tk9n2stAK0GqHM3wnEw7vCbusZIOI0lH/vMy3KeAi7raehHNQRSoiAv88V30oFAGhb/vM7kmxYKKw2/AXVzVRovYrndMuOXoHk+j08nDFId19ZSw9Y/xkF7Z9RUD0WoDvfdv1xAEBhQHOoG8DvLUymqcHLy8tDTk4OWrSoeGN4T09PxMTE4NKlS+jWrZvesZLVstu2LR6SUl1De0uGgUskEowaNaqC2tXLy8sLMTEx8PX1RefOncutu3nzZhQVFeGzzz7DsGHD9I4tWLDAIBkvr32sra3x8OFDg/KSnnJTubq6Ii8vD8OHDy/3xUUJR0dHTJkyBVOmTAEALFmyBD/++CN++OEHi+2/TURERI2Ppo0nBJEIIsG03nOFomZ6UlWjwoCV+2H76o8QXUuE1sUe1qsOAhot8uc+qVfXaexiAEDm+aW6svxZI6DYcRZOT36G/BmDIMorhM23u6EO8EbhxF66egXPD4DV2mNwmPwVCqcPgMbbDbKTMbCKOIWiPkFQh7aukeeztLo7S5/ITKWHI5f2/vvvQ6vVIjw8vMJrPPHEEwCAr7/+Wm9LgrNnzyIqKgotW7bUDfEuWT27sltwlQgPD4eHhwcOHDiAq1evGhwvKipCampqle5RlgkTJgAo7pl+dNg2ANy9e1f355I55I9u1fDf//7XaK+/QqFAXl6e0fu6u7vj5s2begl1eno6Dh06ZFb8AwcORG5uLhYuXGj0eOn4H51TDUD3AsHYMHoiIiKiamMth9bLcKRhWZo08ayZOCRi4I8PUDS6G6xX7ofdgnXQutgjO+IdaNpUfE+tlyuytr4LjW8T2H2yATbL/kBR/w7I2jgX+HsVb6D45cGDA/Oherw9FJtOwO69XyE7ex35Lw1B9urXa+bZagF7pqnB+PTTTxETE4OQkBA0a9YMeXl5OHXqFK5fv47mzZuXOxS4xOjRo7F+/XqcO3cOTz75JB577DHcv38fe/fuhVQqxbx583R1mzZtChcXF5w8eRKfffYZ3N3dYWtri6efftqsuMViMT777DPMnDkT48ePR+/evdG2bVsUFBTgzp07OHv2LJ5//nmDBciqQ58+ffDUU09h8+bN6N+/P3r16gUPDw+kpaUhJiYGV65cwbVr1wAAw4cPxy+//IL58+fj3LlzcHR0xMWLFxEVFQUXFxdoNPrzgNq1a4djx45h7ty5aNeuHUQiEcaOHQtHR0eMGzcOS5cuxZNPPoknnngC2dnZ2Lt3L5ydnc0ajj937lycPXsWv/32G86fP4/Q0FDY29sjOTkZFy9ehEwm0+1ZPXToULRs2RKBgYFo2rQpUlNTsXfvXkgkEowbN676GpWIiIjICHVgc4iTMiAyoXP67t2baNnSr+KKj8je+m7FlZztkP/1dKj/81y51Ur3SJem8fdG9oa3KryNpo1ng9pT2hgm09RghIeH4/bt2zh8+DDy8/MhFovh5uaGCRMm4O233y5zzu2jVq9ejUWLFmHfvn1YtWoVZDIZ2rZti7lz5yIsLEyv7qJFi7Bw4UL89ttvUKlUun2fzdWjRw9s3LgRS5Yswblz53Do0CEoFAo4Ozujb9++1br69KMWLlyITp064ddff8XOnTuhUqlga2uLZs2a4YUXXtDVCwwMxJIlS/Dll18iIiICIpEIrVu3xo8//oh58+YhIyND77rz58/HG2+8gb1792Lbtm0AgJ49e8LR0REzZsxAamoqduzYgZ9//hnOzs6YMmUKxGIx/vvf/5ocu0KhwKZNm/Dll19i3759utXJ7e3t0bp1a4wdO1ZXd9SoUTh16hR27doFpVIJW1tbtG7dGq+++iq6d+9elSYkIiIiqpDG3wv4M6rC7bGo/hAJgokD94mIyEB6uuHc75oilYrh7GyLBw/ydIusKBRSODhYIyengAuQPcJYe1HZ2F7mYXuZh+1lOraVeepTeyk2/gWHl38wfnBiL2DNG7rP86ysTDg5mT4s3FT1qb2qk7t71RfuNYZzpomIiIiIiGqYxs+0rVWB6lvolmoWk2kiIiIiIqIapm7jCcHEHDkzM61mg6FqwWSaiIiIiIioptkooG3qXNtRUDViMk1ERERERGQB6iAfk3qnvb1b1nwwVGVMpomIiIiIiCxA4+8FSCQV1rt/P9UC0VBVMZkmIiIiIiKyAHU7L4hM2BqrsDDfAtFQVTGZJiIiIiIisgCNXzOT6slkihqOhKoDk2kiIiIiIiILULc1LZn29Gxew5FQdWAyTUREREREZAl2VtA0daqw2p0712s+FqoyJtNEREREREQWog7whlDbQVC1YDJNRERERERkIRp/b1S0O5aTk6tFYqGqkdZ2AERERERERI1F/usjUDipt16ZzM0e9qW+dnZ2s2xQVClMpomIiIiIiCxEcLGDxsVOr0yqYFpWH3GYNxEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZmEwTERERERERmYnJNBEREREREZGZRIIgCLUdBBFRfWXpH6EikcjgnsbKqBjbxjxsL/OwvczD9jId28o8DaW9LPUcDaW9zCESiWrmukymiYjqh5If1zX1gdDQsL3Mw/Yy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trbYuHEj4uLisGLFCvTq1atWnqE2lf4+6tevH3r16oWCggJs374dsbGxeP755zF37tzaDrNOOXLkCGbOnIkmTZpg0qRJkMlkiIiIQFxcHD799FOMHTu2tkOs8/z8/NC3b1+sWLGitkOpUw4ePIhXXnkFdnZ2eOuttwwSaVtbWwwYMKCWoqs9H3/8MX777TcMHDgQffr0wY0bN/Drr7+ic+fOWL16NZPFUn7//XcsWLAAzZo1w+uvv27QI+3m5obHHnuslqKr35hMExHVA++88w62bNli9JiXlxf+/PNPAMXDu/v371/utX755Rd069at2mOsS0xtrxI3btzAkiVLcPbsWahUKgQGBuLVV19Fjx49LBFunZSRkYFvv/0Whw8fRlpaGqRSKdq0aYPx48dj3LhxHB5oxJkzZ7Bs2TJERUVBq9UiICAAM2bMwOOPP17bodULTKaNKxmaWxZjP9MaA41Gg9WrV2P9+vVISkqCs7Mzhg4ditdeew22tra1HV6dUt5nIgCEhYXh119/tWBEDQeTaSIiIiIiIiIzcfwDERERERERkZmYTBMRERERERGZick0ERERERERkZmYTBMRERERERGZick0ERERERERkZmYTBMRERERERGZick0ERERERERkZmYTBMREREREVXRO++8Az8/P/j5+WH48OEGx7VaLb777jsMGDAAQUFBGDBgAADgxx9/xBNPPAGtVlup+65duxZ9+/ZFUVGRwbFVq1bpYvLz80NmZmal7kHGSWs7ACIiIiIiorrs2LFjmD59epnHP//8cwCAs7Mz3n33XTg4OBjUWbNmDb7++mv83//9H/z8/NCkSRPk5uZi5cqVmDt3LsRi/X7OZcuWYdmyZdi1axdat26td+zdd9/F1q1bsXz5cowZMwbLli3DunXrMGXKFL16vXr1grOzM/bv34/9+/dX9vErTaVS4fLly0hLS0N6ejqUSiX69OkDPz8/k87PzMzE+fPncf/+feTn50MqlcLZ2RkhISFo0aJFpe5T1ZhKYzJNRERERERUjpiYGADABx98YDRR7tWrF06dOgUbGxuMGjXK6DUiIiLw2GOP4e2339aVrVq1Cmq12mhP9sSJE/HDDz9g9erVWLBgga78119/RUREBGbNmoW+ffsCAEaPHo1Vq1bh2WefhUgk0tVt3bo1WrdujTt37tRKMl1YWIgLFy7Azs4OLi4uuHfvnlnn5+bmQqVSoV27drCxsYFarcatW7ewd+9e9OrVCwEBAWbfp6oxlcZkmoiIiIiIqByxsbGwt7fH5MmT9ZJVUymVSsTExODVV1/VK4+IiMDjjz8OhUJhcI6rqytGjBiBbdu2YdasWXBxccGZM2fw2WefYfDgwZg5c6au7pAhQ7By5UqcOnUK4eHh5j9gDbGxscHkyZNhY2OD9PR0bNmyxazzfXx84OPjo1cWFBSELVu2IDIyUpdMm3OfqsZUGudMExERERERlSM2NhYBAQGVSqTfe+89dOjQARqNBl999RX8/PwwYcIE3L17F7GxsejRo0eZ506bNg2FhYVYt24d7t27h1mzZqFVq1ZYtGiRXr3g4GA4OTnh4MGDZsdXkyQSCWxsbKr1mmKxGLa2tnpzxM25T3XGxJ5pIiIiIiKiMhQVFeHWrVt46qmnjC7gZW9vD5lMVub5I0aMgFQqxfr16/H+++/D0dERXl5euHjxIgAgMDCwzHPbtm2Lnj17Ys2aNThw4ADUajW+/fZb2NraGtQNDAzEhQsXKvGExmm1WqOLmhmjUCgq9aLBVCqVChqNBkVFRUhISMDdu3cN5pHXBibTREREREREZbhx4wZUKhXWrVuHdevWGRzfs2cPWrZsWeb54eHhuvnUkydP1i009tVXXwEAvL29y73/tGnTMH36dGRkZOCHH34wGPZconnz5tWaTKekpGDnzp0m1Z04cSLs7e2r7d6POnXqFK5duwYAEIlE8PX1xWOPPVZj9zMVk2kiIiIiIqIyxMbGAgA+++wzeHh4GBz39fU16Rpt2rTRW7E7KysLUqnUaC9zaTdu3ABQnCz36tWrzHoODg4oLCxEQUEBrK2tK4ypIq6urhg6dKhJdavjfuVp3749WrZsifz8fNy8eROCIECj0dToPU3BZJqIiIiIiKgMMTExkEqlGDZsGORyeaWv0bNnT7PPO3HiBBYvXgxfX18kJCTg+PHjZV5HEAQAqLbh1gqFosJec0txcnKCk5MTAKBdu3bYtWsX9u7di9GjR9fo8PKKcAEyIiIiIiKiMsTGxsLb27vSiXROTg7u3buHdu3a6ZU7OTlBrVYjNzfX6Hl3797FG2+8gYCAAGzatAmurq5YtWpVufextraGlZVVpeJ8lEajQX5+vkn/abXaarmnqVq1aoX09HRkZ2db9L6PYs80ERERERFRGWJjYxESElKl8wHAz89Pr7xVq1YAgMTERPj7++sdy8vLw0svvQSpVIpvv/0W9vb2mDRpEpYtW4YbN24YXXwrMTFRd83qkJqaWmfmTD9KrVYDgMkLpNUUJtNERERERERGpKenIyMjo0pJakxMDADDZLpTp04AgOjoaL1kWhAEzJ07F7du3cLq1avRtGlTAMCkSZPwww8/YPXq1ViwYIHBfa5evYoRI0ZUOs5HWXLOdEkPvZWVlV7PurH531qtFvHx8ZBIJHB2dq7SfauKyTQREREREZERJYlwZmYmtm3bZnDc39/fIEl+VGxsLDw8PHRzfks0b94c7dq1w8mTJzF27Fhd+TfffIMDBw5gwYIFCA0N1ZW7uLhg5MiR2LZtG9544w29RDI6OhpZWVno379/ZR7TqOqaMx0dHY2ioiLk5+cDAG7fvo28vDwAxftjy+VypKWlYefOnejcuTO6dOmiO/fYsWMoKiqCp6cnbG1tkZ+fj+vXryMrKwvdu3fX25LMlPtUpm55mEwTEREREREZUTJEOyIiAhEREQbHP//8c5OS6bLqPPXUU/jvf/+LwsJCWFlZYf/+/fjuu+/w9NNPY8KECQb1p02bhk2bNmHdunWYOXOmrnzPnj1o1qwZunfvbs7jWURkZKTevPCEhAQkJCQAKN5Hu7zEtVWrVoiNjcXVq1dRWFgIuVwONzc3hIWFGayibs59qhJTaSKhZNk3IiIiIiIiqpR33nkHp06dQkREBKRSKRwcHCo85+HDhxgwYADefPNNjBs3rlL3LSoqwuOPP44XXngBU6dO1TumVCqRl5eHlStX4qeffsLJkyfh4uJSqfuQIa7mTUREREREVA3u3buH8PBwTJo0yaT69vb2eP755/HTTz9VekXszZs3QyqVYuLEiQbH1q5di/DwcPz000+VujaVjz3TREREREREVXT9+nWkpaUBAGxsbNCxY8faDQjFyf2tW7d0X3ft2lVvnjFVDZNpIiIiIiIiIjNxmDcRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREZmJyTQRERERERGRmZhMExEREREREYqMpeMAAAAISURBVJnp/wEtcYc7U7kByQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Explain the first transaction in the sample\n", + "# 0-index represents the 'is_fraud=1' class contribution\n", + "import pandas as pd\n", + "import shap\n", + "\n", + "# 1. Create the missing DataFrame\n", + "# We use the numpy array (X_sample) and the list of names (feature_names) from the previous cell\n", + "X_sample_df = pd.DataFrame(X_sample, columns=feature_names)\n", + "\n", + "# 2. Generate the SHAP Explanation Object\n", + "# Calling the explainer on a DataFrame automatically attaches feature names to the result\n", + "explanation = explainer(X_sample_df)\n", + "\n", + "# 3. Generate the Waterfall Plot\n", + "# We visualize the first transaction in the sample (index 0)\n", + "# This shows exactly how each feature pushed the prediction from the \"Base Value\" to the final score\n", + "shap.plots.waterfall(explanation[0])" + ] + }, + { + "cell_type": "markdown", + "id": "f597c0af-be5a-4257-958f-e2e5b068438a", + "metadata": {}, + "source": [ + "### **Transaction Analysis: Legitimate (Safe)**\n", + "\n", + "The plot visualizes why the model decided this specific transaction (Index 0) was **Legitimate**.\n", + "\n", + "* **Final Score (): -11.872**\n", + "* This is the model's raw output (log-odds).\n", + "* A highly negative score translates to a probability near **0%** (0.000007%).\n", + "* **Verdict:** The model is extremely confident this is **NOT fraud**.\n", + "\n", + "\n", + "* **Key Drivers (Why it's Safe):**\n", + "* **`amt_log` (Blue Bar, -5.63):** This is the massive blue bar pushing the score to the left. It indicates the **transaction amount was low**. In fraud detection, low amounts are strong indicators of normal behavior, and this feature alone did most of the work to clear this transaction.\n", + "* **`category` (Blue Bar, -3.56):** The merchant category (likely something like 'grocery_pos' or 'gas_transport' which had low WoE scores) heavily signaled safety.\n", + "* **`hour_cos` (Blue Bar, -2.58):** The time of day aligned with normal human activity patterns, further reducing risk.\n", + "\n", + "\n", + "* **Minor Risk Factors:**\n", + "* **`hours_diff_bet_trans_log` (Red Bar, +0.47):** There was a tiny push towards fraud here (perhaps the time since the last transaction was slightly shorter than average), but it was completely overwhelmed by the \"safe\" signals (Amount and Category)." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "85363bac-4138-4a65-a4fe-6de9f42a6977", + "metadata": { + "execution": { + "iopub.execute_input": "2026-01-17T20:04:18.931556Z", + "iopub.status.busy": "2026-01-17T20:04:18.931198Z", + "iopub.status.idle": "2026-01-17T20:04:30.887928Z", + "shell.execute_reply": "2026-01-17T20:04:30.887278Z", + "shell.execute_reply.started": "2026-01-17T20:04:18.931529Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calculating SHAP values for 2000 transactions...\n", + "Success! Plotting Fraud Case at Index: 1006\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/YAAAJfCAYAAADVfE3GAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA7+VJREFUeJzs3Xd4VGXax/HvlGTSK6GFGkroTZogiIA0RQVsqIsNEcvq2tvadtf6quuuva7rujY60pEiSif0FnoNJYSE9GTa+8dsRoZJmYQkk8Dvc11cIc95znPuMzmZyX2ecgxOp9OJiIiIiIiIiNRKRn8HICIiIiIiIiIVp8ReREREREREpBZTYi8iIiIiIiJSiymxFxEREREREanFlNiLiIiIiIiI1GJK7EVERERERERqMSX2IiIiIiIiIrWYEnsRERERERGRWkyJvYiIiIiIiEgtpsReREREREREpBZTYi8iIiIiIiJSiymxFxERERERuQg5HA4+/PBDBg8eTPv27Rk8eDCfffYZw4YNw+FwlLu97777jgEDBlBYWFgF0UppDE6n0+nvIERERERERKR6ffPNN/ztb3/jzjvvJDExkfDwcJ599lmefPJJxowZU+72CgoKGDhwIPfeey/jxo2rgog9nTx5kl27dnHs2DGysrKwWCzUq1eP7t27ExUV5VHXbrezbt06du/eTUFBATExMfTo0YNGjRr5dCxf9z99+jRJSUmcOnWK3NxczGYz0dHRdO7cmaZNm1a4blnUYy8iIiIiInIRmjp1Kn379uWpp57iuuuu4/Dhw9hsNq6++uoKtWexWLjuuuv46quvqI7+402bNrF//34aNmxInz59aNu2LceOHWPq1KmcPn3ao+7SpUvZvHkzLVu2pE+fPhiNRubOncvx48d9Opav+2dnZ2O1WmndujV9+vShW7duAMyfP58dO3ZUuG5Z1GMvIiIiIiJykSkoKKBr16788Y9/5L777gPgmmuuITExkf/7v/+rcLtbt25lzJgxfPXVV1x66aWVFW6xjh8/TlxcHCaTyV125swZJk+eTPPmzRk4cCDg6tmfPn06vXr1onPnzgDYbDYmT55McHAw1157banHOd/9HQ4H06ZNw2azcdNNN1Va3bOpx15EREREROQi8uyzz9KpUyfsdjvvvvsuiYmJXHbZZSQnJ9OnTx+v+idOnKBjx44888wzHuUrVqygffv2vPrqq+6yDh06EBUVxaJFi6r8POrXr++R1ANERkYSHR1NRkaGu2zfvn0YDAbatm3rLjObzSQmJnLixAmys7NLPc757m80GgkNDfVp7YHy1D2buVy1RUREREREpFYbOXIkZrOZH374geeee47IyEgOHz7Me++9R7t27bzq16tXjxtuuIEff/yRBx98kPj4ePbu3cvDDz9Mv379ePrppz3qt2vXjvXr15cag8Ph8Dl5tVgsGAwGn+o6nU7y8vKIjo52l6WlpREZGUlgYKBH3bp167q3h4WFldhmRfa3Wq3Y7XYKCws5cOAAhw8fpkWLFsW2X566JVFiLyIiIiIichG59NJLWbVqFSEhIdx2220YjUbeffddgBIXk7v33nuZNGkSn332GQ8//DATJ04kPj6ed955B6PRcyB448aNy0zsjx8/zqxZs3yKd+zYsYSHh/tUd8+ePeTk5HDJJZe4y3JzcwkJCfGqW1SWk5NTapsV2X/VqlXuefIGg4FmzZrRt2/fYtsvT92SKLEXERERERG5yCQnJ9OyZUt3Up6RkYHZbCY0NLTY+vXq1ePGG2/kxx9/ZPv27eTn5/PNN98Um/BGRESQn59PXl4ewcHBxbYXGxvLiBEjfIq1pDbOlZGRwW+//Ua9evVo3bq1u9xms3kN2QfcZXa7vdR2K7J/x44dad68Obm5uezbtw+n01niccpTtyRK7EVERERERC4yO3fu5LLLLivXPnfddRfffPMNycnJ/Pe//6VevXrF1itan7204fMWi8XnR835Ijc3l7lz5xIYGMjgwYM9RhGYzeZiE+WisuKS9rNVZP+oqCj3I/dat27N7NmzmT9/Ptddd53X61KeuiXR4nkiIiIiIiIXkczMTI4dO+bRqx0VFYXNZit1IbiPP/4YcCW0kZGRpbYfHBxMUFBQiXXsdju5ubk+/XM4HKWeT2FhIXPnzqWwsJARI0Z4jToICQkhNzfXa7+ispJGKVTW/gAJCQmkpqZy5syZSq1bRD32IiIiIiIiF5Hk5GQAEhMT3WUJCQkAHDlyhDZt2njt8/nnnzNp0iReeOEF3nzzTT7++GNeeeWVYts/cuSIu72SnDhxolLm2NtsNubNm8eZM2e46qqrPBbNKxIbG0tKSgqFhYUeC+CdPHnSvb0057t/UZyATwsGlqduESX2IiIiIiIiF5GdO3cCnol9165dAddz6M9N7H/++WfefvttHn74YW699VYOHDjAd999x8SJE2ncuLFX+9u3b2fkyJGlxlAZc+wdDgeLFi3ixIkTDB06tMSpAQkJCWzevJkdO3a4n0Nvt9tJTk6mbt26HivaF41aCAoKco84KM/+xa0r4HA42L17NyaTyePGQ3nqlkWJvYiIiIiIyEUkOTmZevXqued1g2sl+9atW7Ny5Uquv/56d/nWrVt5/PHHGTlyJPfddx8A48eP5/vvvy+2137r1q1kZGQwaNCgUmOojDn2q1at4uDBgzRp0oSCggJ2797tsb1Vq1aA67F0CQkJrFmzhry8PCIjI9m1axdZWVlcfvnlHvucPHmSWbNm0a1bN7p3717u/X/99VcKCwtp0KABoaGh5ObmsmfPHjIyMujduzcBAQEVqlsWJfYiIiIiIiIXkeTkZI/e+iJjxozhH//4B/n5+QQFBXH8+HEmTpxI27Zt+dvf/uauV69ePcaMGcPkyZO9eu3nzZtHw4YN6d27d5WfR1paGgCHDh3i0KFDXtuLEnuAAQMGEBYWxu7duyksLCQmJoZhw4bRoEEDn47l6/4JCQkkJye7nxwQGBhInTp16NmzJ82aNatw3bIYnEVLFoqIiIiIiMhFKysri8GDB/P4449zww03lHv/wsJCBg4cyD333MPtt99eBRFKSbQqvoiIiIiIiBAeHs7dd9/NF198UeZK9MWZMmUKZrOZsWPHVkF0Uhr12IuIiIiIiIjUYuqxFxEREREREanFlNiLiIiIiIiI1GJK7EVERERERERqMSX2IiIiIiIiIrWYEnsRERERERGRWkyJvYiIiIiIiEgtpsReREREREREitWuXTvatWvn7zCkDErsRURERERERGoxJfYiIiIiIiIitZgSexEREREREZFaTIm9iIiIiIiISC2mxF5ERERERESkFlNiLyIiIiIiIlKLKbEXERERERERqcUMTqfT6e8gRET8KTU1y98hnDej0UBMTCinT+fgcPj3bd1sNhIVFUJGRi42m8OvsVzsatJ1ITWHrgspjq4LKU7RdQH4/XM9Li7cb8euDdRjLyJyATAaDRgMBoxGg79DwWQyYjAYMJn0EeNvNem6kJpD14UUR9eFFKfoutDnes2nn46IiIiIiIhILabEXkRERERERKQWU2IvIiIiIiIiUospsRcR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du/e7fNr5UusAGlpafzxj3+kR48etG3blu7duzN+/Hj2799frmOBazrLK6+8wogRI+jWrRtt27alR48e3HXXXezbt6/c7fmqT58+7Nixg8zMTLp37+4+z6+//hoofo59Udn27du555576NKlCx06dGDUqFFs374dgE8++YR+/frRrl07+vTpw6efflrs8b///nuGDx/u/j0aOHAgH330kfv6F5EqZjQQ/OUi/c6JiIjUMOXqsbfb7ZjNZo957QAGgwGz2UxWVhb5+fkEBQWV2gaA2ex96KKykydPEhYWhtPp5NSpU9SpU8erft26rt6C1NTUMuMuulEQHOzbEL2CggKc/1sgqCwBAQGYTKZS66xYsYLNmzdzySWX0LhxYwoLC/nll1/48ssvOXHiBO+8847XPq+//jpms5nrr7+e7OxsZsyYwSOPPMK9997Lhx9+yJVXXklcXBxz587l66+/pnnz5txyyy3ExMTw5JNP8uabb9K4cWOPxLK49QtKk5WVxR133EGXLl244447yM3NJSAggA0bNnD77bdjsVgYNGgQ8fHx7N69m8WLF7Njxw6mTJlCdHR0ie3u2LGD5cuX06NHD5o2bYrT6WT16tVMmTKFgwcP8vXXX2MymRgxYgQpKSksXLiQIUOG0LFjRwAaNSp+UaVWrVrRvHlzNmzYQGpqKnFxv6+EnJ2dzerVq2nRogWdOnUCXDdBRo0ahdVq5fLLL6d58+YcPXqUefPmcdttt/H999/TvHlzn16rsmLNysriuuuu4+TJk/Tq1YtOnTqxe/duli5dyi233ML3339P06ZNfToWgNVq5ccff6RLly707t2b8PBwtm/fzm+//ca4ceOYPn06derU8bk9Xz366KP885//JDMzk3vuuce9bsWll15a5r5//OMfiYiI4NZbb+XYsWPMmTOHBx54gBEjRjBlyhSuvPJKwsLCmD59On//+99p27Yt/fr1c+//8ssv8+2339KqVStuvvlmAgIC+PXXX3n33Xc5evQof/vb3yr9fEXEk8HuIOjfizlzQzuiomJLrmi1YcjM89zXaoNCK4a0LI9yZ3SohsWLiIicp3Il9tHR0Rw4cMCdbBc5deoUBQUFgCuBKi2xL0r4UlJSiI39/Y8Cm83GyZMn3W2AK8G22+3FDrc2mUwEBQWRm5tbaswOh4MNGzZgMBg8pg+UZsqU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oWCIiIiIGggm9kREZDFqtarCOplFHLEnIiIisiSptQMgIiLz5KqAWQkybE+VoEgLtPXQYWa0GhHuglnnX8gR4b14GY5miGEjBh5rrMWs9mp4KP6tk5ovQvR6hcnzv31UhaEB2nKvoVDYVRgHp+ITERERWRYTe6IynD9/HoMGDcKwYcMwZ84ca4cDADh37hzee+89pKSkoLCwEDExMVi2bJm1w6IaoBOAsXtscOauGC+EauCmELAsWYohO+XYM1CJILfyz79VAAzeIYejjYAZUWoUqEVYdEaKc3fF2DlACRuJYf1hARr09NMZlEV7Gv67Ke7uXsCN8uvkqQFBAETM74mIiIgsgok91TrBwcEmy2UyGZKSkix6rczMTHzxxReIjY1F//79Ldp2dXjttddw69YtjBgxAo0aNUJgYGC1Xm/OnDlwdnbG888/X63XoYptuSZBfKYES7sq8XizkgR7cDMtYn5VYO4pKZb0KH8kfUGiDIUaYPdAFRo7lIzwt/XQYeRuOValSPBkkOH54W4CRgaW36YpN29eBRBZbh21ToRCDWAvq3TzRERERGQCE3uqlQICAjBs2DCDMqnU8t01OzsbGzZsAIBan9gXFRXh8uXL6NmzJ957770aueavv/4Kd3d3Jva1wJarYngqBAxo+u+ouYcCGNRMi/WXJVBqy0/Ct16ToFdjrT6pB4CuvjoEOumw6apxYg8ABWpAJobRaL4l3FWKYC8zbwkBEREREZWPiT3VSt7e3pg6daq1w6hR+fn5sLGxgY2NjcnjN26UzG92dnauybCqjVKphEajgb29vbVDqRMSs8WIcNdB/MD09SgPHX68IEVKrgjeHqbPvV0A3CkWIdLDOJFu66HD3pvGmfu8v6WYeVwGEQREugt4u60a3f3MnIp/p+L7yVYCjR0qrkdEREREFeOu+FRrFRUVITc3t0rnqlQqzJw5E126dEFISAjatGmDkSNH4tixY/o627dvx6BBgwAAGzZsQHBwMIKDg9GhQwej9lavXo2ePXsiJCQE7dq1wyuvvAKVynj378TEREyYMAHt2rVD69at0aFDB7zyyitG9xEXF4fg4GDcvHkTEydORFRUFNq1a4crV66YvJ+4uDgMHDjQKNbt27fr63z//ffo06cPwsPDERoaisceewzLly83auv777/H8OHD0b59e/1nM2LECBw9etSg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tUZ1HGQ1HxcRERFRfcbEnoiILMr2n28WX3vAXcrReSIiIqLqxqn4RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdxsSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTERERERER1WFM7ImIiIiIiIjqMCb2RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdxsSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTERERERER1WFM7ImIiIiIiIjqMCb2RERERERERHUYE3siIiIiIiKiOoyJPREREREREVEdJhIEQbB2EERE1lRffg2KRKJacy+1KZaGjj8LMoX9gkxhvyBTRCIRAOv/vVQaB5nGxJ6IqB4o/VVeG770NBoNAEAqlVo5EqpN/YJqD/YLMoX9gkxhv6g7mNgTEdUDPXv2BADs3bvXypEAISEhAICzZ89aORKqTf2Cag/2CzKF/YJMYb+oO7jGnoiIiIiIiKgOY2JPREREREREVIcxsSciIiIiIiKqw5jYExEREREREdVhTOyJiIiIiIiI6jAm9kRERERERER1GF93R0RERERERFSHccSeiIiIiIiIqA5jYk9ERERERERUhzGxJyIiIiIiIqrDmNgTERERERER1WFM7ImIiIiIiIjqMCb2RERERERERHWY1NoBEBFR1eh0OqxYsQKrVq3CzZs34ebmhn79+uGll16CnZ2dtcMjKwkODjZZbmdnh5MnT9ZwNFTTvv32W5w5cwZnzpzBjRs34Ofnh99//73M+n///Tfmz5+Pv//+GyKRCG3btsXrr7+O1q1b12DUVN0q0y/eeust/PrrryaPffnll+jbt291hko16MqVK9i8eTMOHjyI1NRUKJVKNGnSBH379sVTTz1l9LfE5cuXMW/ePMTHx0OtViMkJAQvvvgiYmJirHQHdD8m9kREddTs2bPx448/olevXpg0aRJSUlLw448/4uzZs1i2bBnEYk7Kaqiio6MxatQogzKZTGalaKgmffHFF3BxcUFISAju3btXbt1Tp05hwoQJaNSoEV5++WUAwMqVKzF27FisWrWqzIdEVPdUpl+Umjt3rlFZRESEpUMjK1q/fj1++ukn9OjRA48//jikUimOHj2KBQsW4LfffsOaNWugUCgAAKmpqRgzZgwkEgmefvppODg4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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import shap\n", + "\n", + "# 1. Increase sample size to 2000 to ensure we capture the fraud case at index 1006\n", + "sample_size = 2000\n", + "\n", + "# 2. Get the numerical data for calculations\n", + "# We use the transformed data (from the pipeline) for the math\n", + "X_sample_nums = X_test_transformed[:sample_size]\n", + "\n", + "# 3. Create the DataFrame for the plot (so we get nice feature names)\n", + "# Using the feature_names list we created earlier\n", + "X_sample_df = pd.DataFrame(X_sample_nums, columns=feature_names)\n", + "\n", + "# 4. RE-GENERATE the Explanation Object for the larger sample\n", + "# This is the critical step that was missing\n", + "print(f\"Calculating SHAP values for {sample_size} transactions...\")\n", + "explanation = explainer(X_sample_df)\n", + "\n", + "# 5. Find the fraud index within this new aligned range\n", + "# We slice y_test to match the exact size of the explanation object\n", + "sample_y_test = y_test[:sample_size].reset_index(drop=True)\n", + "fraud_indices = np.where(sample_y_test == 1)[0]\n", + "\n", + "# 6. Plot the Waterfall\n", + "if len(fraud_indices) > 0:\n", + " target_index = fraud_indices[0]\n", + " print(f\"Success! Plotting Fraud Case at Index: {target_index}\")\n", + "\n", + " # Now explanation[1006] will exist because we calculated 2000 rows\n", + " shap.plots.waterfall(explanation[target_index])\n", + "else:\n", + " print(\n", + " \"No fraud cases found in the first 2000 samples. You may need to increase sample_size to 5000.\"\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "d1d82773-d37d-45e0-b013-651cf0e3d148", + "metadata": {}, + "source": [ + "### **Interpretation of the Fraud Case (Index 1006)**\n", + "\n", + "**1. The \"Smoking Gun\" Score**\n", + "\n", + "* **Final Score ($f(x)$): 20.033**\n", + "* Compared to the legitimate transaction score of **-11.87**, this is a massive swing.\n", + "* A score of +20 translates to a probability of **99.999% Fraud**. The model has zero doubt about this transaction.\n", + "\n", + "\n", + "\n", + "**2. The Anatomy of the Fraud (Red Bars)**\n", + "Every major feature pushed the score to the **right** (indicating higher risk).\n", + "\n", + "* **`amt_log` (+8.83 Impact):** This is the dominant signal. The transaction amount (1.304 on the log scale) was the primary trigger. Fraudsters typically try to drain funds quickly, and your model has learned that high value = high risk.\n", + "\n", + "\n", + "* **`hour_sin` (+2.46 Impact):** The time of day was a strong risk factor. This likely occurred during the \"night\" window (0-4 AM) where you previously identified a high density of fraud.\n", + "\n", + "\n", + "* \n", + "**`job` (+1.72 Impact):** The cardholder's profession had a high Weight of Evidence (WoE) score, suggesting this account type is historically targeted or susceptible.\n", + "\n", + "\n", + "* **`amt_to_avg_ratio_24h` (+1.24 Impact):** This is your **custom engineered feature** in action. It confirms the transaction was not just \"large\" in general, but large *relative to this specific user's recent history*. This proves the value of your behavioral feature engineering." + ] + } + ], + "metadata": { + "kaggle": { + "accelerator": "none", + "dataSources": [ + { + "datasetId": 817870, + "sourceId": 1399887, + "sourceType": "datasetVersion" + } + ], + "dockerImageVersionId": 31259, + "isGpuEnabled": false, + "isInternetEnabled": true, + "language": "python", + "sourceType": "notebook" + }, + "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.12.3" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "state": {}, + "version_major": 2, + "version_minor": 0 + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebook/credit-card-fraud-detection.md b/notebook/credit-card-fraud-detection.md new file mode 100755 index 0000000000000000000000000000000000000000..6e12bc32f3397cc762f586ae7cdf3001ef8ea19d --- /dev/null +++ b/notebook/credit-card-fraud-detection.md @@ -0,0 +1,4238 @@ +```python +# Input data files are available in the read-only "../input/" directory +# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory + +import os +for dirname, _, filenames in os.walk('/kaggle/input'): + for filename in filenames: + print(os.path.join(dirname, filename)) + +# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All" +# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session +``` + + /kaggle/input/fraud-detection/fraudTest.csv + /kaggle/input/fraud-detection/fraudTrain.csv + + + +```python +!pip install --upgrade shap +``` + + Requirement already satisfied: shap in /usr/local/lib/python3.12/dist-packages (0.50.0) + Requirement already satisfied: numpy>=2 in /usr/local/lib/python3.12/dist-packages (from shap) (2.0.2) + Requirement already satisfied: scipy in /usr/local/lib/python3.12/dist-packages (from shap) (1.15.3) + Requirement already satisfied: scikit-learn in /usr/local/lib/python3.12/dist-packages (from shap) (1.6.1) + Requirement already satisfied: pandas in /usr/local/lib/python3.12/dist-packages (from shap) (2.2.2) + Requirement already satisfied: tqdm>=4.27.0 in /usr/local/lib/python3.12/dist-packages (from shap) (4.67.1) + Requirement already satisfied: packaging>20.9 in /usr/local/lib/python3.12/dist-packages (from shap) (26.0rc2) + Requirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.12/dist-packages (from shap) (0.0.8) + Requirement already satisfied: numba>=0.54 in /usr/local/lib/python3.12/dist-packages (from shap) (0.60.0) + Requirement already satisfied: cloudpickle in /usr/local/lib/python3.12/dist-packages (from shap) (3.1.1) + Requirement already satisfied: typing-extensions in /usr/local/lib/python3.12/dist-packages (from shap) (4.15.0) + Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.54->shap) (0.43.0) + Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2.9.0.post0) + Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2025.2) + Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas->shap) (2025.2) + Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn->shap) (1.5.3) + Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn->shap) (3.6.0) + Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas->shap) (1.17.0) + + + +```python +import pandas as pd +pd.set_option("display.max_columns",None) +import numpy as np +import matplotlib.pyplot as plt +import seaborn as sns +sns.set(rc={"figure.figsize":(18,8)},style='darkgrid') +sns.set_palette('rocket') +from time import time +import warnings +warnings.filterwarnings('ignore') +from sklearn.model_selection import TimeSeriesSplit +``` + + +```python +from sklearn.metrics import * +``` + + +```python +train=pd.read_csv("/kaggle/input/fraud-detection/fraudTrain.csv") +train.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry CoveMoravian FallsNC2865436.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393OrientWA9916048.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530Malad CityID8325242.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038BoulderMT5963246.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley RestDoe HillVA2443338.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590
+
+ + + + +```python +test=pd.read_csv("/kaggle/input/fraud-detection/fraudTest.csv") +test.head() + +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002020-06-21 12:14:252291163933867244fraud_Kirlin and Sonspersonal_care2.86JeffElliottM351 Darlene GreenColumbiaSC2920933.9659-80.9355333497Mechanical engineer1968-03-192da90c7d74bd46a0caf3777415b3ebd3137181686533.986391-81.2007140
112020-06-21 12:14:333573030041201292fraud_Sporer-Keeblerpersonal_care29.84JoanneWilliamsF3638 Marsh UnionAltonahUT8400240.3207-110.4360302Sales professional, IT1990-01-17324cc204407e99f51b0d6ca0055005e7137181687339.450498-109.9604310
222020-06-21 12:14:533598215285024754fraud_Swaniawski, Nitzsche and Welchhealth_fitness41.28AshleyLopezF9333 Valentine PointBellmoreNY1171040.6729-73.536534496Librarian, public1970-10-21c81755dbbbea9d5c77f094348a7579be137181689340.495810-74.1961110
332020-06-21 12:15:153591919803438423fraud_Haley Groupmisc_pos60.05BrianWilliamsM32941 Krystal Mill Apt. 552TitusvilleFL3278028.5697-80.819154767Set designer1987-07-252159175b9efe66dc301f149d3d5abf8c137181691528.812398-80.8830610
442020-06-21 12:15:173526826139003047fraud_Johnston-Caspertravel3.19NathanMasseyM5783 Evan Roads Apt. 465FalmouthMI4963244.2529-85.01701126Furniture designer1955-07-0657ff021bd3f328f8738bb535c302a31b137181691744.959148-85.8847340
+
+ + + + +```python +test["split"]="test" +train["split"]="train" +df=pd.concat([train,test],axis=0).reset_index(drop=True) +df.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreetcitystateziplatlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraudsplit
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry CoveMoravian FallsNC2865436.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150train
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393OrientWA9916048.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620train
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530Malad CityID8325242.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810train
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038BoulderMT5963246.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710train
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley RestDoe HillVA2443338.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590train
+
+ + + + +```python +df.info() +``` + + + RangeIndex: 1852394 entries, 0 to 1852393 + Data columns (total 24 columns): + # Column Dtype + --- ------ ----- + 0 Unnamed: 0 int64 + 1 trans_date_trans_time object + 2 cc_num int64 + 3 merchant object + 4 category object + 5 amt float64 + 6 first object + 7 last object + 8 gender object + 9 street object + 10 city object + 11 state object + 12 zip int64 + 13 lat float64 + 14 long float64 + 15 city_pop int64 + 16 job object + 17 dob object + 18 trans_num object + 19 unix_time int64 + 20 merch_lat float64 + 21 merch_long float64 + 22 is_fraud int64 + 23 split object + dtypes: float64(5), int64(6), object(13) + memory usage: 339.2+ MB + + + +```python +df.describe() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Unnamed: 0cc_numamtziplatlongcity_popunix_timemerch_latmerch_longis_fraud
count1.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+061.852394e+06
mean5.371934e+054.173860e+177.006357e+014.881326e+043.853931e+01-9.022783e+018.864367e+041.358674e+093.853898e+01-9.022794e+015.210015e-03
std3.669110e+051.309115e+181.592540e+022.688185e+045.071470e+001.374789e+013.014876e+051.819508e+075.105604e+001.375969e+017.199217e-02
min0.000000e+006.041621e+101.000000e+001.257000e+032.002710e+01-1.656723e+022.300000e+011.325376e+091.902742e+01-1.666716e+020.000000e+00
25%2.315490e+051.800429e+149.640000e+002.623700e+043.466890e+01-9.679800e+017.410000e+021.343017e+093.474012e+01-9.689944e+010.000000e+00
50%4.630980e+053.521417e+154.745000e+014.817400e+043.935430e+01-8.747690e+012.443000e+031.357089e+093.936890e+01-8.744069e+010.000000e+00
75%8.335758e+054.642255e+158.310000e+017.204200e+044.194040e+01-8.015800e+012.032800e+041.374581e+094.195626e+01-8.024511e+010.000000e+00
max1.296674e+064.992346e+182.894890e+049.992100e+046.669330e+01-6.795030e+012.906700e+061.388534e+096.751027e+01-6.695090e+011.000000e+00
+
+ + + + +```python +df.isnull().sum() +``` + + + + + Unnamed: 0 0 + trans_date_trans_time 0 + cc_num 0 + merchant 0 + category 0 + amt 0 + first 0 + last 0 + gender 0 + street 0 + city 0 + state 0 + zip 0 + lat 0 + long 0 + city_pop 0 + job 0 + dob 0 + trans_num 0 + unix_time 0 + merch_lat 0 + merch_long 0 + is_fraud 0 + split 0 + dtype: int64 + + + + +```python +df.duplicated().sum() +``` + + + + + np.int64(0) + + + + +```python +df.columns +``` + + + + + Index(['Unnamed: 0', 'trans_date_trans_time', 'cc_num', 'merchant', 'category', + 'amt', 'first', 'last', 'gender', 'street', 'city', 'state', 'zip', + 'lat', 'long', 'city_pop', 'job', 'dob', 'trans_num', 'unix_time', + 'merch_lat', 'merch_long', 'is_fraud', 'split'], + dtype='object') + + + + +```python +df.drop(columns=['Unnamed: 0','first', 'last','trans_num','street','state'],inplace=True) +df +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplit
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train
.........................................................
18523892020-12-31 23:59:0730560609640617fraud_Reilly and Sonshealth_fitness43.77MLuray6345340.4931-91.8912519Town planner1966-02-13138853434739.946837-91.3333310test
18523902020-12-31 23:59:093556613125071656fraud_Hoppe-Parisiankids_pets111.84MLake Jackson7756629.0393-95.440128739Futures trader1999-12-27138853434929.661049-96.1866330test
18523912020-12-31 23:59:156011724471098086fraud_Rau-Robelkids_pets86.88FBurbank9932346.1966-118.90173684Musician1981-11-29138853435546.658340-119.7150540test
18523922020-12-31 23:59:244079773899158fraud_Breitenberg LLCtravel7.99MMesa8364344.6255-116.4493129Cartographer1965-12-15138853436444.470525-117.0808880test
18523932020-12-31 23:59:344170689372027579fraud_Dare-Marvinentertainment38.13MEdmond7303435.6665-97.4798116001Media buyer1993-05-10138853437436.210097-97.0363720test
+

1852394 rows Γ— 18 columns

+
+ + + + +```python +df['trans_date_trans_time']=pd.to_datetime(df['trans_date_trans_time'],format='mixed') +``` + + +```python +# 1. Extract day of week (0=Monday, 6=Sunday) +df['day_of_week'] = df['trans_date_trans_time'].dt.dayofweek + +# 2. Apply cyclical transformation (Period = 7) +df['day_sin'] = np.sin(2 * np.pi * df['day_of_week'] / 7) +df['day_cos'] = np.cos(2 * np.pi * df['day_of_week'] / 7) +``` + + +```python +df['hour']=df['trans_date_trans_time'].dt.hour +``` + + +```python +fraud=df[df['is_fraud']==1] +``` + + +```python +df['dob']=pd.to_datetime(df['dob'],format='mixed') +df['age']=(df['trans_date_trans_time'].dt.year-df['dob'].dt.year).astype(int) +``` + + +```python +df.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplitday_of_weekday_sinday_coshourage
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train10.7818310.62349031
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train10.7818310.62349041
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train10.7818310.62349057
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train10.7818310.62349052
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train10.7818310.62349033
+
+ + + + +```python +def haversine_distance(lat1, lon1, lat2, lon2): + lat1, lon1, lat2, lon2 = map(np.radians, [lat1, lon1, lat2, lon2]) + dlat = lat2 - lat1 + dlon = lon2 - lon1 + a = np.sin(dlat / 2.0) ** 2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon / 2.0) ** 2 + c = 2 * np.arcsin(np.sqrt(a)) + km = 6371 * c # Radius of Earth in kilometers + return round(km,2) + +# Apply the Haversine formula +df['distance_km'] = df.apply(lambda row: haversine_distance(row['merch_lat'],row['merch_long'], row['lat'], row['long']), axis=1) + +df.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timecc_nummerchantcategoryamtgendercityziplatlongcity_popjobdobunix_timemerch_latmerch_longis_fraudsplitday_of_weekday_sinday_coshouragedistance_km
02019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls2865436.0788-81.17813495Psychologist, counselling1988-03-09132537601836.011293-82.0483150train10.7818310.6234903178.60
12019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient9916048.8878-118.2105149Special educational needs teacher1978-06-21132537604449.159047-118.1864620train10.7818310.6234904130.21
22019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City8325242.1808-112.26204154Nature conservation officer1962-01-19132537605143.150704-112.1544810train10.7818310.62349057108.21
32019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder5963246.2306-112.11381939Patent attorney1967-01-12132537607647.034331-112.5610710train10.7818310.6234905295.67
42019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443338.4207-79.462999Dance movement psychotherapist1986-03-28132537618638.674999-78.6324590train10.7818310.6234903377.56
+
+ + + + +```python +df.drop(columns=['dob','lat','long','merch_long','merch_lat'],inplace=True) +``` + + +```python +#SUMMARY STATS +df.describe().T +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
countmeanmin25%50%75%maxstd
trans_date_trans_time18523942020-01-20 21:31:46.8018273282019-01-01 00:00:182019-07-23 04:13:43.7500001282020-01-02 01:15:312020-07-23 12:11:25.2499998722020-12-31 23:59:34NaN
cc_num1852394.0417386038393710400.060416207185.0180042946491150.03521417320836166.04642255475285942.04992346398065154048.01309115265318020352.0
amt1852394.070.0635671.09.6447.4583.128948.9159.253975
zip1852394.048813.2581911257.026237.048174.072042.099921.026881.845966
city_pop1852394.088643.67450923.0741.02443.020328.02906700.0301487.618344
unix_time1852394.01358674218.8343641325376018.01343016823.751357089331.01374581485.251388534374.018195081.38756
is_fraud1852394.00.005210.00.00.00.01.00.071992
day_of_week1852394.02.9674560.01.03.05.06.02.197983
day_sin1852394.0-0.074649-0.974928-0.7818310.00.4338840.9749280.685087
day_cos1852394.00.147219-0.900969-0.2225210.623490.623491.00.709514
hour1852394.012.8061190.07.014.019.023.06.815753
age1852394.046.2113814.033.044.057.096.017.395446
distance_km1852394.076.1117260.0255.3278.2298.51152.1229.116967
+
+ + + + +```python +#SUMMARY STATS +df.describe(include='object').T +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
countuniquetopfreq
merchant1852394693fraud_Kilback LLC6262
category185239414gas_transport188029
gender18523942F1014749
city1852394906Birmingham8040
job1852394497Film/video editor13898
split18523942train1296675
+
+ + + + +```python +sns.heatmap(df.select_dtypes(include='number').corr(),annot=None,cmap='coolwarm',fmt='.2f',linewidth=0.5,cbar_kws={'shrink':0.8}) +plt.title('correlation matrix') +plt.show() +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_23_0.png) + + + + +```python +df.select_dtypes(include='number').corr() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
cc_numamtzipcity_popunix_timeis_fraudday_of_weekday_sinday_coshouragedistance_km
cc_num1.0000000.0018260.041504-0.0091180.000284-0.001125-0.0008510.002118-0.002048-0.000902-0.0001310.003082
amt0.0018261.0000000.0019790.004921-0.0024110.2093080.0004910.000473-0.003301-0.024891-0.010695-0.000538
zip0.0415040.0019791.0000000.0776010.001017-0.002190-0.0010210.001556-0.0000410.0059470.0103590.006750
city_pop-0.0091180.0049210.0776011.000000-0.0016360.0003250.001180-0.0041840.0065520.019949-0.0908890.010989
unix_time0.000284-0.0024110.001017-0.0016361.000000-0.013329-0.0720710.0749550.0425830.0005710.020680-0.000470
is_fraud-0.0011250.209308-0.0021900.000325-0.0133291.0000000.0045620.000906-0.0123120.0131960.0109270.000359
day_of_week-0.0008510.000491-0.0010210.001180-0.0720710.0045621.000000-0.723891-0.3681980.000584-0.008918-0.000092
day_sin0.0021180.0004730.001556-0.0041840.0749550.000906-0.7238911.0000000.005635-0.0006470.010983-0.000184
day_cos-0.002048-0.003301-0.0000410.0065520.042583-0.012312-0.3681980.0056351.0000000.002021-0.0047890.000526
hour-0.000902-0.0248910.0059470.0199490.0005710.0131960.000584-0.0006470.0020211.000000-0.1730140.000391
age-0.000131-0.0106950.010359-0.0908890.0206800.010927-0.0089180.010983-0.004789-0.1730141.000000-0.004155
distance_km0.003082-0.0005380.0067500.010989-0.0004700.000359-0.000092-0.0001840.0005260.000391-0.0041551.000000
+
+ + + + +```python +sns.catplot(data=df,x='amt',col='is_fraud',kind='box',sharex=False) +``` + + + + + + + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_25_1.png) + + + + +```python +sns.catplot(data=df,x='amt',col='is_fraud',kind='strip',sharex=False) +``` + + + + + + + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_26_1.png) + + + + +```python +def pie_bar_plot(col): + print(df[col].value_counts()) + sns.set_palette("Spectral") + fig,axs=plt.subplots(1,2) + axs[0].pie(df[col].value_counts().values.tolist(),autopct="%.2f%%",textprops={'fontsize':25},shadow=True) + sns.countplot(data=df,x=col,hue='is_fraud',palette=['blue','orange'],ax=axs[1]) + fig.legend(labels=df[col].value_counts().index.tolist(),loc='upper left',fontsize=20) + fig.tight_layout() + fig.show() +``` + + +```python +pie_bar_plot('gender') +``` + + gender + F 1014749 + M 837645 + Name: count, dtype: int64 + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_28_1.png) + + + + +```python +pie_bar_plot('is_fraud') +``` + + is_fraud + 0 1842743 + 1 9651 + Name: count, dtype: int64 + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_29_1.png) + + + + +```python +fig,axs=plt.subplots(1,2) +fig.suptitle("fraudlent Analysis",fontsize=18,fontweight='bold') +df.loc[df["is_fraud"]==1,'hour'].value_counts(ascending=True).plot(kind='line',ax=axs[0],marker='o',fontsize=15) +axs[0].set_xticks(range(0,3)) +df.loc[df['is_fraud']==1,'hour'].value_counts(ascending=True).plot(kind='bar',ax=axs[1],fontsize=15) +plt.show() +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_30_0.png) + + + + +```python +df.loc[df['is_fraud']==1,['gender']].value_counts() +``` + + + + + gender + F 4899 + M 4752 + Name: count, dtype: int64 + + + + +```python +from scipy.stats import ttest_ind +sns.barplot(data=df,x='is_fraud',y='city_pop',hue='is_fraud',palette=['blue','orange'],ci=None) +plt.legend(loc='upper right') +plt.show() +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_32_0.png) + + + + +```python +f_pop=df[df['is_fraud']==1]['city_pop'] +na_f_pop=df[df['is_fraud']==1]['city_pop'] +t_stat,p_value=ttest_ind(f_pop,na_f_pop) +print(f'T-test: t-statistic = {round(t_stat,3)}, p-value = {round(p_value,2)}, p-value<0.05? = {p_value<0.05}') +``` + + T-test: t-statistic = 0.0, p-value = 1.0, p-value<0.05? = False + + + +```python +sns.histplot(data=df,x='amt',bins=30,kde=True) +plt.ylabel('Frequency') +``` + + + + + Text(0, 0.5, 'Frequency') + + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_34_1.png) + + + + +```python +df['gender_bin'] = df['gender'].map({'F': 0, 'M': 1}) +``` + + +```python +#we will get the time between transactions for each card +#Time=0 for every first transaction and time will be represented in hours. +df.sort_values(['cc_num','trans_date_trans_time'],inplace=True) +df['hours_diff_bet_trans']=((df.groupby('cc_num')[['trans_date_trans_time']].diff())/np.timedelta64(1,'h')) +``` + + +```python +df.loc[df['hours_diff_bet_trans'].isna(),'hours_diff_bet_trans']=0 +df['hours_diff_bet_trans']=df['hours_diff_bet_trans'].astype(int) +``` + + +```python +from scipy import stats + +t,p=stats.ttest_ind(df[df['is_fraud']==0]['hours_diff_bet_trans'],df[df['is_fraud']==1]['hours_diff_bet_trans'],alternative='two-sided') +print(t,p) +``` + + 21.308600246531245 9.715494713957777e-101 + + + +```python +df.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timecc_nummerchantcategoryamtgendercityzipcity_popjobunix_timeis_fraudsplitday_of_weekday_sinday_coshouragedistance_kmgender_binhours_diff_bet_trans
10172019-01-01 12:47:1560416207185fraud_Jones, Sawayn and Romagueramisc_net7.27FFort Washakie825141645Information systems manager13254220350train10.7818310.6234901233127.6100
27242019-01-02 08:44:5760416207185fraud_Berge LLCgas_transport52.94FFort Washakie825141645Information systems manager13254938970train20.974928-0.222521833110.31019
27262019-01-02 08:47:3660416207185fraud_Luettgen PLCgas_transport82.08FFort Washakie825141645Information systems manager13254940560train20.974928-0.22252183321.7900
28822019-01-02 12:38:1460416207185fraud_Daugherty LLCkids_pets34.79FFort Washakie825141645Information systems manager13255078940train20.974928-0.222521123387.2003
29072019-01-02 13:10:4660416207185fraud_Beier and Sonshome27.18FFort Washakie825141645Information systems manager13255098460train20.974928-0.222521133374.2100
+
+ + + + +```python +sns.barplot(data=df,x='is_fraud',y='hours_diff_bet_trans',ci=None) +``` + + + + + + + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_40_1.png) + + + + +```python + +df = df.sort_values(['cc_num', 'trans_date_trans_time']) +df = df.set_index('trans_date_trans_time') + +# 1. Transaction Velocity (Rolling Count) +# Identifies sudden bursts in card usage +df['trans_count_24h'] = df.groupby('cc_num')['amt'].rolling('24h').count().shift(1).reset_index(0, drop=True).fillna(0) + +# 2. Recent Spending Baseline (Rolling Mean) +# Needed for the 24h ratio calculation +df['avg_amt_24h'] = df.groupby('cc_num')['amt'].rolling('24h').mean().shift(1).reset_index(0, drop=True).fillna(df['amt']) + +# 3. All-time Spending Profile (Expanding Mean) +# Captures long-term user behavior +df['user_avg_amt_all_time'] = df.groupby('cc_num')['amt'].transform(lambda x: x.expanding().mean().shift(1)).fillna(df['amt']) + +# Reset index to restore dataframe structure +df = df.reset_index() +``` + + +```python +# Identifies spikes relative to recent 24-hour activity (Burst Detection) +df['amt_to_avg_ratio_24h'] = df['amt'] / df['avg_amt_24h'] + +# Identifies spikes relative to long-term behavior (Anomaly Detection) +df['amt_relative_to_all_time'] = df['amt'] / df['user_avg_amt_all_time'] +``` + + +```python +# Apply cyclical encoding +df['hour_sin'] = np.sin(2 * np.pi * df['hour'] / 24) +df['hour_cos'] = np.cos(2 * np.pi * df['hour'] / 24) + +df.drop(['hour'], axis=1, inplace=True) + +df.drop('day_of_week', axis=1, inplace=True) +``` + + +```python +df = df.sort_values('trans_date_trans_time') +df['hours_diff_bet_trans_log'] = np.log1p(df['hours_diff_bet_trans']) +df.drop('hours_diff_bet_trans', axis=1, inplace=True) +``` + + +```python +df +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timecc_nummerchantcategoryamtgendercityzipcity_popjobunix_timeis_fraudsplitday_sinday_cosagedistance_kmgender_bintrans_count_24havg_amt_24huser_avg_amt_all_timeamt_to_avg_ratio_24hamt_relative_to_all_timehour_sinhour_coshours_diff_bet_trans_log
8395732019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97FMoravian Falls286543495Psychologist, counselling13253760180train0.7818310.6234903178.6006.095.6416674.9700000.0519651.0000000.0000001.0000000.000000
681602019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23FOrient99160149Special educational needs teacher13253760440train0.7818310.6234904130.2101.012.110000107.2300008.8546661.0000000.0000001.0000000.000000
4436312019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11MMalad City832524154Nature conservation officer13253760510train0.7818310.62349057108.2115.0445.778000220.1100000.4937661.0000000.0000001.0000000.000000
9748842019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00MBoulder596321939Patent attorney13253760760train0.7818310.6234905295.6715.042.45400045.0000001.0599711.0000000.0000001.0000000.000000
7026642019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96MDoe Hill2443399Dance movement psychotherapist13253761860train0.7818310.6234903377.5616.078.12000041.9600000.5371221.0000000.0000001.0000000.000000
.................................................................................
3946142020-12-31 23:59:0730560609640617fraud_Reilly and Sonshealth_fitness43.77MLuray63453519Town planner13885343470test0.433884-0.9009695477.0314.066.84250062.3564360.6548230.701932-0.2588190.9659261.609438
10386572020-12-31 23:59:093556613125071656fraud_Hoppe-Parisiankids_pets111.84MLake Jackson7756628739Futures trader13885343490test0.433884-0.90096921100.0718.050.59250050.4355162.2106042.217485-0.2588190.9659261.098612
16086072020-12-31 23:59:156011724471098086fraud_Rau-Robelkids_pets86.88FBurbank993233684Musician13885343550test0.433884-0.9009693980.7608.094.29875088.7047970.9213270.979428-0.2588190.9659260.000000
1464632020-12-31 23:59:244079773899158fraud_Breitenberg LLCtravel7.99MMesa83643129Cartographer13885343640test0.433884-0.9009695552.9313.071.22000061.0162050.1121880.130949-0.2588190.9659261.386294
12581292020-12-31 23:59:344170689372027579fraud_Dare-Marvinentertainment38.13MEdmond73034116001Media buyer13885343740test0.433884-0.9009692772.44110.024.51800061.7441921.5551840.617548-0.2588190.9659260.693147
+

1852394 rows Γ— 26 columns

+
+ + + + +```python +df.drop(columns=['cc_num','city_pop','unix_time','zip','merchant','gender'],inplace=True) +``` + + +```python +df.columns +``` + + + + + Index(['trans_date_trans_time', 'category', 'amt', 'city', 'job', 'is_fraud', + 'split', 'day_sin', 'day_cos', 'age', 'distance_km', 'gender_bin', + 'trans_count_24h', 'avg_amt_24h', 'user_avg_amt_all_time', + 'amt_to_avg_ratio_24h', 'amt_relative_to_all_time', 'hour_sin', + 'hour_cos', 'hours_diff_bet_trans_log'], + dtype='object') + + + + +```python +df=df[['trans_date_trans_time','job','age','gender_bin','category','distance_km','hour_sin','hour_cos','day_sin','day_cos','hours_diff_bet_trans_log','amt','trans_count_24h','amt_to_avg_ratio_24h','amt_relative_to_all_time','is_fraud','split']] +``` + + +```python +df.to_csv('cleaned.csv',index=False) +``` + + +```python +df.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timejobagegender_bincategorydistance_kmhour_sinhour_cosday_sinday_coshours_diff_bet_trans_logamttrans_count_24hamt_to_avg_ratio_24hamt_relative_to_all_timeis_fraudsplit
8395732019-01-01 00:00:18Psychologist, counselling310misc_net78.600.01.00.7818310.623490.04.976.00.0519651.00train
681602019-01-01 00:00:44Special educational needs teacher410grocery_pos30.210.01.00.7818310.623490.0107.231.08.8546661.00train
4436312019-01-01 00:00:51Nature conservation officer571entertainment108.210.01.00.7818310.623490.0220.115.00.4937661.00train
9748842019-01-01 00:01:16Patent attorney521gas_transport95.670.01.00.7818310.623490.045.005.01.0599711.00train
7026642019-01-01 00:03:06Dance movement psychotherapist331misc_pos77.560.01.00.7818310.623490.041.966.00.5371221.00train
+
+ + + + +```python +df['job'].unique() +``` + + + + + array(['Psychologist, counselling', 'Special educational needs teacher', + 'Nature conservation officer', 'Patent attorney', + 'Dance movement psychotherapist', 'Transport planner', + 'Arboriculturist', 'Designer, multimedia', + 'Public affairs consultant', 'Pathologist', 'IT trainer', + 'Systems developer', 'Engineer, land', 'Systems analyst', + 'Naval architect', 'Radiographer, diagnostic', + 'Programme researcher, broadcasting/film/video', 'Energy engineer', + 'Event organiser', 'Operational researcher', 'Market researcher', + 'Probation officer', 'Leisure centre manager', + 'Corporate investment banker', 'Therapist, occupational', + 'Call centre manager', 'Police officer', + 'Education officer, museum', 'Physiotherapist', 'Network engineer', + 'Forensic psychologist', 'Geochemist', + 'Armed forces training and education officer', + 'Designer, furniture', 'Optician, dispensing', + 'Psychologist, forensic', 'Librarian, public', 'Fine artist', + 'Scientist, research (maths)', 'Research officer, trade union', + 'Tourism officer', 'Human resources officer', 'Surveyor, minerals', + 'Applications developer', 'Video editor', 'Curator', + 'Research officer, political party', 'Engineer, mining', + 'Education officer, community', 'Physicist, medical', + 'Amenity horticulturist', 'Electrical engineer', + 'Television camera operator', 'Higher education careers adviser', + 'Ambulance person', 'Dealer', 'Paediatric nurse', + 'Trading standards officer', 'Engineer, technical sales', + 'Designer, jewellery', 'Clinical biochemist', + 'Engineer, electronics', 'Water engineer', 'Science writer', + 'Film/video editor', 'Solicitor, Scotland', + 'Product/process development scientist', 'Tree surgeon', + 'Careers information officer', 'Geologist, engineering', + 'Counsellor', 'Freight forwarder', + 'Senior tax professional/tax inspector', + 'Engineer, broadcasting (operations)', + 'English as a second language teacher', 'Economist', + 'Child psychotherapist', 'Claims inspector/assessor', + 'Tourist information centre manager', + 'Exhibitions officer, museum/gallery', 'Location manager', + 'Engineer, biomedical', 'Research scientist (physical sciences)', + 'Purchasing manager', 'Editor, magazine features', + 'Operations geologist', 'Interpreter', 'Engineering geologist', + 'Agricultural consultant', 'Paramedic', 'Financial adviser', + 'Administrator, education', 'Educational psychologist', + 'Financial trader', 'Audiological scientist', + 'Scientist, audiological', + 'Administrator, charities/voluntary organisations', + 'Health service manager', 'Retail merchandiser', + 'Telecommunications researcher', 'Exercise physiologist', + 'Accounting technician', 'Product designer', + 'Waste management officer', 'Mining engineer', 'Surgeon', + 'Therapist, horticultural', 'Environmental consultant', + 'Broadcast presenter', 'Producer, radio', + 'Engineer, communications', + 'Historic buildings inspector/conservation officer', + 'Materials engineer', 'Teacher, English as a foreign language', + 'Health visitor', 'Medical secretary', 'Theatre director', + 'Technical brewer', 'Land/geomatics surveyor', + 'Engineer, structural', 'Diagnostic radiographer', + 'Television production assistant', 'Medical sales representative', + 'Building control surveyor', 'Therapist, sports', + 'Structural engineer', 'Commercial/residential surveyor', + 'Database administrator', 'Exhibition designer', + 'Training and development officer', 'Mechanical engineer', + 'Medical physicist', 'Administrator', 'Mudlogger', + 'Fisheries officer', 'Conservator, museum/gallery', + 'Programmer, multimedia', 'Cytogeneticist', + 'Multimedia programmer', 'Counselling psychologist', 'Chiropodist', + 'Teacher, early years/pre', 'Cartographer', 'Pensions consultant', + 'Primary school teacher', 'Electronics engineer', + 'Museum/gallery exhibitions officer', 'Air broker', + 'Advertising account executive', 'Chemical engineer', + 'Advertising account planner', + 'Chartered legal executive (England and Wales)', + 'Psychiatric nurse', 'Secondary school teacher', + 'Librarian, academic', 'Embryologist, clinical', 'Immunologist', + 'Television floor manager', 'Contractor', 'Health physicist', + 'Copy', 'Bookseller', 'Land', 'Chartered loss adjuster', + 'Occupational psychologist', 'Facilities manager', + 'Further education lecturer', 'Archivist', 'Investment analyst', + 'Engineer, building services', 'Psychologist, sport and exercise', + 'Journalist, newspaper', 'Doctor, hospital', 'Phytotherapist', + 'Pharmacologist', 'Horticultural therapist', 'Hydrologist', + 'Community arts worker', 'Public house manager', 'Architect', + 'Lexicographer', 'Psychotherapist, child', + 'Teacher, secondary school', 'Toxicologist', + 'Commercial horticulturist', 'Podiatrist', 'Building surveyor', + 'Architectural technologist', 'Editor, film/video', + 'Social researcher', 'Wellsite geologist', 'Minerals surveyor', + 'Designer, ceramics/pottery', 'Mental health nurse', + 'Volunteer coordinator', 'Chief Technology Officer', + 'Camera operator', 'Copywriter, advertising', 'Surveyor, mining', + 'Product manager', "Nurse, children's", 'Pension scheme manager', + 'Archaeologist', 'Sub', 'Designer, interior/spatial', + 'Futures trader', 'Chief Financial Officer', + 'Museum education officer', 'Quantity surveyor', + 'Physiological scientist', 'Loss adjuster, chartered', + 'Pilot, airline', 'Production assistant, radio', + 'Immigration officer', 'Retail banker', + 'Health and safety adviser', 'Teacher, special educational needs', + 'Jewellery designer', 'Community pharmacist', + 'Control and instrumentation engineer', 'Make', + 'Early years teacher', 'Sales professional, IT', + 'Scientist, marine', 'Intelligence analyst', + 'Clinical research associate', 'Administrator, local government', + 'Barrister', 'Engineer, control and instrumentation', + 'Clothing/textile technologist', 'Development worker, community', + 'Art therapist', 'Sales executive', + 'Armed forces logistics/support/administrative officer', + 'Optometrist', 'Insurance underwriter', 'Charity officer', + 'Civil Service fast streamer', 'Retail buyer', + 'Magazine features editor', 'Equities trader', + 'Trade mark attorney', 'Research scientist (life sciences)', + 'Psychotherapist', 'Pharmacist, community', 'Risk analyst', + 'Engineer, maintenance', 'Logistics and distribution manager', + 'Water quality scientist', 'Lecturer, further education', + 'Production assistant, television', 'Tour manager', + 'Music therapist', 'Surveyor, land/geomatics', + 'Engineer, production', 'Acupuncturist', 'Hospital doctor', + 'Teacher, primary school', 'Accountant, chartered public finance', + 'Illustrator', 'Scientist, physiological', + 'Scientist, research (physical sciences)', 'Buyer, industrial', + 'Radio producer', 'Manufacturing engineer', 'Animal technologist', + 'Production engineer', 'Biochemist, clinical', + 'Engineer, manufacturing', 'Comptroller', + 'General practice doctor', 'Designer, industrial/product', + 'Prison officer', 'Merchandiser, retail', 'Engineer, drilling', + 'Engineer, petroleum', 'Cabin crew', 'Commissioning editor', + 'Accountant, chartered certified', 'Local government officer', + 'Professor Emeritus', 'Press sub', + 'Chartered public finance accountant', 'Writer', + 'Chief Executive Officer', 'Occupational hygienist', + 'Doctor, general practice', 'Community education officer', + 'Landscape architect', 'Occupational therapist', + 'Special effects artist', 'Civil engineer, contracting', + "Barrister's clerk", 'Travel agency manager', + 'Associate Professor', 'Neurosurgeon', 'Plant breeder/geneticist', + 'Radio broadcast assistant', 'Field seismologist', + 'Industrial/product designer', 'Metallurgist', + "Politician's assistant", 'Insurance claims handler', + 'Theme park manager', 'Gaffer', 'Chief Strategy Officer', + 'Heritage manager', 'Ceramics designer', 'Animator', + 'Oceanographer', 'Colour technologist', 'Engineer, agricultural', + 'Therapist, drama', 'Orthoptist', 'Learning mentor', + 'Arts development officer', 'Biomedical engineer', + 'Race relations officer', 'Therapist, music', 'Retail manager', + 'Furniture designer', 'Building services engineer', + 'Maintenance engineer', 'Aid worker', 'Editor, commissioning', + 'Private music teacher', 'Scientist, biomedical', + 'Public relations account executive', 'Dispensing optician', + 'Advice worker', 'Hydrographic surveyor', 'Geoscientist', + 'Environmental health practitioner', 'Learning disability nurse', + 'Chief Operating Officer', 'Scientific laboratory technician', + 'Records manager', 'Barista', 'Marketing executive', + 'Tax inspector', 'Musician', 'Therapist, art', + 'Engineer, automotive', 'Clinical psychologist', 'Warden/ranger', + 'Surveyor, rural practice', 'Sport and exercise psychologist', + 'Education administrator', 'Chief of Staff', + 'Nurse, mental health', 'Music tutor', + 'Planning and development surveyor', + 'Teaching laboratory technician', 'Chief Marketing Officer', + 'Theatre manager', 'Quarry manager', + 'Interior and spatial designer', 'Lecturer, higher education', + 'Regulatory affairs officer', 'Secretary/administrator', + 'Chemist, analytical', 'Designer, exhibition/display', + 'Pharmacist, hospital', 'Site engineer', + 'Equality and diversity officer', 'Public librarian', + 'Town planner', 'Chartered accountant', 'Programmer, applications', + 'Manufacturing systems engineer', 'Web designer', + 'Community development worker', 'Animal nutritionist', + 'Petroleum engineer', 'Information systems manager', + 'Press photographer', 'Insurance risk surveyor', 'Soil scientist', + 'Buyer, retail', 'Public relations officer', + 'Health promotion specialist', 'Psychiatrist', + 'Visual merchandiser', 'Rural practice surveyor', 'Hotel manager', + 'Communications engineer', 'Insurance broker', + 'Radiographer, therapeutic', 'Set designer', 'Tax adviser', + 'Drilling engineer', 'Fitness centre manager', 'Farm manager', + 'Management consultant', 'Energy manager', + 'Museum/gallery conservator', 'Herbalist', 'Osteopath', + 'Statistician', 'Hospital pharmacist', 'Estate manager/land agent', + 'Sports development officer', 'Investment banker, corporate', + 'Biomedical scientist', 'Television/film/video producer', + 'Nutritional therapist', 'Company secretary', 'Production manager', + 'Magazine journalist', 'Media buyer', 'Data scientist', + 'Engineer, civil (contracting)', 'Herpetologist', + 'Garment/textile technologist', 'Scientist, research (medical)', + 'Civil Service administrator', 'Airline pilot', 'Textile designer', + 'Environmental manager', 'Furniture conservator/restorer', + 'Horticultural consultant', 'Firefighter', + 'Geophysicist/field seismologist', 'Psychologist, clinical', + 'Development worker, international aid', 'Sports administrator', + 'IT consultant', 'Presenter, broadcasting', + 'Outdoor activities/education manager', 'Field trials officer', + 'Social research officer, government', + 'English as a foreign language teacher', + 'Restaurant manager, fast food', 'Hydrogeologist', + 'Research scientist (medical)', 'Designer, television/film set', + 'Geneticist, molecular', 'Designer, textile', + 'Licensed conveyancer', 'Emergency planning/management officer', + 'Geologist, wellsite', 'Air cabin crew', 'Seismic interpreter', + 'Surveyor, hydrographic', 'Charity fundraiser', 'Stage manager', + 'Aeronautical engineer', 'Glass blower/designer', 'Ecologist', + 'Horticulturist, commercial', 'Research scientist (maths)', + 'Engineer, aeronautical', + 'Conservation officer, historic buildings', 'Art gallery manager', + 'Advertising copywriter', 'Engineer, civil (consulting)', + 'Oncologist', 'Engineer, materials', + 'Scientist, clinical (histocompatibility and immunogenetics)', + 'Investment banker, operational', 'Medical technical officer', + 'Academic librarian', 'Artist', 'Clinical cytogeneticist', + 'TEFL teacher', 'Administrator, arts', 'Teacher, adult education', + 'Catering manager', 'Environmental education officer', + 'Conservator, furniture', 'Analytical chemist', + 'Broadcast engineer', 'Media planner', 'Lawyer', + 'Producer, television/film/video', + 'Armed forces technical officer', 'Engineer, site', + 'Contracting civil engineer', 'Veterinary surgeon', + 'Sales promotion account executive', 'Broadcast journalist', + 'Dancer', 'Forest/woodland manager', 'Personnel officer', + 'Industrial buyer', 'Accountant, chartered', + 'Air traffic controller', 'Careers adviser', 'Information officer', + 'Ship broker', 'Legal secretary', 'Homeopath', 'Solicitor', + 'Warehouse manager', 'Engineer, water', + 'Operational investment banker', 'Software engineer'], dtype=object) + + + + +```python +df['category'].unique() +``` + + + + + array(['misc_net', 'grocery_pos', 'entertainment', 'gas_transport', + 'misc_pos', 'grocery_net', 'shopping_net', 'shopping_pos', + 'food_dining', 'personal_care', 'health_fitness', 'travel', + 'kids_pets', 'home'], dtype=object) + + + + +```python +df=pd.read_csv('cleaned.csv') +``` + + +```python +df.head() +``` + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
trans_date_trans_timejobagegender_bincategorydistance_kmhour_sinhour_cosday_sinday_coshours_diff_bet_trans_logamttrans_count_24hamt_to_avg_ratio_24hamt_relative_to_all_timeis_fraudsplit
02019-01-01 00:00:18Psychologist, counselling310misc_net78.600.01.00.7818310.623490.04.976.00.0519651.00train
12019-01-01 00:00:44Special educational needs teacher410grocery_pos30.210.01.00.7818310.623490.0107.231.08.8546661.00train
22019-01-01 00:00:51Nature conservation officer571entertainment108.210.01.00.7818310.623490.0220.115.00.4937661.00train
32019-01-01 00:01:16Patent attorney521gas_transport95.670.01.00.7818310.623490.045.005.01.0599711.00train
42019-01-01 00:03:06Dance movement psychotherapist331misc_pos77.560.01.00.7818310.623490.041.966.00.5371221.00train
+
+ + + + +```python +from category_encoders import WOEEncoder +from xgboost import XGBClassifier +df['amt_log'] = np.log1p(df['amt']) +# 4. TEMPORAL SPLIT (75% Train, 25% Test) +train_size = int(len(df) * 0.75) +train_df = df.iloc[:train_size].copy() +test_df = df.iloc[train_size:].copy() + +# 5. Weight of Evidence Encoding (Fit on Train ONLY to prevent leakage) +woe_cols = ['job', 'category'] +encoder = WOEEncoder(cols=woe_cols) + +# Fit on training data and target +encoder.fit(train_df[woe_cols], train_df['is_fraud']) + +# Transform both sets +train_encoded = encoder.transform(train_df[woe_cols]).add_suffix('_woe') +test_encoded = encoder.transform(test_df[woe_cols]).add_suffix('_woe') + +train_df = pd.concat([train_df, train_encoded], axis=1) +test_df = pd.concat([test_df, test_encoded], axis=1) + +# 6. Final Feature Selection +features = [ + 'amt_log', # Normalized transaction value + 'age', # User demographic + 'gender_bin', # Binary demographic + 'distance_km', # Spatial anomaly indicator + 'hours_diff_bet_trans_log', # Log-transformed velocity signal + 'hour_sin', 'hour_cos', # Cyclical daily time + 'day_sin', 'day_cos', # Cyclical weekly time (ADD THESE) + 'job_woe', # Risk-encoded profession + 'category_woe', # Risk-encoded category + 'trans_count_24h', # Recent transaction burst count + 'amt_to_avg_ratio_24h', # Deviation from 24h spending norm + 'amt_relative_to_all_time' # Deviation from long-term spending norm +] + +X_train, y_train = train_df[features], train_df['is_fraud'] +X_test, y_test = test_df[features], test_df['is_fraud'] + +# 7. MODEL TRAINING: COST-SENSITIVE XGBOOST +# Calculate scale_pos_weight to handle 0.5% imbalance +imbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum() +``` + + +```python +from sklearn.model_selection import GridSearchCV +import warnings +warnings.filterwarnings('ignore', category=UserWarning, module='xgboost') # +# 1. Define Parameter Grid for Optimization +param_grid = { + 'max_depth': [4, 6, 8], + 'learning_rate': [0.01, 0.05, 0.1], + 'n_estimators': [100, 500], + 'subsample': [0.8], + 'colsample_bytree': [0.8] +} + +# 2. Setup TimeSeriesSplit +# This ensures each fold uses a training set that precedes the validation set in time +tscv = TimeSeriesSplit(n_splits=5) + +# 3. Run GridSearchCV +# Scoring is set to 'average_precision' (PR-AUC) as it is more robust than ROC-AUC for fraud +grid_search = GridSearchCV( + estimator=XGBClassifier( + scale_pos_weight=imbalance_ratio, + tree_method='hist', + device='cuda', + random_state=42 + + ), + param_grid=param_grid, + cv=tscv, + scoring='average_precision', + verbose=1, + n_jobs=-1 +) + + +grid_search.fit(X_train, y_train) + +# 4. Extract Best Parameters +print(f"Best Parameters: {grid_search.best_params_}") +best_model = grid_search.best_estimator_ + +# 5. Final Training +# Train on the entire 75% training set using optimized parameters +best_model.fit(X_train, y_train) + +# 6. Final Evaluation on 25% Unseen Test Set +y_pred_proba = best_model.predict_proba(X_test)[:, 1] + +# Precision-Recall Analysis +precision, recall, thresholds = precision_recall_curve(y_test, y_pred_proba) + +print(f"Final Test PR-AUC: {roc_auc_score(y_test, y_pred_proba):.4f}") +``` + + Fitting 5 folds for each of 18 candidates, totalling 90 fits + + + /usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:06] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu. + Potential solutions: + - Use a data structure that matches the device ordinal in the booster. + - Set the device for booster before call to inplace_predict. + + This warning will only be shown once. + + return func(**kwargs) + /usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:07] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu. + Potential solutions: + - Use a data structure that matches the device ordinal in the booster. + - Set the device for booster before call to inplace_predict. + + This warning will only be shown once. + + return func(**kwargs) + /usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:08] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu. + Potential solutions: + - Use a data structure that matches the device ordinal in the booster. + - Set the device for booster before call to inplace_predict. + + This warning will only be shown once. + + return func(**kwargs) + /usr/local/lib/python3.12/dist-packages/xgboost/core.py:774: UserWarning: [19:40:09] WARNING: /workspace/src/common/error_msg.cc:41: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu. + Potential solutions: + - Use a data structure that matches the device ordinal in the booster. + - Set the device for booster before call to inplace_predict. + + This warning will only be shown once. + + return func(**kwargs) + + + Best Parameters: {'colsample_bytree': 0.8, 'learning_rate': 0.1, 'max_depth': 8, 'n_estimators': 500, 'subsample': 0.8} + Final Test PR-AUC: 0.9978 + + + +```python +# Select threshold where recall is at least 80% while maximizing precision +idx = np.where(recall >= 0.80)[0][-1] +optimal_threshold = thresholds[idx] + +y_final_pred = (y_pred_proba >= optimal_threshold).astype(int) +print(f"Optimal Threshold: {optimal_threshold}") +print(classification_report(y_test, y_final_pred)) +``` + + Optimal Threshold: 0.9016819596290588 + precision recall f1-score support + + 0 1.00 1.00 1.00 461339 + 1 0.96 0.80 0.87 1760 + + accuracy 1.00 463099 + macro avg 0.98 0.90 0.94 463099 + weighted avg 1.00 1.00 1.00 463099 + + + + +```python +import matplotlib.pyplot as plt +from sklearn.metrics import roc_curve, auc, precision_recall_curve, average_precision_score + +# Calculate ROC data +fpr, tpr, roc_thresholds = roc_curve(y_test, y_pred_proba) +roc_auc = auc(fpr, tpr) + +# Calculate PR data +precision_vals, recall_vals, pr_thresholds = precision_recall_curve(y_test, y_pred_proba) +pr_auc = average_precision_score(y_test, y_pred_proba) + +# Plotting +fig, ax = plt.subplots(1, 2, figsize=(16, 6)) + +# ROC Curve +ax[0].plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (area = {roc_auc:.4f})') +ax[0].plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') +ax[0].set_xlabel('False Positive Rate (Friction)') +ax[0].set_ylabel('True Positive Rate (Fraud Caught)') +ax[0].set_title('ROC Curve') +ax[0].legend(loc="lower right") + +# Precision-Recall Curve +ax[1].plot(recall_vals, precision_vals, color='blue', lw=2, label=f'PR curve (area = {pr_auc:.4f})') +ax[1].set_xlabel('Recall (Fraud Caught)') +ax[1].set_ylabel('Precision (Flag Accuracy)') +ax[1].set_title('Precision-Recall Curve') +ax[1].legend(loc="lower left") + +plt.show() +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_58_0.png) + + + + +```python +from sklearn.metrics import roc_curve, precision_recall_curve + +# Get values +fpr, tpr, _ = roc_curve(y_test, y_pred_proba) +precision, recall, _ = precision_recall_curve(y_test, y_pred_proba) + +# Plotting +import matplotlib.pyplot as plt +fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5)) + +# ROC Plot +ax1.plot(fpr, tpr, label='XGBoost (AUC = 0.998)') +ax1.set_title('ROC Curve (Catching Fraud vs. Friction)') +ax1.set_xlabel('False Positive Rate (Blocked Customers)') +ax1.set_ylabel('True Positive Rate (Caught Fraud)') + +# PR Plot +ax2.plot(recall, precision, label='XGBoost (PR-AUC = 0.998)') +ax2.set_title('PR Curve (Confidence vs. Catch Rate)') +ax2.set_xlabel('Recall (Fraud Caught)') +ax2.set_ylabel('Precision (Confidence of Alert)') + +plt.show() +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_59_0.png) + + + + +```python +import matplotlib.pyplot as plt + +# Extract feature importance based on 'gain' +importance = best_model.get_booster().get_score(importance_type='gain') +# Sort features by importance +sorted_importance = {k: v for k, v in sorted(importance.items(), key=lambda item: item[1], reverse=True)} + +# Plotting top 10 features +plt.figure(figsize=(10, 6)) +plt.barh(list(sorted_importance.keys())[:10], list(sorted_importance.values())[:10], color='skyblue') +plt.gca().invert_yaxis() +plt.xlabel('Importance Score (Gain)') +plt.title('Top 10 Features: Validating Behavioral Engineering') +plt.show() +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_60_0.png) + + + + +```python +# 1. Define Business Parameters +# cost_per_fp: Estimated cost of manual review + customer friction (standard range: $2 - $10) +cost_per_fp = 5.00 + +# 2. Identify True Positives and False Positives at the Optimal Threshold +# Based on the selected optimal threshold of 0.895 +optimal_threshold = 0.8953993320465088 +y_final_pred = (y_pred_proba >= optimal_threshold).astype(int) + +# TP indices: Predicted as fraud and actually fraud +tp_indices = (y_final_pred == 1) & (y_test == 1) +# FP indices: Predicted as fraud but actually legitimate +fp_indices = (y_final_pred == 1) & (y_test == 0) + +# 3. Aggregate Financial Impact +# test_df must contain the original 'amt' column before log transformation +fraud_loss_prevented = test_df.loc[tp_indices, 'amt'].sum() +total_fp_count = fp_indices.sum() +operational_friction_cost = total_fp_count * cost_per_fp + +# 4. Net Business Value +net_savings = fraud_loss_prevented - operational_friction_cost + +print(f"Financial Summary for Test Period:") +print(f"----------------------------------") +print(f"Fraud Loss Prevented (TP Savings): ${fraud_loss_prevented:,.2f}") +print(f"False Positive Count: {total_fp_count}") +print(f"Estimated Operational Cost (FP): ${operational_friction_cost:,.2f}") +print(f"Net Model Business Value: ${net_savings:,.2f}") +``` + + Financial Summary for Test Period: + ---------------------------------- + Fraud Loss Prevented (TP Savings): $810,775.56 + False Positive Count: 61 + Estimated Operational Cost (FP): $305.00 + Net Model Business Value: $810,470.56 + + + +```python +%%html +

Business Impact & ROI

+

The financial summary translates these technical metrics into a clear business case.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MetricFinancial ValueBusiness Implication
Fraud Loss Prevented$810,775.56The direct capital saved by blocking transactions correctly identified as fraud.
False Positive Count61Out of ~463,000 transactions, only 61 legitimate users were inconvenienced.
Operational Friction Cost$305.00The low overhead for manual reviews and customer service calls regarding blocked cards.
Net Business Value$810,470.56The total ROI of the model for the test period after accounting for operational costs.
+ +``` + + +

Business Impact & ROI

+

The financial summary translates these technical metrics into a clear business case.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MetricFinancial ValueBusiness Implication
Fraud Loss Prevented$810,775.56The direct capital saved by blocking transactions correctly identified as fraud.
False Positive Count61Out of ~463,000 transactions, only 61 legitimate users were inconvenienced.
Operational Friction Cost$305.00The low overhead for manual reviews and customer service calls regarding blocked cards.
Net Business Value$810,470.56The total ROI of the model for the test period after accounting for operational costs.
+ + + + +### Business Impact & ROI + +The financial summary translates these technical metrics into a clear business case. + +| Metric | Financial Value | Business Implication | +|-----------------------------|-----------------|--------------------------------------------------------------------------------------| +| **Fraud Loss Prevented** | **$810,775.56** | The direct capital saved by blocking transactions correctly identified as fraud. | +| **False Positive Count** | **61** | Out of ~463,000 transactions, only 61 legitimate users were inconvenienced. | +| **Operational Friction Cost** | **$305.00** | The low overhead for manual reviews and customer service calls regarding blocked cards.| +| **Net Business Value** | **$810,470.56** | The total ROI of the model for the test period after accounting for operational costs. | + + +**Conclusion & Business Impact** + +**Technical Summary** +Implemented an industry-standard fraud detection pipeline using the Sparkov simulated dataset (Jan 2019 – Dec 2020). The project transitioned from a baseline model with significant data leakage to a production-ready system utilizing temporal validation and behavioral feature engineering. + +**Key Technical Implementations** + +* **Temporal Validation**: Replaced standard random train-test splits with a time-series split (75% train / 25% test). This eliminated "look-ahead bias," ensuring the model only learned from historical data to predict future transactions. +* **Behavioral Feature Engineering**: Developed 14 high-signal features, including: +* **Velocity Metrics**: 24-hour rolling transaction counts and spending averages to detect automated "burst" fraud. +* **Geospatial Analysis**: Haversine distance calculations between cardholder residence and merchant location. +* **Cyclical Encoding**: Sine/Cosine transformations of time and day to capture periodic fraud patterns (e.g., late-night surges). +* **Risk Profiling**: Weight of Evidence (WoE) encoding for high-cardinality features like `job` and `category`. + + + +**Model Optimization & Imbalance Management** +Used cost-sensitive XGBoost with `scale_pos_weight` to address the 0.5% fraud class imbalance. Hyperparameters were tuned via `TimeSeriesSplit` cross-validation, prioritizing Area Under the Precision-Recall Curve (PR-AUC) over ROC-AUC to accurately reflect operational performance in a high-skew environment. + +**Performance & Business Results** + +* **Final Precision**: 0.97 +* **Final Recall**: 0.80 +* **Optimal Threshold**: 0.895 +* **PR-AUC**: 0.9980 + +**Operational Impact** +The finalized model achieved a 32% increase in precision compared to the baseline (0.65 to 0.97). By optimizing the classification threshold to 0.895, the system captures 80% of fraudulent activity while maintaining an exceptionally low false positive rate. In a production environment, this translates to a drastic reduction in customer friction (unnecessary card blocks) and lower operational costs for manual transaction review, without significant compromise to fraud detection coverage. + +**Precision-Recall Trade-off** + +**Performance Shift** + +* **Baseline Model**: Precision 0.65 | Recall 0.84 +* **Optimized Model**: Precision 0.97 | Recall 0.80 + +**Strategic Rationalization** +The optimization prioritized Precision to mitigate operational costs and customer friction. In the baseline model, 35% of fraud alerts were false positives. The optimized model reduced false positives to 3%, ensuring that 97% of automated card blocks are legitimate fraud cases. + +**Business Impact** +The 4% reduction in Recall (fraud detection coverage) is offset by a 32% gain in Precision (alert accuracy). This configuration minimizes the volume of manual reviews required by security analysts and prevents the unnecessary freezing of legitimate customer accounts, which is the primary driver of churn in retail banking. + +**Threshold Selection** +The classification threshold was moved from 0.50 to 0.895. This specific operating point on the Precision-Recall curve represents the maximum attainable Precision before Recall degrades below the 80% institutional requirement. + +# Pipeline + + +```python +from sklearn.pipeline import Pipeline +from sklearn.compose import ColumnTransformer +from sklearn.preprocessing import RobustScaler +from category_encoders import WOEEncoder +from xgboost import XGBClassifier +import joblib +# 1. Define the complete feature list as used in the successful training +# Ensure these match exactly the names in your train_df and test_df +categorical_features = ['job', 'category'] +numeric_features = [ + 'amt_log', 'age', 'gender_bin', 'distance_km', + 'hours_diff_bet_trans_log', 'hour_sin', 'hour_cos', + 'day_sin', 'day_cos', 'trans_count_24h', + 'amt_to_avg_ratio_24h', 'amt_relative_to_all_time' +] + +# 2. Re-define X_train and X_test to include ALL required columns +# This step ensures 'job' and 'category' are present for the WOEEncoder +features = categorical_features + numeric_features +X_train = train_df[features] +y_train = train_df['is_fraud'] +X_test = test_df[features] +y_test = test_df['is_fraud'] + +# 3. Define Preprocessing Transformer +preprocessor = ColumnTransformer( + transformers=[ + ('cat', WOEEncoder(), categorical_features), + ('num', RobustScaler(), numeric_features) + ] +) + +# 4. Create the Integrated Pipeline +# Note: Ensure imbalance_ratio is calculated from the current y_train +imbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum() + +pipeline = Pipeline(steps=[ + ('preprocessor', preprocessor), + ('classifier', XGBClassifier( + colsample_bytree=0.8, + learning_rate=0.1, + max_depth=8, + n_estimators=500, + subsample=0.8, + scale_pos_weight=imbalance_ratio, + tree_method='hist', + random_state=42 + )) +]) + +# 5. Fit the Pipeline +# This will now find the 'job' column successfully +pipeline.fit(X_train, y_train) + +# 6. Serialization and Inference +joblib.dump(pipeline, 'fraud_detection_model_v1.pkl') +y_proba = pipeline.predict_proba(X_test)[:, 1] +y_pred = (y_proba >= 0.9016).astype(int) # Using optimized threshold +``` + + +```python +import shap +import pandas as pd + +# 1. Get the model and preprocessor +model = pipeline.named_steps['classifier'] +preprocessor = pipeline.named_steps['preprocessor'] + +# 2. Initialize Explainer +explainer = shap.TreeExplainer(model) + +# 3. Transform Data (Crucial Step) +# Resolves "You have categorical data..." error by converting strings to numbers first +X_test_transformed = preprocessor.transform(X_test) + +# 4. Calculate SHAP Values +# We sample 1000 rows for performance efficiency +sample_size = 1000 +X_sample = X_test_transformed[:sample_size] +shap_values = explainer.shap_values(X_sample) + +# 5. Visualisation +# Re-map feature names so the plot is readable (not just Feature 0, Feature 1...) +feature_names = categorical_features + numeric_features + +shap.summary_plot(shap_values, X_sample, feature_names=feature_names) +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_68_0.png) + + + +### **Executive Summary** + +The model is **behaviorally driven**, not just rule-based. The dominance of transaction amount (`amt_log`) and spending deviations (`amt_to_avg_ratio_24h`) confirms that the model is successfully catching **"burst" fraud**β€”where fraudsters try to extract maximum value quicklyβ€”rather than just relying on static user demographics. + +--- + +### **Top Feature Interpretations** + +#### **1. `amt_log` (Transaction Amount)** + +* **Importance:** This is the #1 predictor of fraud. +* **Interpretation:** +* **Red Dots (High Value):** Are clustered heavily on the **right side** (positive SHAP value). This means **high transaction amounts strongly push the model to predict "Fraud."** +* **Blue Dots (Low Value):** Are clustered on the **left side**. Small transactions decrease the risk score. + + +* **Business Logic:** Fraudsters aim to maximize theft before the card is blocked. The model has correctly learned that high-value transactions are inherently riskier. + +#### **2. `category` (Merchant Category)** + +* **Importance:** 2nd most important feature. +* **Interpretation:** +* **Red Dots (High Risk Categories):** Since you used Weight of Evidence (WoE) encoding, a "high value" (Red) corresponds to categories with historically high fraud rates (e.g., online shopping, electronics). These dots push the prediction to the right (Fraud). +* **Blue Dots (Safe Categories):** Categories with low fraud rates (e.g., fuel, groceries) push the prediction to the left (Legitimate). + + +* **Validation:** This proves your `WOEEncoder` worked correctly by successfully mapping risky merchant types to higher numerical values. + +#### **3. `amt_to_avg_ratio_24h` (Spending Anomaly)** + +* **Importance:** 3rd most important feature. +* **Interpretation:** +* **Red Dots (High Ratio):** When a transaction is significantly larger than the user's 24-hour average (red dots), the SHAP value is positive. +* **Meaning:** This validates your feature engineering. The model is flagging **anomalous spikes** in spending. If a user usually spends $50 but suddenly spends $500, this feature lights up red and signals fraud. + + + +#### **4. `hour_cos` / `hour_sin` (Time of Day)** + +* **Importance:** 4th & 6th features. +* **Interpretation:** The mixture of red and blue clusters shows that fraud has a specific temporal pattern. +* **Context:** Fraud often occurs during "unsociable hours" (e.g., 2 AM - 5 AM). These features capture those cyclic high-risk time windows. + +--- + +### **Nuanced Observations** + +* **`distance_km` (10th place):** Surprisingly, geospatial distance is less impactful than spending behavior. This suggests that in this dataset, fraudsters are likely using stolen card details online (Card Not Present) or locally, rather than physically traveling long distances. +* **`gender_bin` (Low Importance):** Demographic features like gender are near the bottom. This is **excellent** for fairness. It shows the model judges the *transaction behavior*, not the *person*, which is crucial for regulatory compliance (avoiding bias). + +### **Conclusion for Stakeholders** + +"The SHAP analysis confirms our model is robust and logically sound. It prioritizes **high-value transactions** and **spending anomalies** (sudden spikes against a user's history) as the primary indicators of fraud. It has also successfully learned to identify high-risk merchant categories automatically." + + +```python +# Explain the first transaction in the sample +# 0-index represents the 'is_fraud=1' class contribution +import pandas as pd +import shap + +# 1. Create the missing DataFrame +# We use the numpy array (X_sample) and the list of names (feature_names) from the previous cell +X_sample_df = pd.DataFrame(X_sample, columns=feature_names) + +# 2. Generate the SHAP Explanation Object +# Calling the explainer on a DataFrame automatically attaches feature names to the result +explanation = explainer(X_sample_df) + +# 3. Generate the Waterfall Plot +# We visualize the first transaction in the sample (index 0) +# This shows exactly how each feature pushed the prediction from the "Base Value" to the final score +shap.plots.waterfall(explanation[0]) +``` + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_70_0.png) + + + +### **Transaction Analysis: Legitimate (Safe)** + +The plot visualizes why the model decided this specific transaction (Index 0) was **Legitimate**. + +* **Final Score (): -11.872** +* This is the model's raw output (log-odds). +* A highly negative score translates to a probability near **0%** (0.000007%). +* **Verdict:** The model is extremely confident this is **NOT fraud**. + + +* **Key Drivers (Why it's Safe):** +* **`amt_log` (Blue Bar, -5.63):** This is the massive blue bar pushing the score to the left. It indicates the **transaction amount was low**. In fraud detection, low amounts are strong indicators of normal behavior, and this feature alone did most of the work to clear this transaction. +* **`category` (Blue Bar, -3.56):** The merchant category (likely something like 'grocery_pos' or 'gas_transport' which had low WoE scores) heavily signaled safety. +* **`hour_cos` (Blue Bar, -2.58):** The time of day aligned with normal human activity patterns, further reducing risk. + + +* **Minor Risk Factors:** +* **`hours_diff_bet_trans_log` (Red Bar, +0.47):** There was a tiny push towards fraud here (perhaps the time since the last transaction was slightly shorter than average), but it was completely overwhelmed by the "safe" signals (Amount and Category). + + +```python +import pandas as pd +import numpy as np +import shap + +# 1. Increase sample size to 2000 to ensure we capture the fraud case at index 1006 +sample_size = 2000 + +# 2. Get the numerical data for calculations +# We use the transformed data (from the pipeline) for the math +X_sample_nums = X_test_transformed[:sample_size] + +# 3. Create the DataFrame for the plot (so we get nice feature names) +# Using the feature_names list we created earlier +X_sample_df = pd.DataFrame(X_sample_nums, columns=feature_names) + +# 4. RE-GENERATE the Explanation Object for the larger sample +# This is the critical step that was missing +print(f"Calculating SHAP values for {sample_size} transactions...") +explanation = explainer(X_sample_df) + +# 5. Find the fraud index within this new aligned range +# We slice y_test to match the exact size of the explanation object +sample_y_test = y_test[:sample_size].reset_index(drop=True) +fraud_indices = np.where(sample_y_test == 1)[0] + +# 6. Plot the Waterfall +if len(fraud_indices) > 0: + target_index = fraud_indices[0] + print(f"Success! Plotting Fraud Case at Index: {target_index}") + + # Now explanation[1006] will exist because we calculated 2000 rows + shap.plots.waterfall(explanation[target_index]) +else: + print("No fraud cases found in the first 2000 samples. You may need to increase sample_size to 5000.") +``` + + Calculating SHAP values for 2000 transactions... + Success! Plotting Fraud Case at Index: 1006 + + + + +![png](credit-card-fraud-detection_files/credit-card-fraud-detection_72_1.png) + + + +### **Interpretation of the Fraud Case (Index 1006)** + +**1. The "Smoking Gun" Score** + +* **Final Score ($f(x)$): 20.033** +* Compared to the legitimate transaction score of **-11.87**, this is a massive swing. +* A score of +20 translates to a probability of **99.999% Fraud**. The model has zero doubt about this transaction. + + + +**2. The Anatomy of the Fraud (Red Bars)** +Every major feature pushed the score to the **right** (indicating higher risk). + +* **`amt_log` (+8.83 Impact):** This is the dominant signal. The transaction amount (1.304 on the log scale) was the primary trigger. Fraudsters typically try to drain funds quickly, and your model has learned that high value = high risk. + + +* **`hour_sin` (+2.46 Impact):** The time of day was a strong risk factor. This likely occurred during the "night" window (0-4 AM) where you previously identified a high density of fraud. + + +* +**`job` (+1.72 Impact):** The cardholder's profession had a high Weight of Evidence (WoE) score, suggesting this account type is historically targeted or susceptible. + + +* **`amt_to_avg_ratio_24h` (+1.24 Impact):** This is your **custom engineered feature** in action. It confirms the transaction was not just "large" in general, but large *relative to this specific user's recent history*. This proves the value of your behavioral feature engineering. diff --git a/notebook/credit-card-fraud-detection.pdf b/notebook/credit-card-fraud-detection.pdf new file mode 100755 index 0000000000000000000000000000000000000000..10b31113b6d8a3c4ae8c1f4d3485d9215e30ce3c --- /dev/null +++ b/notebook/credit-card-fraud-detection.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f604362aa5035ae24f4b5b1dcd4d67926ee9246030eba352eb694ca05fd18aa +size 817131 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_23_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_23_0.png new file mode 100755 index 0000000000000000000000000000000000000000..e28f97362a1479761042ee85162af8c89a4e47d4 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_23_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ffca8cc308c74d266feabb0de1ab67df6350b8d4b44798ee4343ae8ff0acf5 +size 41852 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_25_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_25_1.png new file mode 100755 index 0000000000000000000000000000000000000000..02ae1b357cd107c46b796412282216f4df8eb9c3 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_25_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec441ac40b9528b442b4e16b82518a8ce46bc52af746a5c3aa67538f47f4f1e8 +size 14948 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_26_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_26_1.png new file mode 100755 index 0000000000000000000000000000000000000000..e03d8d85ea0aabc7fc59de4cbfcaf0b120bc595f --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_26_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91aec463d1c6742e9f7946858926c1db6c5ee1b775db8d9895366d82e198b465 +size 29858 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_28_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_28_1.png new file mode 100755 index 0000000000000000000000000000000000000000..2537ba824111cdbf8d8e5c5d0586fec729de12d8 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_28_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a8174cf93ce7eaf8c5363509fb410c7759ee1bfce43ee0ceda0543484a594e8 +size 59165 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_29_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_29_1.png new file mode 100755 index 0000000000000000000000000000000000000000..4a1da5b34e002f836e7ac33660d3c295e2469cf8 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_29_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89719cdfbdd9d862df5275f0ef5f164e7325e82b1835b0612620a014aeedad69 +size 60173 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_30_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_30_0.png new file mode 100755 index 0000000000000000000000000000000000000000..d91cd8c10f52ca38d8b570ae7380f670d9c10926 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_30_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0570aba24636b052993e0cb228f5cfd0c7afbb7c5dcb0301a16bf34c3213cbcb +size 59479 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_32_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_32_0.png new file mode 100755 index 0000000000000000000000000000000000000000..2855e71d6f884253678d36c92277a3db9b745c12 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_32_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14a9f5ef856ee4f33aaa939bac4d63f4f262757d8ffdad380756331219ccd8f3 +size 17821 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_34_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_34_1.png new file mode 100755 index 0000000000000000000000000000000000000000..3fe5067bd35f16e54e5a539573839236b5a5c709 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_34_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11d0708dfd6f1403d04f04fb3e64c5d2cfe26b0647c706c85d532fcbcd3aeeca +size 25790 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_40_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_40_1.png new file mode 100755 index 0000000000000000000000000000000000000000..2c4f08d1e86f3aaf006c2eda7c8020603a137d6e --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_40_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:193a7c99eaae83869e529ad3a877c9161a49b2bcc8a3513e4e892f6b429d70bb +size 15408 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_58_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_58_0.png new file mode 100755 index 0000000000000000000000000000000000000000..dbe2c274adff4914a1ee0a2be86f5e24e4f4ebda --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_58_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be3db171ddbd2eb4327efcc89366d6ba50c272fae85efd980a8e8abfb1d21214 +size 63101 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_59_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_59_0.png new file mode 100755 index 0000000000000000000000000000000000000000..d9efaac210f9cf058719962c339e5483cf470e6d --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_59_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48c2d93bf385e18fa45c9c96edeb99443b55d34064285f6a7eb5f3ce5291606d +size 49728 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_60_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_60_0.png new file mode 100755 index 0000000000000000000000000000000000000000..a437c2fb8ed6f299a819ba59c3a59e84ca3bab20 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_60_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb83069c4308aaf513b127ca55e46b1d6bcfccd278a5fe722649493ac6fc9df7 +size 41871 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_68_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_68_0.png new file mode 100755 index 0000000000000000000000000000000000000000..5427b3b063bbc3a1c5045fbc5411439b088858fc --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_68_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa61ce6ca4f34ca70fab9e28bf3465aeac9792248032e6f3f129febe52d00c90 +size 103397 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_70_0.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_70_0.png new file mode 100755 index 0000000000000000000000000000000000000000..78c2be5b8cbc3cfa5faf4ed4ae578124d7b5b994 --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_70_0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f6571337f98d8023d78afa3c172296bbf81c6d2e58b1d96a3973feb69cbc334 +size 65704 diff --git a/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_72_1.png b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_72_1.png new file mode 100755 index 0000000000000000000000000000000000000000..f6142b98ae50d72ae0183b024df2e072197a5a5f --- /dev/null +++ b/notebook/credit-card-fraud-detection_files/credit-card-fraud-detection_72_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af5649b380ca39394ce291aab39bd04aaec5697dc3d376e2808f66ad4442dab8 +size 61561 diff --git a/notebook/dataset/download.py b/notebook/dataset/download.py new file mode 100644 index 0000000000000000000000000000000000000000..2f1c52a3f3792e9f195563505148d6271a6c02dd --- /dev/null +++ b/notebook/dataset/download.py @@ -0,0 +1,27 @@ +#!/usr/bin/env -S uv run --script +# +# /// script +# dependencies = [ +# "pandas", +# "rich", +# ] +# /// +import os +import zipfile + +path = os.path.join(os.path.dirname(__file__), "dataset") +def download_data(): + os.system(f"curl -L -o {path}/fraud-detection.zip https://www.kaggle.com/api/v1/datasets/download/kartik2112/fraud-detection") + + with zipfile.ZipFile(f"{path}/fraud-detection.zip", 'r') as zip_ref: + zip_ref.extractall(f"{path}/") +def combine_data(): + import pandas as pd + train = pd.read_csv(f"{path}/fraud-detection/fraudTrain.csv") + test = pd.read_csv(f"{path}/fraud-detection/fraudTest.csv") + df = pd.concat([train, test], axis=0).reset_index(drop=True) + df.to_csv(f"{path}/fraud.csv", index=False) +if __name__ == "__main__": + download_data() + combine_data() + \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..70dc007c31ae85f08127e962b5ba727d837d6942 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,81 @@ +[project] +name = "payshield-ml" +version = "0.1.0" +description = "Real-Time Financial Fraud Detection System with sub-50ms latency" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + # ML Stack + "xgboost>=2.0.0", + "scikit-learn>=1.4.0", + "shap>=0.50.0", # Use latest stable version compatible with Python 3.12 + "mlflow>=2.10.0", + # API Framework + "fastapi>=0.109.0", + "uvicorn[standard]>=0.27.0", + "pydantic>=2.5.0", + # Data Processing + "pandas>=2.2.0", + "numpy>=2.0.0", + "pyarrow>=15.0.0", + # Feature Store + "redis>=5.0.0", + "hiredis>=2.3.0", + # Utilities + "python-dotenv>=1.0.0", + "pyyaml>=6.0.1", + "joblib>=1.5.0", + "category-encoders>=2.6.0", + "seaborn>=0.13.2", + "matplotlib>=3.10.8", + "pydantic-settings>=2.12.0", + "streamlit>=1.53.0", + "plotly>=6.5.2", + "requests>=2.32.5", + "typing-extensions>=4.15.0", +] + +[project.optional-dependencies] +dev = [ + # Testing + "pytest>=8.0.0", + "pytest-asyncio>=0.23.0", + "pytest-cov>=4.1.0", + + # Type Checking & Linting + "mypy>=1.8.0", + "ruff>=0.1.0", + + # Notebook Support + "jupyter>=1.0.0", + "ipykernel>=6.29.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pytest.ini_options] +testpaths = ["tests"] +python_files = "test_*.py" +python_classes = "Test*" +python_functions = "test_*" +addopts = "-v --cov=src --cov-report=term-missing" + +[tool.mypy] +python_version = "3.12" +warn_return_any = true +warn_unused_configs = true +disallow_untyped_defs = true + +[tool.ruff] +line-length = 100 +target-version = "py312" + +[tool.hatch.build.targets.wheel] +packages = ["src"] + +[dependency-groups] +dev = [ + "ruff>=0.14.13", +] diff --git a/scripts/demo_phase1.py b/scripts/demo_phase1.py new file mode 100644 index 0000000000000000000000000000000000000000..2b9956d6c2318c8b0dd49c001105e5d5f01e9332 --- /dev/null +++ b/scripts/demo_phase1.py @@ -0,0 +1,84 @@ +""" +Example script demonstrating the data ingestion and feature store usage. + +This shows how to use the modules we just built. +""" + +from src.data.ingest import load_dataset, InferenceTransactionSchema +from src.features.store import RedisFeatureStore + + +def main(): + """Demonstrate basic usage of Phase 1 modules.""" + + print("=== PayShield-ML Phase 1 Demo ===\n") + + # 1. Data Validation Example + print("1. Testing Data Validation...") + try: + valid_transaction = InferenceTransactionSchema( + user_id="u12345", + amt=150.00, + lat=40.7128, + long=-74.0060, + category="grocery_pos", + job="Engineer, biomedical", + merch_lat=40.7200, + merch_long=-74.0100, + unix_time=1234567890, + ) + print(f" βœ“ Valid transaction: ${valid_transaction.amt:.2f}") + except Exception as e: + print(f" βœ— Validation failed: {e}") + + # 2. Feature Store Example + print("\n2. Testing Feature Store...") + try: + store = RedisFeatureStore(host="localhost", port=6379, db=0) + + # Check health + health = store.health_check() + print(f" βœ“ Redis connection: {health['status']} (ping: {health['ping_ms']}ms)") + + # Add some transactions + user_id = "demo_user_001" + import time + + base_time = int(time.time()) + + print(f"\n Adding 3 transactions for {user_id}...") + for i, amount in enumerate([50.00, 75.00, 100.00]): + store.add_transaction( + user_id=user_id, + amount=amount, + timestamp=base_time + (i * 3600), # 1 hour apart + ) + print(f" Transaction {i + 1}: ${amount:.2f}") + + # Get features + features = store.get_features(user_id, current_timestamp=base_time + 7200) + print(f"\n Features computed:") + print(f" - Transaction count (24h): {features['trans_count_24h']:.0f}") + print(f" - Average spend (24h): ${features['avg_spend_24h']:.2f}") + + # Get history + history = store.get_transaction_history(user_id, lookback_hours=24) + print(f"\n Transaction history ({len(history)} transactions):") + for ts, amt in history[:3]: + print(f" - Timestamp {ts}: ${amt:.2f}") + + # Cleanup + deleted = store.delete_user_data(user_id) + print(f"\n βœ“ Cleaned up {deleted} keys") + + except Exception as e: + print(f" βœ— Feature store error: {e}") + print( + " Make sure Redis is running: docker-compose -f docker/docker-compose.yml up -d redis" + ) + + print("\n=== Demo Complete ===") + + +if __name__ == "__main__": + main() diff --git a/scripts/verify_phase1.py b/scripts/verify_phase1.py new file mode 100644 index 0000000000000000000000000000000000000000..0ecf84f49c2ca74c510dac69f2cb85b2a887b226 --- /dev/null +++ b/scripts/verify_phase1.py @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +""" +Quick verification script for Phase 1 implementation. +Tests imports and basic module functionality without requiring Redis. +""" + + +def test_imports(): + """Test that all Phase 1 modules can be imported.""" + print("Testing imports...") + + try: + from src.data.ingest import TransactionSchema, InferenceTransactionSchema, load_dataset + + print(" βœ“ Data ingestion module imports successfully") + except ImportError as e: + print(f" βœ— Data ingestion import failed: {e}") + return False + + try: + from src.features.store import RedisFeatureStore + + print(" βœ“ Feature store module imports successfully") + except ImportError as e: + print(f" βœ— Feature store import failed: {e}") + return False + + try: + from src.features.constants import category_names, job_names + + print( + f" βœ“ Constants module loaded ({len(category_names)} categories, {len(job_names)} jobs)" + ) + except ImportError as e: + print(f" βœ— Constants import failed: {e}") + return False + + return True + + +def test_pydantic_validation(): + """Test Pydantic validation logic.""" + print("\nTesting Pydantic validation...") + + from src.data.ingest import TransactionSchema, InferenceTransactionSchema + from pydantic import ValidationError + + # Test valid transaction + try: + valid_data = { + "trans_date_trans_time": "2019-01-01 00:00:18", + "cc_num": 2703186189652095, + "merchant": "Test Merchant", + "category": "misc_net", + "amt": 100.50, + "first": "John", + "last": "Doe", + "gender": "M", + "street": "123 Main St", + "city": "Springfield", + "state": "IL", + "zip": 62701, + "lat": 39.7817, + "long": -89.6501, + "city_pop": 100000, + "job": "Engineer, biomedical", + "dob": "1990-01-01", + "trans_num": "abc123", + "unix_time": 1325376018, + "merch_lat": 39.7900, + "merch_long": -89.6600, + "is_fraud": 0, + } + schema = TransactionSchema(**valid_data) + print(f" βœ“ Valid transaction accepted (amt: ${schema.amt:.2f})") + except ValidationError as e: + print(f" βœ— Valid transaction rejected: {e}") + return False + + # Test invalid amount + try: + invalid_data = valid_data.copy() + invalid_data["amt"] = -50.00 + schema = TransactionSchema(**invalid_data) + print(" βœ— Negative amount not rejected!") + return False + except ValidationError: + print(" βœ“ Negative amount correctly rejected") + + # Test invalid coordinates + try: + invalid_data = valid_data.copy() + invalid_data["lat"] = 200.0 + schema = TransactionSchema(**invalid_data) + print(" βœ— Invalid latitude not rejected!") + return False + except ValidationError: + print(" βœ“ Invalid latitude correctly rejected") + + # Test inference schema + try: + inference_data = { + "user_id": "u12345", + "amt": 150.00, + "lat": 40.7128, + "long": -74.0060, + "category": "grocery_pos", + "job": "Engineer, biomedical", + "merch_lat": 40.7200, + "merch_long": -74.0100, + "unix_time": 1234567890, + } + schema = InferenceTransactionSchema(**inference_data) + print(f" βœ“ Inference schema works (user: {schema.user_id})") + except ValidationError as e: + print(f" βœ— Inference schema failed: {e}") + return False + + return True + + +def test_constants(): + """Test that constants are properly loaded.""" + print("\nTesting constants...") + + from src.features.constants import category_names, job_names + + # Check categories + expected_categories = ["misc_net", "gas_transport", "grocery_pos", "entertainment"] + for cat in expected_categories: + if cat not in category_names: + print(f" βœ— Missing category: {cat}") + return False + print(f" βœ“ All expected categories present ({len(category_names)} total)") + + # Check jobs + expected_jobs = ["Engineer, biomedical", "Data scientist", "Mechanical engineer"] + found_jobs = [j for j in expected_jobs if j in job_names] + print( + f" βœ“ Job list loaded ({len(job_names)} jobs, {len(found_jobs)}/{len(expected_jobs)} test jobs found)" + ) + + return True + + +def main(): + """Run all verification tests.""" + print("=" * 60) + print("Phase 1 Verification Script") + print("=" * 60) + + tests = [ + ("Imports", test_imports), + ("Pydantic Validation", test_pydantic_validation), + ("Constants", test_constants), + ] + + results = [] + for name, test_func in tests: + try: + result = test_func() + results.append((name, result)) + except Exception as e: + print(f"\n βœ— {name} test crashed: {e}") + results.append((name, False)) + + print("\n" + "=" * 60) + print("Summary") + print("=" * 60) + + for name, passed in results: + status = "βœ“ PASS" if passed else "βœ— FAIL" + print(f"{status:>10} - {name}") + + all_passed = all(r[1] for r in results) + + print("\n" + "=" * 60) + if all_passed: + print("βœ… All verification tests passed!") + print("\nPhase 1 implementation is working correctly.") + print("\nNext steps:") + print(" 1. Install dependencies: uv sync") + print(" 2. Start Redis: docker-compose -f docker/docker-compose.yml up -d redis") + print(" 3. Run full test suite: pytest tests/ -v") + print(" 4. Try demo: python scripts/demo_phase1.py") + else: + print("❌ Some tests failed. Check the output above.") + print("=" * 60) + + +if __name__ == "__main__": + main() diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6ee12e4119d0157480c48d12f40b347d7b6841db --- /dev/null +++ b/src/__init__.py @@ -0,0 +1 @@ +# Empty __init__.py for src package diff --git a/src/api/__init__.py b/src/api/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c46479d74709ebc6034eeb6ff2adfaa6eceac30a --- /dev/null +++ b/src/api/__init__.py @@ -0,0 +1 @@ +# API module __init__ diff --git a/src/api/config.py b/src/api/config.py new file mode 100644 index 0000000000000000000000000000000000000000..61861f9613989ea4487a9263f512f4cc1d0c2304 --- /dev/null +++ b/src/api/config.py @@ -0,0 +1,52 @@ +""" +API Configuration. + +Environment-based configuration using Pydantic settings. +""" + +from pydantic_settings import BaseSettings +from typing import Optional + + +class Settings(BaseSettings): + """ + Application settings loaded from environment variables. + + Usage: + >>> from src.api.config import settings + >>> print(settings.model_path) + """ + + # Model paths + model_path: str = "models/fraud_model.pkl" + threshold_path: str = "models/threshold.json" + + # Redis configuration + redis_host: str = "localhost" + redis_port: int = 6379 + redis_db: int = 0 + redis_password: Optional[str] = None + + # Feature flags + shadow_mode: bool = False + enable_explainability: bool = False + + # Performance + max_latency_ms: float = 50.0 + + # API metadata + api_version: str = "1.0.0" + api_title: str = "PayShield Fraud Detection API" + + model_config = { + "env_file": ".env", + "case_sensitive": False, + "extra": "ignore", # Ignore extra fields in .env + } + + +# Global settings instance +settings = Settings() + + +__all__ = ["settings", "Settings"] diff --git a/src/api/logger.py b/src/api/logger.py new file mode 100644 index 0000000000000000000000000000000000000000..723444c6db560fb983e24a0f8e7cf2ea6cad77e3 --- /dev/null +++ b/src/api/logger.py @@ -0,0 +1,64 @@ +""" +Shadow Mode Logger. + +Structured JSON logging for shadow predictions (production testing). +""" + +import json +import logging +from datetime import datetime +from typing import Dict, Any + + +# Configure shadow prediction logger +shadow_logger = logging.getLogger("shadow_predictions") +shadow_logger.setLevel(logging.INFO) + +# File handler for shadow predictions +handler = logging.FileHandler("logs/shadow_predictions.jsonl") +handler.setFormatter(logging.Formatter("%(message)s")) +shadow_logger.addHandler(handler) + + +def log_shadow_prediction( + request_data: Dict[str, Any], probability: float, real_decision: str, latency_ms: float +) -> None: + """ + Log a shadow prediction for comparison with production. + + Shadow mode allows testing new models in production without + affecting real transactions. All decisions are logged but + the API always returns APPROVE to the user. + + Args: + request_data: Original request payload + probability: Model's fraud probability + real_decision: What the model would have decided (BLOCK/APPROVE) + latency_ms: Processing time + + Example log entry: + { + "timestamp": "2020-06-15T14:30:00Z", + "user_id": "u12345", + "amt": 150.0, + "real_decision": "BLOCK", + "probability": 0.923, + "latency_ms": 12.5, + "shadow_mode": true + } + """ + log_entry = { + "timestamp": datetime.utcnow().isoformat() + "Z", + "user_id": request_data.get("user_id"), + "amt": float(request_data.get("amt")) if request_data.get("amt") is not None else None, + "category": request_data.get("category"), + "real_decision": real_decision, + "probability": float(probability), # Convert numpy float32 to Python float + "latency_ms": float(latency_ms), + "shadow_mode": True, + } + + shadow_logger.info(json.dumps(log_entry)) + + +__all__ = ["log_shadow_prediction", "shadow_logger"] diff --git a/src/api/main.py b/src/api/main.py new file mode 100644 index 0000000000000000000000000000000000000000..17b3ca5e323f7fff70dae228e67cae5fd29f7e75 --- /dev/null +++ b/src/api/main.py @@ -0,0 +1,326 @@ +""" +FastAPI Real-Time Fraud Detection Service. + +Production-grade inference API with sub-50ms latency target. +Integrates with Redis Feature Store for real-time feature injection. +""" + +import json +import logging +import time +from pathlib import Path +import pandas as pd +from typing import Dict, Any, Optional + +import joblib +from fastapi import FastAPI, HTTPException +from fastapi.middleware.cors import CORSMiddleware + +from src.api.config import settings +from src.api.logger import log_shadow_prediction +from src.api.schemas import PredictionRequest, PredictionResponse, HealthResponse +from src.features.store import RedisFeatureStore +from src.explainability import FraudExplainer + + +# Initialize FastAPI app +app = FastAPI( + title=settings.api_title, + version=settings.api_version, + description="Real-time fraud detection API with Redis feature store integration", +) + +# Add CORS middleware +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Global resources (loaded on startup) +pipeline = None +threshold = None +feature_store: Optional[RedisFeatureStore] = None +explainer: Optional[FraudExplainer] = None + +# Configure logging +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +@app.on_event("startup") +async def load_resources(): + """ + Load model and initialize Redis on startup. + + This runs once when the API starts, avoiding per-request overhead. + """ + global pipeline, threshold, feature_store, explainer + + logger.info("Loading model and resources...") + + # Load trained pipeline + model_path = Path(settings.model_path) + if not model_path.exists(): + raise FileNotFoundError(f"Model not found: {model_path}") + + pipeline = joblib.load(model_path) + logger.info(f"βœ“ Loaded model from {model_path}") + + # Load optimal threshold + threshold_path = Path(settings.threshold_path) + if not threshold_path.exists(): + raise FileNotFoundError(f"Threshold file not found: {threshold_path}") + + with open(threshold_path, "r") as f: + threshold_data = json.load(f) + threshold = threshold_data["optimal_threshold"] + + logger.info(f"βœ“ Loaded threshold: {threshold:.4f}") + + # Initialize Redis Feature Store + try: + feature_store = RedisFeatureStore( + host=settings.redis_host, + port=settings.redis_port, + db=settings.redis_db, + password=settings.redis_password, + ) + logger.info("βœ“ Connected to Redis Feature Store") + except Exception as e: + logger.warning(f"Redis connection failed: {e}. Feature store disabled.") + feature_store = None + + # Initialize SHAP Explainer + try: + explainer = FraudExplainer(str(model_path)) + logger.info("βœ“ Initialized SHAP Explainer") + except Exception as e: + logger.warning(f"SHAP initialization failed: {e}. Explainability disabled.") + explainer = None + + logger.info("=" * 60) + logger.info("API Ready!") + logger.info(f"Shadow Mode: {settings.shadow_mode}") + logger.info(f"Max Latency Target: {settings.max_latency_ms}ms") + logger.info("=" * 60) + + +@app.on_event("shutdown") +async def shutdown_resources(): + """Clean up resources on shutdown.""" + global feature_store + + if feature_store: + feature_store.close() + logger.info("βœ“ Closed Redis connection") + + +@app.get("/health", response_model=HealthResponse) +async def health_check(): + """ + Health check endpoint for monitoring. + + Returns service status and resource availability. + """ + redis_connected = False + if feature_store: + try: + health = feature_store.health_check() + redis_connected = health["status"] == "healthy" + except Exception: + redis_connected = False + + status = "healthy" if (pipeline is not None and threshold is not None) else "unhealthy" + + return HealthResponse( + status=status, + model_loaded=pipeline is not None, + redis_connected=redis_connected, + version=settings.api_version, + ) + + +@app.post("/v1/predict", response_model=PredictionResponse) +async def predict(request: PredictionRequest): + """ + Real-time fraud detection endpoint. + + Workflow: + 1. Parse & validate request + 2. Query Redis for real-time features (trans_count_24h, avg_spend_24h) + 3. Combine features + run inference + 4. Apply decision threshold + 5. Shadow mode override (if enabled) + 6. Return decision with latency tracking + + Args: + request: Transaction data + + Returns: + Fraud decision with probability and latency + + Raises: + HTTPException: If model not loaded or validation fails + """ + start_time = time.time() + + # Verify resources are loaded + if pipeline is None or threshold is None: + raise HTTPException(status_code=503, detail="Service unavailable: Model not loaded") + + try: + # Step 1: Convert request to dict + request_data = request.dict() + + # Step 2: Query Redis/Use Overrides + # Priority: Override > Redis > Default + trans_count_24h = request.trans_count_24h + avg_spend_24h = request.avg_spend_24h + amt_to_avg_ratio_24h = request.amt_to_avg_ratio_24h + user_avg_amt_all_time = request.user_avg_amt_all_time + + # If any real-time feature is missing from overrides, try Redis + if (trans_count_24h is None or avg_spend_24h is None or user_avg_amt_all_time is None) and feature_store: + try: + # Uses transaction timestamp for time-based lookup + trans_time = pd.to_datetime(request.trans_date_trans_time) + timestamp = int(trans_time.timestamp()) + + features = feature_store.get_features(request.user_id, timestamp) + + if trans_count_24h is None: + trans_count_24h = features.get("trans_count_24h", 0) + + if avg_spend_24h is None: + avg_spend_24h = features.get("avg_spend_24h", request.amt) + + # Note: Redis Feature Store doesn't currently track all-time average + # This would need to be added to the Feature Store implementation + # For now, we'll use avg_spend_24h as a proxy if not overridden + if user_avg_amt_all_time is None: + user_avg_amt_all_time = features.get("user_avg_amt_all_time", avg_spend_24h) + + except Exception as e: + logger.warning(f"Redis feature lookup failed: {e}. Using defaults for missing values.") + + # Fill remaining defaults + if trans_count_24h is None: trans_count_24h = 0 + if avg_spend_24h is None: avg_spend_24h = request.amt + if user_avg_amt_all_time is None: user_avg_amt_all_time = avg_spend_24h # Use 24h avg as proxy + + # Calculate derived ratio if not overridden + if amt_to_avg_ratio_24h is None: + amt_to_avg_ratio_24h = request.amt / avg_spend_24h if avg_spend_24h > 0 else 1.0 + + # Inject into request data + request_data["trans_count_24h"] = trans_count_24h + request_data["avg_spend_24h"] = avg_spend_24h + request_data["amt_to_avg_ratio_24h"] = amt_to_avg_ratio_24h + request_data["amt_relative_to_all_time"] = 1.0 # Default if not computed + + # Step 3: Convert to DataFrame for pipeline + df = pd.DataFrame([request_data]) + + # Step 4: Inference + prob = pipeline.predict_proba(df)[:, 1][0] + + # Step 5: Apply threshold + real_decision = "BLOCK" if prob >= threshold else "APPROVE" + + # Calculate latency + latency_ms = (time.time() - start_time) * 1000 + + # Step 6: Shadow mode override + final_decision = real_decision + if settings.shadow_mode: + log_shadow_prediction( + request_data=request_data, + probability=prob, + real_decision=real_decision, + latency_ms=latency_ms, + ) + # But always approve in shadow mode + final_decision = "APPROVE" + + # Log performance warning if latency exceeds target + if latency_ms > settings.max_latency_ms: + logger.warning( + f"Latency exceeded target: {latency_ms:.2f}ms > {settings.max_latency_ms}ms" + ) + + # Capture features used for response + features_used = { + "trans_count_24h": trans_count_24h, + "avg_spend_24h": avg_spend_24h, + "amt_to_avg_ratio_24h": amt_to_avg_ratio_24h, + "user_avg_amt_all_time": user_avg_amt_all_time # Now uses real/override value + } + + # Calculate SHAP values if explainer is available + shap_contributions = {} + if explainer is not None and settings.enable_explainability: + try: + explanation = explainer.explain_prediction(df, threshold=threshold) + # Get top 5 features by absolute impact + shap_contributions = { + item["feature"]: item["impact"] + for item in explanation["top_features"] + } + except Exception as e: + logger.warning(f"SHAP computation failed: {e}") + + # Persist transaction to Redis (if no overrides were used and not in shadow mode) + # This ensures velocity features accumulate for future predictions + if feature_store and not settings.shadow_mode: + # Only persist if user didn't override features (to avoid polluting real data) + no_overrides = ( + request.trans_count_24h is None and + request.avg_spend_24h is None and + request.user_avg_amt_all_time is None + ) + if no_overrides: + try: + trans_time = pd.to_datetime(request.trans_date_trans_time) + timestamp = int(trans_time.timestamp()) + feature_store.add_transaction( + user_id=request.user_id, + amount=request.amt, + timestamp=timestamp + ) + except Exception as e: + logger.warning(f"Failed to persist transaction to Redis: {e}") + + return PredictionResponse( + decision=final_decision, + probability=float(prob), + risk_score=float(prob * 100), + latency_ms=latency_ms, + shadow_mode=settings.shadow_mode, + features=features_used, + shap_values=shap_contributions + ) + + except Exception as e: + logger.error(f"Prediction error: {e}", exc_info=True) + raise HTTPException(status_code=500, detail=f"Prediction failed: {str(e)}") + + +@app.get("/") +async def root(): + """Root endpoint with API information.""" + return { + "service": settings.api_title, + "version": settings.api_version, + "status": "running", + "endpoints": { + "predict": "/v1/predict (POST)", + "health": "/health (GET)", + "docs": "/docs (GET)", + }, + } + + +__all__ = ["app"] diff --git a/src/api/schemas.py b/src/api/schemas.py new file mode 100644 index 0000000000000000000000000000000000000000..7a869813ae60309d67badb97510a7bbfdbb693f2 --- /dev/null +++ b/src/api/schemas.py @@ -0,0 +1,90 @@ +""" +API Request/Response Schemas. + +Pydantic models for API contract validation. +""" + +from typing import Literal, Optional, List, Dict, Any +from pydantic import BaseModel, Field + + +class PredictionRequest(BaseModel): + """ + Request schema for fraud prediction endpoint. + + Contains transaction details needed for real-time fraud detection. + Matches the InferenceTransactionSchema from data ingestion. + """ + + user_id: str = Field(..., description="Unique user identifier (replaces cc_num for privacy)") + trans_date_trans_time: str = Field( + ..., description="Transaction timestamp (YYYY-MM-DD HH:MM:SS)" + ) + amt: float = Field(..., gt=0, description="Transaction amount") + lat: float = Field(..., ge=-90, le=90, description="User latitude") + long: float = Field(..., ge=-180, le=180, description="User longitude") + merch_lat: float = Field(..., ge=-90, le=90, description="Merchant latitude") + merch_long: float = Field(..., ge=-180, le=180, description="Merchant longitude") + job: str = Field(..., description="User occupation") + category: str = Field(..., description="Merchant category") + gender: str = Field(..., description="User gender (M/F)") + dob: str = Field(..., description="User date of birth (YYYY-MM-DD)") + + # Optional Feature Overrides for Analysis + trans_count_24h: Optional[float] = None + avg_spend_24h: Optional[float] = None + amt_to_avg_ratio_24h: Optional[float] = None + user_avg_amt_all_time: Optional[float] = None + + class Config: + json_schema_extra = { + "example": { + "user_id": "u12345", + "trans_date_trans_time": "2020-06-15 14:30:00", + "amt": 150.00, + "lat": 40.7128, + "long": -74.0060, + "merch_lat": 40.7200, + "merch_long": -74.0100, + "job": "Engineer, biomedical", + "category": "grocery_pos", + "gender": "M", + "dob": "1985-03-20", + "trans_count_24h": 5, # Optional override + } + } + + +class PredictionResponse(BaseModel): + """Response schema for fraud prediction endpoint.""" + + decision: Literal["BLOCK", "APPROVE"] = Field(..., description="Final decision") + probability: float = Field(..., ge=0, le=1, description="Fraud probability (0-1)") + risk_score: float = Field(..., ge=0, le=100, description="Risk score (0-100)") + latency_ms: float = Field(..., description="Inference latency in milliseconds") + shadow_mode: bool = Field(default=False, description="Whether shadow mode is active") + features: Dict[str, Any] = Field(default_factory=dict, description="Features used for inference") + shap_values: Dict[str, float] = Field(default_factory=dict, description="SHAP feature contributions") + + class Config: + json_schema_extra = { + "example": { + "decision": "BLOCK", + "probability": 0.923, + "risk_score": 92.3, + "latency_ms": 12.5, + "shadow_mode": False, + } + } + + +class HealthResponse(BaseModel): + """Health check response.""" + + status: Literal["healthy", "unhealthy"] + model_loaded: bool + redis_connected: bool + version: str + + +__all__ = ["PredictionRequest", "PredictionResponse", "HealthResponse"] diff --git a/src/data/__init__.py b/src/data/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e55de3749ff8372c5396d63652872d5a5130111c --- /dev/null +++ b/src/data/__init__.py @@ -0,0 +1 @@ +# Empty __init__.py for data module diff --git a/src/data/ingest.py b/src/data/ingest.py new file mode 100644 index 0000000000000000000000000000000000000000..22dd99dc5a6c3a4ebade95685e70caa5cd55ba0f --- /dev/null +++ b/src/data/ingest.py @@ -0,0 +1,266 @@ +""" +Data Ingestion Module + +This module handles loading and validating credit card transaction data. +It uses Pydantic for schema validation to ensure data quality before processing. + +Author: PayShield-ML Team +""" + +from datetime import datetime +from pathlib import Path +from typing import Literal, Optional, Union + +import pandas as pd +import pyarrow.parquet as pq +from pydantic import BaseModel, Field, field_validator, model_validator + +from src.features.constants import category_names, job_names + + +class TransactionSchema(BaseModel): + """ + Pydantic model for validating individual transaction records. + + Enforces strict business rules: + - Transaction amounts must be positive + - Coordinates must be valid (lat: [-90, 90], long: [-180, 180]) + - Category and job must be from known sets + - Timestamps must be valid + + Attributes: + trans_date_trans_time: Transaction timestamp + cc_num: Credit card number (PII - handle with care) + merchant: Merchant name + category: Transaction category (e.g., 'grocery_pos', 'gas_transport') + amt: Transaction amount in USD + first: Customer first name + last: Customer last name + gender: Customer gender + street: Street address + city: City name + state: State code (2 letters) + zip: ZIP code + lat: Customer latitude (-90 to 90) + long: Customer longitude (-180 to 180) + city_pop: City population + job: Customer job title + dob: Date of birth + trans_num: Unique transaction identifier + unix_time: Unix timestamp + merch_lat: Merchant latitude + merch_long: Merchant longitude + is_fraud: Fraud label (0 or 1) + """ + + # Transaction Details + trans_date_trans_time: str = Field( + ..., description="Transaction timestamp in format 'YYYY-MM-DD HH:MM:SS'" + ) + cc_num: int = Field(..., description="Credit card number", gt=0) + merchant: str = Field(..., min_length=1, description="Merchant name") + category: str = Field(..., description="Transaction category") + amt: float = Field(..., gt=0.0, description="Transaction amount (must be positive)") + + # Customer Information + first: str = Field(..., min_length=1, description="First name") + last: str = Field(..., min_length=1, description="Last name") + gender: Literal["M", "F"] = Field(..., description="Gender") + street: str = Field(..., description="Street address") + city: str = Field(..., description="City") + state: str = Field(..., min_length=2, max_length=2, description="State code") + zip: int = Field(..., ge=1000, le=99999, description="ZIP code") + lat: float = Field(..., ge=-90.0, le=90.0, description="Customer latitude") + long: float = Field(..., ge=-180.0, le=180.0, description="Customer longitude") + city_pop: int = Field(..., ge=0, description="City population") + job: str = Field(..., description="Job title") + dob: str = Field(..., description="Date of birth in format 'YYYY-MM-DD'") + + # Transaction Metadata + trans_num: str = Field(..., description="Unique transaction ID (hex string)") + unix_time: int = Field(..., gt=0, description="Unix timestamp") + merch_lat: float = Field(..., ge=-90.0, le=90.0, description="Merchant latitude") + merch_long: float = Field(..., ge=-180.0, le=180.0, description="Merchant longitude") + is_fraud: Literal[0, 1] = Field(..., description="Fraud indicator") + + @field_validator("category") + @classmethod + def validate_category(cls, v: str) -> str: + """Ensure category is from known set.""" + if v not in category_names: + raise ValueError( + f"Invalid category '{v}'. Must be one of: {', '.join(category_names[:5])}..." + ) + return v + + @field_validator("job") + @classmethod + def validate_job(cls, v: str) -> str: + """Ensure job is from known set.""" + if v not in job_names: + raise ValueError( + f"Invalid job '{v}'. Must be one of the {len(job_names)} known job titles" + ) + return v + + @field_validator("trans_date_trans_time") + @classmethod + def validate_timestamp(cls, v: str) -> str: + """Ensure timestamp is valid.""" + try: + datetime.strptime(v, "%Y-%m-%d %H:%M:%S") + except ValueError as e: + raise ValueError( + f"Invalid timestamp format '{v}'. Expected 'YYYY-MM-DD HH:MM:SS'" + ) from e + return v + + @field_validator("dob") + @classmethod + def validate_dob(cls, v: str) -> str: + """Ensure date of birth is valid.""" + try: + datetime.strptime(v, "%Y-%m-%d") + except ValueError as e: + raise ValueError(f"Invalid date of birth format '{v}'. Expected 'YYYY-MM-DD'") from e + return v + + @model_validator(mode="after") + def validate_distance_sanity(self) -> "TransactionSchema": + """ + Sanity check: Ensure customer and merchant coordinates are reasonable. + This catches data corruption where lat/long might be swapped. + """ + # Check if coordinates are swapped (common data error) + if abs(self.lat) > 50 and abs(self.long) < 50: + # Likely US-based dataset, this pattern suggests swap + raise ValueError( + f"Suspicious coordinates: lat={self.lat}, long={self.long}. " + f"Check if latitude and longitude are swapped." + ) + return self + + +class InferenceTransactionSchema(BaseModel): + """ + Simplified schema for real-time inference requests. + + Only includes features needed for prediction (no PII like names/addresses). + This is what the API endpoint expects. + + Attributes: + user_id: Internal user identifier (replaces cc_num for privacy) + amt: Transaction amount + lat: User's last known latitude + long: User's last known longitude + category: Transaction category + job: User's job (from profile) + merch_lat: Merchant latitude + merch_long: Merchant longitude + unix_time: Transaction timestamp (Unix epoch) + """ + + user_id: str = Field(..., min_length=1, description="User identifier") + amt: float = Field(..., gt=0.0, description="Transaction amount") + lat: float = Field(..., ge=-90.0, le=90.0, description="User latitude") + long: float = Field(..., ge=-180.0, le=180.0, description="User longitude") + category: str = Field(..., description="Transaction category") + job: str = Field(..., description="User job title") + merch_lat: float = Field(..., ge=-90.0, le=90.0, description="Merchant latitude") + merch_long: float = Field(..., ge=-180.0, le=180.0, description="Merchant longitude") + unix_time: int = Field(..., gt=0, description="Transaction timestamp") + + @field_validator("category") + @classmethod + def validate_category(cls, v: str) -> str: + """Ensure category is from known set.""" + if v not in category_names: + raise ValueError(f"Invalid category '{v}'. Must be one of: {', '.join(category_names)}") + return v + + @field_validator("job") + @classmethod + def validate_job(cls, v: str) -> str: + """Ensure job is from known set.""" + if v not in job_names: + raise ValueError(f"Invalid job '{v}'. Not in approved job list") + return v + + +def load_dataset( + file_path: Union[str, Path], validate: bool = True, sample_n: Optional[int] = None +) -> pd.DataFrame: + """ + Load credit card fraud dataset from CSV or Parquet with optional validation. + + This function handles both training data loads (with validation) and + production loads (validation optional for speed). + + Args: + file_path: Path to CSV or Parquet file + validate: If True, validate each row against TransactionSchema. + Set to False for faster loading in production. + sample_n: If specified, return only N randomly sampled rows (for testing) + + Returns: + DataFrame with validated transaction data + + Raises: + FileNotFoundError: If file doesn't exist + ValueError: If validation fails for any row + + Example: + >>> # Load and validate training data + >>> df = load_dataset("fraudTrain.csv", validate=True) + >>> + >>> # Fast load for inference (skip validation) + >>> df = load_dataset("fraudTrain.parquet", validate=False) + >>> + >>> # Load sample for testing + >>> df_sample = load_dataset("fraudTrain.csv", sample_n=1000) + """ + file_path = Path(file_path) + + if not file_path.exists(): + raise FileNotFoundError(f"Dataset not found: {file_path}") + + # Load based on file extension + if file_path.suffix == ".csv": + df = pd.read_csv(file_path) + elif file_path.suffix == ".parquet": + df = pd.read_parquet(file_path) + else: + raise ValueError(f"Unsupported file format: {file_path.suffix}. Use .csv or .parquet") + + # Sample if requested + if sample_n is not None: + df = df.sample(n=min(sample_n, len(df)), random_state=42) + + # Validate if requested + if validate: + print(f"Validating {len(df):,} transactions...") + errors = [] + + for idx, row in df.iterrows(): + try: + TransactionSchema(**row.to_dict()) + except Exception as e: + errors.append(f"Row {idx}: {str(e)}") + if len(errors) >= 10: # Stop after 10 errors to avoid spam + errors.append("... (stopped after 10 errors)") + break + + if errors: + error_msg = "\n".join(errors) + raise ValueError(f"Validation failed:\n{error_msg}") + + print(f"βœ“ All {len(df):,} transactions validated successfully") + + return df + + +__all__ = [ + "TransactionSchema", + "InferenceTransactionSchema", + "load_dataset", +] diff --git a/src/explainability.py b/src/explainability.py new file mode 100644 index 0000000000000000000000000000000000000000..2e712dd89ead2bbfbddfebcf95963b3ba525bfd2 --- /dev/null +++ b/src/explainability.py @@ -0,0 +1,317 @@ +""" +SHAP Explainability Engine. + +Implements regulatory-compliant explainability using SHAP (SHapley Additive exPlanations). +Provides both local (per-transaction) and global (model-wide) explanations. + +Based on research notebook SHAP implementation: +- TreeExplainer for XGBoost models +- Waterfall plots for local explanations +- Summary plots for global feature importance +""" + +import base64 +import io +from pathlib import Path +from typing import Dict, Optional, Tuple, Union + +import joblib +import matplotlib + +matplotlib.use("Agg") # Non-interactive backend for server environments +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import shap +from sklearn.pipeline import Pipeline + + +class FraudExplainer: + """ + SHAP-based explainability engine for fraud detection model. + + Provides transparent, auditable explanations for fraud predictions: + - **Local Explanations**: Why a specific transaction was flagged (waterfall) + - **Global Explanations**: Overall feature importance (summary plot) + + Example: + >>> explainer = FraudExplainer("models/fraud_model.pkl") + >>> + >>> # Explain a single transaction + >>> transaction = pd.DataFrame([{...}]) + >>> waterfall_b64 = explainer.generate_waterfall(transaction) + >>> + >>> # Global feature importance + >>> summary_b64 = explainer.generate_summary(X_test_sample) + """ + + def __init__(self, pipeline_path: str): + """ + Initialize SHAP explainer with trained pipeline. + + Args: + pipeline_path: Path to saved pipeline (.pkl file) + + Raises: + FileNotFoundError: If pipeline file doesn't exist + ValueError: If pipeline structure is invalid + """ + pipeline_path = Path(pipeline_path) + if not pipeline_path.exists(): + raise FileNotFoundError(f"Pipeline not found: {pipeline_path}") + + # Load trained pipeline + self.pipeline: Pipeline = joblib.load(pipeline_path) + + # Extract components + if "model" not in self.pipeline.named_steps: + raise ValueError("Pipeline must contain 'model' step") + if "preprocessor" not in self.pipeline.named_steps: + raise ValueError("Pipeline must contain 'preprocessor' step") + + self.model = self.pipeline.named_steps["model"] + self.preprocessor = self.pipeline.named_steps["preprocessor"] + + # Initialize SHAP TreeExplainer + # TreeExplainer is optimized for tree-based models (XGBoost, RandomForest) + self.explainer = shap.TreeExplainer(self.model) + + # Get feature names after transformation + self.feature_names = self._get_feature_names() + + def _get_feature_names(self) -> list: + """ + Extract feature names from preprocessor. + + Returns: + List of feature names after ColumnTransformer + """ + try: + # Try sklearn 1.0+ method + return list(self.preprocessor.get_feature_names_out()) + except AttributeError: + # Fallback: Manually construct from transformer configuration + # This matches our pipeline structure: + # cat: ['job', 'category'] + # num: ['amt_log', 'age', 'distance_km', 'trans_count_24h', ...] + # binary: ['gender'] + # cyclical: ['hour_sin', 'hour_cos', 'day_sin', 'day_cos'] + categorical = ["job", "category"] + numerical = [ + "amt_log", + "age", + "distance_km", + "trans_count_24h", + "amt_to_avg_ratio_24h", + "amt_relative_to_all_time", + ] + binary = ["gender"] + cyclical = ["hour_sin", "hour_cos", "day_sin", "day_cos"] + return categorical + numerical + binary + cyclical + + def _transform_data(self, X: pd.DataFrame) -> np.ndarray: + """ + Transform raw transaction data through pipeline preprocessor. + + This is the crucial step mentioned in the notebook to resolve + "You have categorical data..." errors. + + Args: + X: Raw transaction DataFrame + + Returns: + Transformed numerical array ready for SHAP + """ + # Apply feature extraction (if 'features' step exists) + if "features" in self.pipeline.named_steps: + X = self.pipeline.named_steps["features"].transform(X) + + # Apply preprocessing (WOE, scaling, passthrough) + X_transformed = self.preprocessor.transform(X) + + return X_transformed + + def calculate_shap_values( + self, X: pd.DataFrame, transformed: bool = False + ) -> Tuple[np.ndarray, np.ndarray]: + """ + Calculate SHAP values for input data. + + Args: + X: Transaction data (raw or transformed) + transformed: If True, X is already transformed. If False, transform it. + + Returns: + Tuple of (shap_values, transformed_X) + """ + if not transformed: + X_transformed = self._transform_data(X) + else: + X_transformed = X + + # Calculate SHAP values + shap_values = self.explainer.shap_values(X_transformed) + + return shap_values, X_transformed + + def generate_waterfall( + self, transaction: pd.DataFrame, return_base64: bool = True, max_display: int = 10 + ) -> Union[str, matplotlib.figure.Figure]: + """ + Generate SHAP waterfall plot for a single transaction. + + Shows how each feature contributed to pushing the prediction + from the base value (average) to the final prediction. + + Args: + transaction: Single transaction DataFrame (1 row) + return_base64: If True, return base64 PNG. If False, return Figure. + max_display: Maximum features to display + + Returns: + Base64-encoded PNG string or matplotlib Figure + + Example: + >>> waterfall_img = explainer.generate_waterfall(transaction_df) + >>> # Save to file + >>> with open('waterfall.png', 'wb') as f: + ... f.write(base64.b64decode(waterfall_img)) + """ + if len(transaction) != 1: + raise ValueError(f"Expected 1 transaction, got {len(transaction)}") + + # Transform and calculate SHAP + X_transformed = self._transform_data(transaction) + + # Create DataFrame with feature names for plotting + X_df = pd.DataFrame(X_transformed, columns=self.feature_names) + + # Generate SHAP explanation object + explanation = self.explainer(X_df) + + # Create waterfall plot + fig = plt.figure(figsize=(10, 6)) + shap.plots.waterfall(explanation[0], max_display=max_display, show=False) + plt.tight_layout() + + if return_base64: + img_base64 = self._plot_to_base64(fig) + return img_base64 + else: + return fig + + def generate_summary( + self, X_sample: pd.DataFrame, return_base64: bool = True, max_display: int = 20 + ) -> Union[str, matplotlib.figure.Figure]: + """ + Generate SHAP summary plot for global feature importance. + + Shows which features are most important across all predictions. + Each dot represents a transaction, color indicates feature value. + + Args: + X_sample: Sample of transactions (typically 100-1000 rows) + return_base64: If True, return base64 PNG. If False, return Figure. + max_display: Maximum features to display + + Returns: + Base64-encoded PNG string or matplotlib Figure + + Example: + >>> # Analyze 500 test transactions + >>> summary_img = explainer.generate_summary(X_test[:500]) + """ + # Transform data + X_transformed = self._transform_data(X_sample) + + # Calculate SHAP values + shap_values = self.explainer.shap_values(X_transformed) + + # Create summary plot + fig = plt.figure(figsize=(10, 8)) + shap.summary_plot( + shap_values, + X_transformed, + feature_names=self.feature_names, + max_display=max_display, + show=False, + ) + plt.tight_layout() + + if return_base64: + img_base64 = self._plot_to_base64(fig) + return img_base64 + else: + return fig + + def explain_prediction( + self, transaction: pd.DataFrame, threshold: float = 0.5 + ) -> Dict[str, any]: + """ + Get comprehensive explanation for a single prediction. + + Args: + transaction: Single transaction DataFrame + threshold: Decision threshold + + Returns: + Dictionary with: + - prediction: fraud probability + - decision: "BLOCK" or "APPROVE" + - shap_values: feature contributions + - top_features: top 5 features sorted by impact + - base_value: model's base prediction (average) + + Example: + >>> explanation = explainer.explain_prediction(transaction_df, threshold=0.895) + >>> print(explanation['decision']) # "BLOCK" + >>> print(explanation['top_features']) + [{'feature': 'amt_log', 'impact': 0.32}, ...] + """ + # Get prediction probability + y_prob = self.pipeline.predict_proba(transaction)[0, 1] + + # Transform for SHAP + X_transformed = self._transform_data(transaction) + shap_values = self.explainer.shap_values(X_transformed) + + # Get base value (expected value) + base_value = self.explainer.expected_value + + # Sort features by absolute impact + feature_impacts = [ + {"feature": feat, "impact": float(shap_val), "abs_impact": abs(float(shap_val))} + for feat, shap_val in zip(self.feature_names, shap_values[0]) + ] + feature_impacts.sort(key=lambda x: x["abs_impact"], reverse=True) + + return { + "prediction": float(y_prob), + "decision": "BLOCK" if y_prob >= threshold else "APPROVE", + "threshold": threshold, + "shap_values": { + feat: float(val) for feat, val in zip(self.feature_names, shap_values[0]) + }, + "top_features": feature_impacts[:5], + "base_value": float(base_value), + } + + def _plot_to_base64(self, fig: matplotlib.figure.Figure) -> str: + """ + Convert matplotlib figure to base64-encoded PNG. + + Args: + fig: Matplotlib figure + + Returns: + Base64-encoded PNG string + """ + buf = io.BytesIO() + fig.savefig(buf, format="png", bbox_inches="tight", dpi=100) + buf.seek(0) + img_base64 = base64.b64encode(buf.read()).decode("utf-8") + plt.close(fig) + return img_base64 + + +__all__ = ["FraudExplainer"] diff --git a/src/features/__init__.py b/src/features/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3628fb95bdb560f7fd8595f6c0cf24d303064487 --- /dev/null +++ b/src/features/__init__.py @@ -0,0 +1 @@ +# Empty __init__.py for features module diff --git a/src/features/constants.py b/src/features/constants.py new file mode 100644 index 0000000000000000000000000000000000000000..6db48e5ab5bd7bc449a122e82d968729462c357c --- /dev/null +++ b/src/features/constants.py @@ -0,0 +1,517 @@ +__all__ = ["category_names", "job_names"] +category_names = [ + "misc_net", + "gas_transport", + "kids_pets", + "home", + "shopping_net", + "food_dining", + "personal_care", + "grocery_pos", + "entertainment", + "shopping_pos", + "misc_pos", + "travel", + "health_fitness", + "grocery_net", +] + +job_names = [ + "Information systems manager", + "Secondary school teacher", + "Barrister's clerk", + "Politician's assistant", + "Horticulturist, commercial", + "Programmer, applications", + "Television camera operator", + "Call centre manager", + "Chief Marketing Officer", + "Buyer, industrial", + "Armed forces logistics/support/administrative officer", + "Pilot, airline", + "Therapist, horticultural", + "Dancer", + "Ceramics designer", + "Naval architect", + "Engineer, agricultural", + "Health service manager", + "Sport and exercise psychologist", + "Forensic psychologist", + "Exhibition designer", + "Nurse, children's", + "Soil scientist", + "Prison officer", + "Economist", + "Copywriter, advertising", + "Television floor manager", + "Lecturer, higher education", + "Sales professional, IT", + "Exhibitions officer, museum/gallery", + "Freight forwarder", + "Engineering geologist", + "Surveyor, hydrographic", + "Trade mark attorney", + "Public relations account executive", + "Engineer, site", + "Race relations officer", + "Podiatrist", + "Clothing/textile technologist", + "Retail merchandiser", + "Engineer, civil (contracting)", + "Make", + "Advertising account executive", + "Armed forces training and education officer", + "Special educational needs teacher", + "Special effects artist", + "Corporate investment banker", + "Immunologist", + "Barrister", + "Designer, interior/spatial", + "Early years teacher", + "Chief Executive Officer", + "Mechanical engineer", + "Administrator, education", + "Engineer, electronics", + "Estate manager/land agent", + "Television/film/video producer", + "Chiropodist", + "Senior tax professional/tax inspector", + "Airline pilot", + "Engineer, petroleum", + "Materials engineer", + "Civil engineer, contracting", + "Sales executive", + "Editor, film/video", + "Marketing executive", + "Historic buildings inspector/conservation officer", + "Higher education careers adviser", + "Chief Financial Officer", + "Editor, commissioning", + "Financial trader", + "Animal nutritionist", + "Further education lecturer", + "Clinical research associate", + "Writer", + "Air traffic controller", + "Engineer, automotive", + "Tourism officer", + "Designer, industrial/product", + "Broadcast presenter", + "Quarry manager", + "Careers information officer", + "Cartographer", + "Petroleum engineer", + "Aid worker", + "Database administrator", + "Technical brewer", + "Educational psychologist", + "Engineer, building services", + "Agricultural consultant", + "Scientist, biomedical", + "Probation officer", + "Conservation officer, historic buildings", + "Physiotherapist", + "Equality and diversity officer", + "Quantity surveyor", + "Occupational hygienist", + "Academic librarian", + "Air broker", + "Catering manager", + "Licensed conveyancer", + "Pharmacist, hospital", + "Television production assistant", + "Insurance underwriter", + "English as a second language teacher", + "Music tutor", + "Programmer, multimedia", + "Therapist, art", + "Financial adviser", + "Media planner", + "Land/geomatics surveyor", + "Architect", + "Set designer", + "Lawyer", + "Administrator, arts", + "Tax adviser", + "Drilling engineer", + "Administrator", + "Community education officer", + "IT trainer", + "IT consultant", + "Journalist, newspaper", + "Psychologist, forensic", + "Site engineer", + "Curator", + "Film/video editor", + "Investment banker, corporate", + "Geochemist", + "Professor Emeritus", + "Chemical engineer", + "Fine artist", + "Pension scheme manager", + "Systems developer", + "Firefighter", + "Learning disability nurse", + "Network engineer", + "Sales promotion account executive", + "Child psychotherapist", + "Building surveyor", + "Energy engineer", + "Human resources officer", + "Metallurgist", + "Pharmacist, community", + "Tour manager", + "Paramedic", + "Arboriculturist", + "Dispensing optician", + "Engineer, production", + "Engineer, control and instrumentation", + "Embryologist, clinical", + "Paediatric nurse", + "Radio producer", + "Applications developer", + "Local government officer", + "Chief Strategy Officer", + "Sub", + "Orthoptist", + "Lexicographer", + "Press sub", + "Chief Operating Officer", + "Geoscientist", + "Environmental consultant", + "Commissioning editor", + "Cytogeneticist", + "Chartered legal executive (England and Wales)", + "Civil Service fast streamer", + "Presenter, broadcasting", + "Fitness centre manager", + "Development worker, community", + "Wellsite geologist", + "Ambulance person", + "Psychotherapist", + "Gaffer", + "Radio broadcast assistant", + "Training and development officer", + "Seismic interpreter", + "Counsellor", + "Librarian, public", + "Personnel officer", + "Magazine features editor", + "Horticultural consultant", + "Buyer, retail", + "Aeronautical engineer", + "Education officer, museum", + "Scientist, research (medical)", + "Toxicologist", + "Town planner", + "Scientist, research (maths)", + "Jewellery designer", + "Hotel manager", + "Facilities manager", + "Plant breeder/geneticist", + "Civil Service administrator", + "Occupational therapist", + "Diagnostic radiographer", + "Conservator, museum/gallery", + "Intelligence analyst", + "Warden/ranger", + "Animal technologist", + "Furniture designer", + "Claims inspector/assessor", + "Industrial/product designer", + "Glass blower/designer", + "Armed forces technical officer", + "Nature conservation officer", + "Manufacturing engineer", + "Exercise physiologist", + "Designer, textile", + "Geophysicist/field seismologist", + "Surveyor, land/geomatics", + "Risk analyst", + "Development worker, international aid", + "Audiological scientist", + "Hydrologist", + "Engineer, land", + "Engineer, biomedical", + "Teacher, secondary school", + "Building control surveyor", + "English as a foreign language teacher", + "Leisure centre manager", + "Emergency planning/management officer", + "Chartered accountant", + "Chartered public finance accountant", + "Public affairs consultant", + "Control and instrumentation engineer", + "Trading standards officer", + "Archaeologist", + "Designer, exhibition/display", + "Engineer, maintenance", + "Insurance broker", + "Research scientist (physical sciences)", + "Science writer", + "Psychiatrist", + "Video editor", + "Horticultural therapist", + "Advertising account planner", + "Music therapist", + "Physiological scientist", + "Teacher, primary school", + "Doctor, general practice", + "Physicist, medical", + "Dealer", + "Therapist, occupational", + "Futures trader", + "Accountant, chartered public finance", + "Electrical engineer", + "Commercial horticulturist", + "Pensions consultant", + "Records manager", + "Doctor, hospital", + "Engineer, broadcasting (operations)", + "Colour technologist", + "Environmental health practitioner", + "Theatre manager", + "Comptroller", + "Optician, dispensing", + "Social research officer, government", + "Production assistant, radio", + "Community pharmacist", + "Production engineer", + "Regulatory affairs officer", + "Statistician", + "Administrator, local government", + "Telecommunications researcher", + "Research scientist (medical)", + "Administrator, charities/voluntary organisations", + "General practice doctor", + "Rural practice surveyor", + "Education administrator", + "Multimedia programmer", + "Heritage manager", + "TEFL teacher", + "Phytotherapist", + "Museum education officer", + "Designer, ceramics/pottery", + "Mudlogger", + "Police officer", + "Research officer, trade union", + "Retail buyer", + "Accounting technician", + "Dance movement psychotherapist", + "Theatre director", + "Waste management officer", + "Web designer", + "Nurse, mental health", + "Herpetologist", + "Tourist information centre manager", + "Radiographer, therapeutic", + "Designer, jewellery", + "Scientist, physiological", + "Investment analyst", + "Insurance risk surveyor", + "Teacher, special educational needs", + "Product designer", + "Librarian, academic", + "Mining engineer", + "Stage manager", + "Investment banker, operational", + "Geneticist, molecular", + "Medical physicist", + "Product/process development scientist", + "Arts development officer", + "Charity fundraiser", + "Land", + "Teaching laboratory technician", + "Acupuncturist", + "Transport planner", + "Forest/woodland manager", + "Charity officer", + "Herbalist", + "Industrial buyer", + "Medical sales representative", + "Landscape architect", + "Teacher, early years/pre", + "Event organiser", + "Conservator, furniture", + "Hydrographic surveyor", + "Producer, radio", + "Psychologist, counselling", + "Designer, furniture", + "Theme park manager", + "Hospital pharmacist", + "Volunteer coordinator", + "Pathologist", + "Psychologist, sport and exercise", + "Health visitor", + "Programme researcher, broadcasting/film/video", + "Counselling psychologist", + "Operations geologist", + "Chief of Staff", + "Engineer, communications", + "Engineer, mining", + "Biochemist, clinical", + "Scientist, clinical (histocompatibility and immunogenetics)", + "Medical secretary", + "Hospital doctor", + "Location manager", + "Mental health nurse", + "Scientist, audiological", + "Careers adviser", + "Therapist, drama", + "Accountant, chartered", + "Social researcher", + "Solicitor", + "Travel agency manager", + "Scientist, marine", + "Artist", + "Surveyor, minerals", + "Patent attorney", + "Chartered loss adjuster", + "Scientific laboratory technician", + "Interior and spatial designer", + "Medical technical officer", + "Broadcast engineer", + "Fisheries officer", + "Engineer, water", + "Commercial/residential surveyor", + "Engineer, structural", + "Communications engineer", + "Teacher, English as a foreign language", + "Magazine journalist", + "Community development worker", + "Legal secretary", + "Optometrist", + "Psychologist, clinical", + "Software engineer", + "Oncologist", + "Research officer, political party", + "Information officer", + "Cabin crew", + "Geologist, engineering", + "Outdoor activities/education manager", + "Textile designer", + "Learning mentor", + "Minerals surveyor", + "Clinical biochemist", + "Maintenance engineer", + "Market researcher", + "Health physicist", + "Biomedical engineer", + "Associate Professor", + "Electronics engineer", + "Engineer, civil (consulting)", + "Contractor", + "Engineer, materials", + "Visual merchandiser", + "Production manager", + "Structural engineer", + "Amenity horticulturist", + "Osteopath", + "Press photographer", + "Purchasing manager", + "Camera operator", + "Advice worker", + "Insurance claims handler", + "Furniture conservator/restorer", + "Manufacturing systems engineer", + "Copy", + "Lecturer, further education", + "Animator", + "Surveyor, mining", + "Retail manager", + "Therapist, music", + "Primary school teacher", + "Archivist", + "Health and safety adviser", + "Research scientist (life sciences)", + "Veterinary surgeon", + "Data scientist", + "Media buyer", + "Museum/gallery exhibitions officer", + "Health promotion specialist", + "Farm manager", + "Warehouse manager", + "Surgeon", + "Illustrator", + "Biomedical scientist", + "Logistics and distribution manager", + "Geologist, wellsite", + "Operational investment banker", + "Private music teacher", + "Occupational psychologist", + "Building services engineer", + "Bookseller", + "Engineer, technical sales", + "Neurosurgeon", + "Museum/gallery conservator", + "Garment/textile technologist", + "Systems analyst", + "Therapist, sports", + "Art gallery manager", + "Retail banker", + "Radiographer, diagnostic", + "Editor, magazine features", + "Teacher, adult education", + "Water engineer", + "Clinical cytogeneticist", + "Air cabin crew", + "Oceanographer", + "Research scientist (maths)", + "Psychotherapist, child", + "Public house manager", + "Chief Technology Officer", + "Planning and development surveyor", + "Pharmacologist", + "Scientist, research (physical sciences)", + "Ecologist", + "Tree surgeon", + "Engineer, drilling", + "Art therapist", + "Architectural technologist", + "Equities trader", + "Production assistant, television", + "Field seismologist", + "Musician", + "Designer, multimedia", + "Nutritional therapist", + "Designer, television/film set", + "Tax inspector", + "Public librarian", + "Loss adjuster, chartered", + "Accountant, chartered certified", + "Merchandiser, retail", + "Sports development officer", + "Interpreter", + "Homeopath", + "Engineer, aeronautical", + "Analytical chemist", + "Energy manager", + "Community arts worker", + "Management consultant", + "Public relations officer", + "Ship broker", + "Chemist, analytical", + "Environmental manager", + "Product manager", + "Education officer, community", + "Field trials officer", + "Restaurant manager, fast food", + "Broadcast journalist", + "Secretary/administrator", + "Company secretary", + "Sports administrator", + "Producer, television/film/video", + "Barista", + "Advertising copywriter", + "Immigration officer", + "Hydrogeologist", + "Clinical psychologist", + "Solicitor, Scotland", + "Contracting civil engineer", + "Engineer, manufacturing", + "Psychiatric nurse", + "Water quality scientist", + "Surveyor, rural practice", + "Environmental education officer", + "Operational researcher", +] diff --git a/src/features/store.py b/src/features/store.py new file mode 100644 index 0000000000000000000000000000000000000000..5c21b1007a7a22187ee1522c9bb2fab8dada0d94 --- /dev/null +++ b/src/features/store.py @@ -0,0 +1,341 @@ +""" +Redis Feature Store + +Real-time feature storage and computation for fraud detection. +Implements stateful features that require historical context: +- Sliding window transaction counts (O(log N)) +- Exponential moving averages for spending (O(1)) + +Architecture: +- Uses Redis Sorted Sets (ZSET) for time-based sliding windows +- Uses Redis Strings for EMA computation with atomic operations +- Connection pooling for low-latency concurrent requests + +Author: PayShield-ML Team +""" + +import time +from typing import Dict, List, Optional, Tuple + +import redis +from redis.client import Pipeline +from redis.connection import ConnectionPool + + +class RedisFeatureStore: + """ + Redis-backed feature store for real-time fraud detection. + + This class manages stateful features that cannot be computed from a single + transaction alone. It solves the "Stateful Feature Problem" by maintaining + rolling windows of user behavior. + + Features Computed: + 1. **trans_count_24h**: Number of transactions in last 24 hours + - Data Structure: Redis Sorted Set (ZSET) + - Complexity: O(log N) insert, O(log N + M) range query + - Key Format: user:{user_id}:tx_history + + 2. **avg_spend_24h**: Exponential moving average of spending + - Data Structure: Redis String (float) + - Complexity: O(1) update + - Key Format: user:{user_id}:avg_spend + - Formula: EMA_new = Ξ± * amt_current + (1-Ξ±) * EMA_old + - Ξ± = 2/(n+1) where n=24 (for 24-hour window) + + Connection Management: + - Uses connection pooling to avoid TCP overhead + - Thread-safe for concurrent API requests + - Automatic reconnection on failure + + Example: + >>> store = RedisFeatureStore(host="localhost", port=6379) + >>> + >>> # Record a new transaction + >>> store.add_transaction( + ... user_id="u12345", + ... amount=150.00, + ... timestamp=1234567890 + ... ) + >>> + >>> # Get features for inference + >>> features = store.get_features(user_id="u12345") + >>> print(features) + {'trans_count_24h': 5, 'avg_spend_24h': 120.50} + """ + + def __init__( + self, + host: str = "localhost", + port: int = 6379, + db: int = 0, + password: Optional[str] = None, + max_connections: int = 50, + decode_responses: bool = True, + ema_alpha: Optional[float] = None, + ) -> None: + """ + Initialize Redis Feature Store with connection pooling. + + Args: + host: Redis server hostname + port: Redis server port + db: Redis database number (0-15) + password: Redis password (if authentication enabled) + max_connections: Maximum connections in pool + decode_responses: If True, decode bytes to strings + ema_alpha: Exponential moving average smoothing factor. + Default is 2/(24+1) β‰ˆ 0.08 for 24-hour window. + """ + # Create connection pool for thread-safe access + self.pool: ConnectionPool = redis.ConnectionPool( + host=host, + port=port, + db=db, + password=password, + max_connections=max_connections, + decode_responses=decode_responses, + socket_connect_timeout=2, # 2s connection timeout + socket_timeout=1, # 1s operation timeout + ) + + self.client: redis.Redis = redis.Redis(connection_pool=self.pool) + + # EMA configuration: Ξ± = 2/(n+1) for n=24 hours + self.ema_alpha: float = ema_alpha if ema_alpha is not None else 2.0 / (24 + 1) + + # TTL for keys (7 days = 604800 seconds) + # This prevents unbounded memory growth + self.key_ttl: int = 604800 + + # Test connection + try: + self.client.ping() + except redis.exceptions.ConnectionError as e: + raise ConnectionError( + f"Failed to connect to Redis at {host}:{port}. Ensure Redis is running. Error: {e}" + ) from e + + def _get_tx_history_key(self, user_id: str) -> str: + """Generate Redis key for transaction history ZSET.""" + return f"user:{user_id}:tx_history" + + def _get_avg_spend_key(self, user_id: str) -> str: + """Generate Redis key for average spend EMA.""" + return f"user:{user_id}:avg_spend" + + def add_transaction(self, user_id: str, amount: float, timestamp: Optional[int] = None) -> None: + """ + Record a new transaction and update features atomically. + + This method performs three atomic operations: + 1. Add transaction to sliding window (ZSET) + 2. Remove expired transactions (older than 24h) + 3. Update exponential moving average + + All operations are pipelined for performance (single round trip). + + Args: + user_id: User identifier + amount: Transaction amount in USD + timestamp: Unix timestamp. If None, uses current time. + + Raises: + redis.exceptions.RedisError: If Redis operation fails + + Example: + >>> store.add_transaction("u12345", 150.00, 1234567890) + """ + if timestamp is None: + timestamp = int(time.time()) + + # Calculate window boundaries + window_start = timestamp - 86400 # 24 hours = 86400 seconds + + tx_key = self._get_tx_history_key(user_id) + avg_key = self._get_avg_spend_key(user_id) + + # Use pipeline for atomic multi-operation + pipe: Pipeline = self.client.pipeline() + + # 1. Add transaction to sorted set (score = timestamp) + # Using transaction hash as member to allow duplicate amounts + tx_member = f"{timestamp}:{amount}" + pipe.zadd(tx_key, {tx_member: timestamp}) + + # 2. Remove transactions older than 24 hours + pipe.zremrangebyscore(tx_key, "-inf", window_start) + + # 3. Set TTL to prevent unbounded growth (reset on each transaction) + pipe.expire(tx_key, self.key_ttl) + + # 4. Update exponential moving average + # Get current EMA (default to amount if first transaction) + current_ema = self.client.get(avg_key) + if current_ema is None: + new_ema = amount + else: + current_ema = float(current_ema) + # EMA formula: Ξ± * x_new + (1-Ξ±) * EMA_old + new_ema = self.ema_alpha * amount + (1 - self.ema_alpha) * current_ema + + pipe.set(avg_key, new_ema) + pipe.expire(avg_key, self.key_ttl) + + # Execute all operations atomically + pipe.execute() + + def get_features( + self, user_id: str, current_timestamp: Optional[int] = None + ) -> Dict[str, float]: + """ + Retrieve real-time features for a user. + + This is the primary method called during inference. It returns + the stateful features needed by the fraud detection model. + + Args: + user_id: User identifier + current_timestamp: Current Unix timestamp. If None, uses system time. + + Returns: + Dictionary containing: + - trans_count_24h: Number of transactions in last 24 hours + - avg_spend_24h: Exponential moving average of spending + + Example: + >>> features = store.get_features("u12345") + >>> print(features) + {'trans_count_24h': 5.0, 'avg_spend_24h': 120.50} + """ + if current_timestamp is None: + current_timestamp = int(time.time()) + + window_start = current_timestamp - 86400 + + tx_key = self._get_tx_history_key(user_id) + avg_key = self._get_avg_spend_key(user_id) + + # Use pipeline for efficiency + pipe: Pipeline = self.client.pipeline() + + # Count transactions in window (ZCOUNT is O(log N)) + pipe.zcount(tx_key, window_start, current_timestamp) + + # Get average spend + pipe.get(avg_key) + + results = pipe.execute() + + trans_count = float(results[0]) + avg_spend = float(results[1]) if results[1] is not None else 0.0 + + return { + "trans_count_24h": trans_count, + "avg_spend_24h": avg_spend, + } + + def get_transaction_history( + self, user_id: str, lookback_hours: int = 24 + ) -> List[Tuple[int, float]]: + """ + Retrieve raw transaction history for a user. + + Useful for debugging and analytics. Not typically used in inference. + + Args: + user_id: User identifier + lookback_hours: How many hours of history to retrieve + + Returns: + List of tuples: [(timestamp, amount), ...] + Sorted by timestamp (newest first) + + Example: + >>> history = store.get_transaction_history("u12345", lookback_hours=48) + >>> for ts, amt in history: + ... print(f"{ts}: ${amt:.2f}") + """ + current_time = int(time.time()) + window_start = current_time - (lookback_hours * 3600) + + tx_key = self._get_tx_history_key(user_id) + + # Get all transactions in window with scores (timestamps) + # ZRANGEBYSCORE with WITHSCORES + raw_results = self.client.zrangebyscore(tx_key, window_start, current_time, withscores=True) + + # Parse results: member format is "timestamp:amount" + transactions = [] + for member, score in raw_results: + timestamp_str, amount_str = member.split(":") + transactions.append((int(timestamp_str), float(amount_str))) + + # Sort by timestamp descending (newest first) + transactions.sort(reverse=True, key=lambda x: x[0]) + + return transactions + + def delete_user_data(self, user_id: str) -> int: + """ + Delete all feature data for a user. + + Used for GDPR compliance / right to be forgotten. + + Args: + user_id: User identifier + + Returns: + Number of keys deleted (should be 2) + + Example: + >>> deleted = store.delete_user_data("u12345") + >>> print(f"Deleted {deleted} keys") + """ + tx_key = self._get_tx_history_key(user_id) + avg_key = self._get_avg_spend_key(user_id) + + return self.client.delete(tx_key, avg_key) + + def health_check(self) -> Dict[str, any]: + """ + Check Redis connection health and get statistics. + + Returns: + Dictionary with health metrics + + Example: + >>> health = store.health_check() + >>> print(health) + {'status': 'healthy', 'ping_ms': 0.5, 'connected_clients': 10} + """ + try: + start = time.time() + self.client.ping() + ping_ms = (time.time() - start) * 1000 + + # Get Redis info + info = self.client.info("stats") + + return { + "status": "healthy", + "ping_ms": round(ping_ms, 2), + "connected_clients": info.get("connected_clients", -1), + "total_commands_processed": info.get("total_commands_processed", -1), + } + except Exception as e: + return { + "status": "unhealthy", + "error": str(e), + } + + def close(self) -> None: + """ + Close the connection pool. + + Call this when shutting down the application. + """ + self.pool.disconnect() + + +__all__ = ["RedisFeatureStore"] diff --git a/src/frontend/app.py b/src/frontend/app.py new file mode 100644 index 0000000000000000000000000000000000000000..07ce1f0c10a797d7ca706ae75257e57a79529559 --- /dev/null +++ b/src/frontend/app.py @@ -0,0 +1,247 @@ +import streamlit as st +import pandas as pd +import requests +import plotly.graph_objects as ob +import json +from datetime import datetime, time +import plotly.express as px +from src.features.constants import category_names, job_names + +# 1. Configuration & Layout +st.set_page_config(page_title="PayShield Monitor", layout="wide", page_icon="πŸ›‘οΈ") + +# Custom CSS for FinTech Aesthetic +st.markdown(""" + + """, unsafe_allow_html=True) + +st.title("πŸ›‘οΈ PayShield-ML Analyst Workbench") +st.markdown("---") + +# 2. Sidebar: Transaction Simulator +with st.sidebar: + st.header("πŸ›’ Transaction Simulator") + + with st.expander("πŸ‘€ User Profile", expanded=True): + user_id = st.text_input("User ID", value="u12345") + job = st.selectbox("Job Title", options=sorted(job_names), index=sorted(job_names).index("Engineer, biomedical") if "Engineer, biomedical" in job_names else 0) + dob = st.date_input("Date of Birth", value=datetime(1985, 3, 20)) + gender = st.radio("Gender", ["M", "F"], horizontal=True) + + with st.expander("πŸ’³ Transaction Details", expanded=True): + amt = st.number_input("Amount ($)", min_value=0.01, value=150.0, step=10.0) + category = st.selectbox("Category", options=sorted(category_names), index=sorted(category_names).index("grocery_pos") if "grocery_pos" in category_names else 0) + trans_date = st.date_input("Transaction Date", value=datetime.now()) + trans_time = st.time_input("Transaction Time", value=time(14, 30)) + + with st.expander("πŸ“ Location Details", expanded=True): + st.caption("User Coordinates") + lat = st.number_input("User Lat", value=40.7128, format="%.4f") + long = st.number_input("User Long", value=-74.0060, format="%.4f") + + st.caption("Merchant Coordinates") + merch_lat = st.number_input("Merchant Lat", value=40.7200, format="%.4f") + merch_long = st.number_input("Merchant Long", value=-74.0100, format="%.4f") + + with st.expander("πŸ› οΈ Advanced: Feature Overrides", expanded=False): + st.caption("Force specific values for sensitivity analysis") + override_trans_count = st.number_input("Count (24h)", min_value=0, value=0, help="Leave 0 to use real-time data") + override_avg_spend = st.number_input("Avg Spend (24h)", min_value=0.0, value=0.0, help="Leave 0 to use real-time data") + override_user_avg_all_time = st.number_input("User Avg (All Time)", min_value=0.0, value=0.0, help="Leave 0 to use calculated value") + + analyze_btn = st.button("πŸš€ Analyze Transaction", use_container_width=True, type="primary") + +# 3. Main Dashboard Logic +if analyze_btn: + # Construct Payload + trans_dt = datetime.combine(trans_date, trans_time) + payload = { + "user_id": user_id, + "trans_date_trans_time": trans_dt.strftime("%Y-%m-%d %H:%M:%S"), + "amt": amt, + "lat": lat, + "long": long, + "merch_lat": merch_lat, + "merch_long": merch_long, + "job": job, + "category": category, + "gender": gender, + "dob": dob.strftime("%Y-%m-%d") + } + + # Add overrides if set + if override_trans_count > 0: + payload["trans_count_24h"] = override_trans_count + if override_avg_spend > 0: + payload["avg_spend_24h"] = override_avg_spend + if override_user_avg_all_time > 0: + payload["user_avg_amt_all_time"] = override_user_avg_all_time + + try: + # Step 1: Call API + with st.spinner("Analyzing with XGBoost Engine..."): + # Use docker-internal DNS or localhost depending on environment + import os + api_url = os.getenv("API_URL", "http://127.0.0.1:8000/v1/predict") + response = requests.post(api_url, json=payload, timeout=5) + + if response.status_code == 200: + res = response.json() + score = res["risk_score"] + decision = res["decision"] + latency = res["latency_ms"] + is_shadow = res.get("shadow_mode", False) + features = res.get("features", {}) # Get real features used + + # Columns for high-level metrics + m1, m2, m3 = st.columns(3) + with m1: + st.metric("Decision Result", decision) + with m2: + st.metric("Risk Score", f"{score:.1f}/100") + with m3: + st.metric("Inference Latency", f"{latency:.2f}ms") + + # Decision Banner + if decision == "BLOCK": + st.markdown('', unsafe_allow_html=True) + else: + st.markdown('', unsafe_allow_html=True) + + if is_shadow and decision == "BLOCK": + st.markdown('', unsafe_allow_html=True) + + # 4. Visualizations + v1, v2 = st.columns([1, 1]) + + with v1: + st.subheader("🎯 Risk Gauge") + fig = ob.Figure(ob.Indicator( + mode = "gauge+number", + value = score, + domain = {'x': [0, 1], 'y': [0, 1]}, + title = {'text': "Confidence Score (%)"}, + gauge = { + 'axis': {'range': [0, 100]}, + 'bar': {'color': "#333"}, + 'steps': [ + {'range': [0, 50], 'color': "rgba(40, 167, 69, 0.3)"}, + {'range': [50, 82], 'color': "rgba(255, 193, 7, 0.3)"}, + {'range': [82, 100], 'color': "rgba(220, 53, 69, 0.3)"} + ], + 'threshold': { + 'line': {'color': "black", 'width': 4}, + 'thickness': 0.75, + 'value': 82 + } + } + )) + fig.update_layout(height=350, margin=dict(l=20, r=20, t=50, b=20)) + st.plotly_chart(fig, use_container_width=True) + + with v2: + st.subheader("πŸ“Š Feature Explainability (SHAP)") + shap_data = res.get("shap_values", {}) + + if shap_data: + # Create DataFrame from real SHAP values + shap_df = pd.DataFrame([ + {"Feature": k, "Impact": v, "Abs_Impact": abs(v)} + for k, v in shap_data.items() + ]).sort_values("Abs_Impact", ascending=True) + + # Color based on positive/negative contribution + colors = ["#dc3545" if x > 0 else "#28a745" for x in shap_df["Impact"]] + + fig_shap = px.bar( + shap_df, + x="Impact", + y="Feature", + orientation="h", + title="Top Feature Contributions to Risk Score", + color="Impact", + color_continuous_scale=["#28a745", "#ffc107", "#dc3545"], + labels={"Impact": "SHAP Value (Impact on Prediction)"} + ) + fig_shap.update_layout( + height=350, + margin=dict(l=20, r=20, t=50, b=20), + showlegend=False + ) + st.plotly_chart(fig_shap, use_container_width=True) + st.caption("πŸ”΄ Red = Increases fraud risk | 🟒 Green = Decreases fraud risk") + else: + st.info("SHAP explainability not available. Enable it in API settings.") + + # 5. Internal Data State (Architectural Demo) + st.markdown("---") + d1, d2 = st.columns([1, 1]) + + with d1: + st.subheader("πŸ—„οΈ Feature Store Payload") + if features: + st.info("Real-time features used for inference (from Redis or Overrides):") + # Format for better readability + display_features = { + "Velocity (24h)": features.get("trans_count_24h"), + "Avg Spend (24h)": f"${features.get('avg_spend_24h', 0):.2f}", + "Current/Avg Ratio": f"{features.get('amt_to_avg_ratio_24h', 0):.2f}x", + "User Avg (All Time)": f"${features.get('user_avg_amt_all_time', 0):.2f}" + } + st.table(pd.DataFrame([display_features])) + else: + st.warning("No feature data returned from API.") + + with d2: + st.subheader("πŸ” API RAW Response") + with st.expander("View JSON", expanded=False): + st.json(res) + + else: + st.error(f"API Error: Status {response.status_code}") + st.json(response.json()) + + except requests.exceptions.ConnectionError: + st.error("πŸ›‘ Connection Failed: Could not connect to Inference API. Is the server running at http://127.0.0.1:8000?") + st.info("Try running: `uv run uvicorn src.api.main:app --reload`") + except Exception as e: + st.error(f"⚠️ Unexpected Error: {str(e)}") + +else: + # Landing State + st.info("πŸ‘ˆ Fill in the details in the sidebar and click 'Analyze Transaction' to start.") + + # Hero/Demo Content + c1, c2, c3 = st.columns(3) + c1.markdown("### ⚑ Low Latency\nSub-50ms inference utilizing XGBoost and Redis.") + c2.markdown("### πŸ“‹ Explainable\nSHAP integration for transparent fraud scoring.") + c3.markdown("### πŸ§ͺ Shadow Mode\nSafe production testing of new model versions.") diff --git a/src/models/__init__.py b/src/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..dce4e2413a372061cbec5ba8e6fad0240ef9a648 --- /dev/null +++ b/src/models/__init__.py @@ -0,0 +1 @@ +# Empty __init__.py for models module diff --git a/src/models/metrics.py b/src/models/metrics.py new file mode 100644 index 0000000000000000000000000000000000000000..967336b5a18cf6f3e3d0b0fbbe11c4bc02d38763 --- /dev/null +++ b/src/models/metrics.py @@ -0,0 +1,95 @@ +""" +Evaluation Metrics. + +Utilities for calculating custom performance metrics and optimizing thresholds. +""" + +import json +from pathlib import Path +from typing import Dict, Tuple + +import numpy as np +from sklearn.metrics import f1_score, precision_recall_curve, auc, recall_score, precision_score + + +def calculate_metrics( + y_true: np.ndarray, y_prob: np.ndarray, threshold: float = 0.5 +) -> Dict[str, float]: + """ + Calculate comprehensive set of evaluation metrics. + + Args: + y_true: True binary labels + y_prob: Predicted probabilities + threshold: Decision threshold + + Returns: + Dictionary of metrics + """ + y_pred = (y_prob >= threshold).astype(int) + + precision, recall, _ = precision_recall_curve(y_true, y_prob) + pr_auc = auc(recall, precision) + + return { + "precision": float(precision_score(y_true, y_pred, zero_division=0)), + "recall": float(recall_score(y_true, y_pred, zero_division=0)), + "f1": float(f1_score(y_true, y_pred, zero_division=0)), + "pr_auc": float(pr_auc), + "threshold_used": float(threshold), + } + + +def find_optimal_threshold( + y_true: np.ndarray, y_prob: np.ndarray, min_recall: float = 0.80 +) -> Tuple[float, Dict[str, float]]: + """ + Find optimal threshold based on 'Recall Constraint' strategy (Notebook Method). + + Strategy: + 1. Filter for thresholds where Recall >= min_recall (e.g., 0.80) + 2. From that subset, choose the threshold that yields the HIGHEST Precision + + This ensures we catch at least 80% of fraud (primary goal) while minimizing + false alarms (customer friction) as much as possible. + + Args: + y_true: True binary labels + y_prob: Predicted probabilities + min_recall: Minimum required recall (default 0.80 from Notebook) + + Returns: + Tuple: (best_threshold, metrics_at_threshold) + """ + precisions, recalls, thresholds = precision_recall_curve(y_true, y_prob) + + # Remove last 1 to match dimensions (sklearn quirk) + precisions = precisions[:-1] + recalls = recalls[:-1] + + # 1. Filter for Recall Requirement (Catching enough fraud) + valid_indices = np.where(recalls >= min_recall)[0] + + if len(valid_indices) > 0: + # 2. Maximize Precision among those valid points + best_idx = valid_indices[np.argmax(precisions[valid_indices])] + best_thresh = thresholds[best_idx] + print(f"Target met: Recall >= {min_recall:.2%}") + else: + # Fallback: If model is too weak to hit target, maximize F1 + f1_scores = 2 * (precisions * recalls) / (precisions + recalls + 1e-10) + best_idx = np.argmax(f1_scores) + best_thresh = thresholds[best_idx] + print( + f"Target missed (Recall < {min_recall:.2%}). Maximizing F1. Best Recall: {recalls[best_idx]:.4f}" + ) + + # Calculate final metrics for the chosen threshold + metrics = calculate_metrics(y_true, y_prob, best_thresh) + return float(best_thresh), metrics + + +def save_threshold(threshold: float, path: str = "models/threshold.json"): + """Save optimized threshold to JSON""" + with open(path, "w") as f: + json.dump({"optimal_threshold": threshold}, f) diff --git a/src/models/pipeline.py b/src/models/pipeline.py new file mode 100644 index 0000000000000000000000000000000000000000..0fba57b3716dcd3bc44e0cba40b15a0322aed8e6 --- /dev/null +++ b/src/models/pipeline.py @@ -0,0 +1,179 @@ +""" +Feature Engineering Pipeline. + +Constructs a robust Scikit-Learn pipeline for fraud detection. +Includes custom transformers for feature extraction and standard transformers +for scaling and encoding. + +Derived from notebook analysis: +- Categorical: WOE Encoding (job, category) +- Numerical: Robust Scaling (amt, distance) +- Time: Cyclical encoding (sin/cos) +- Geo: Haversine distance +""" + +from typing import Dict, List, Optional, Union + +import numpy as np +import pandas as pd +from category_encoders import WOEEncoder +from sklearn.base import BaseEstimator, TransformerMixin +from sklearn.compose import ColumnTransformer +from sklearn.pipeline import Pipeline +from sklearn.preprocessing import RobustScaler +from xgboost import XGBClassifier + + +class FraudFeatureExtractor(BaseEstimator, TransformerMixin): + """ + Custom transformer to compute derived features for fraud detection. + + Implements feature engineering logic from research notebook: + 1. Distance calculation (Haversine) + 2. Cyclical time features (hour/day sin/cos) + 3. Log transformations (amount, time diff) + 4. Age calculation + 5. Ratio features (if not already computed) + """ + + def __init__(self): + pass + + def fit(self, X, y=None): + return self + + def transform(self, X): + """ + Compute derived features. + + Args: + X: DataFrame with raw columns + + Returns: + DataFrame with additional feature columns + """ + # Avoid modifying original dataframe + X = X.copy() + + # 1. Date/Time Features + if "trans_date_trans_time" in X.columns: + # Convert to datetime if string + if X["trans_date_trans_time"].dtype == "object": + X["trans_date_trans_time"] = pd.to_datetime(X["trans_date_trans_time"]) + + dt = X["trans_date_trans_time"].dt + + # Cyclical encoding for hour (0-23) + X["hour_sin"] = np.sin(2 * np.pi * dt.hour / 24) + X["hour_cos"] = np.cos(2 * np.pi * dt.hour / 24) + + # Cyclical encoding for day of week (0-6) + X["day_sin"] = np.sin(2 * np.pi * dt.dayofweek / 7) + X["day_cos"] = np.cos(2 * np.pi * dt.dayofweek / 7) + + # Calculate Age from DOB + if "dob" in X.columns: + if X["dob"].dtype == "object": + X["dob"] = pd.to_datetime(X["dob"]) + # Approximation: (Dataset Year - DOB Year) + # Using transaction year + X["age"] = dt.year - X["dob"].dt.year + + # 2. Geolocation Features (Haversine Distance) + if all(c in X.columns for c in ["lat", "long", "merch_lat", "merch_long"]): + X["distance_km"] = self._haversine_distance( + X["lat"], X["long"], X["merch_lat"], X["merch_long"] + ) + + # 3. Log Transformations + if "amt" in X.columns: + X["amt_log"] = np.log1p(X["amt"]) + + # 4. Gender Mapping (M=1, F=0) + if "gender" in X.columns: + X["gender"] = X["gender"].map({"M": 1, "F": 0}).astype(int) + + return X + + def _haversine_distance(self, lat1, lon1, lat2, lon2): + """ + Calculate the great circle distance between two points + on the earth (specified in decimal degrees). + """ + # Convert decimal degrees to radians + lat1, lon1, lat2, lon2 = map(np.radians, [lat1, lon1, lat2, lon2]) + + # Haversine formula + dlon = lon2 - lon1 + dlat = lat2 - lat1 + a = np.sin(dlat / 2) ** 2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon / 2) ** 2 + c = 2 * np.arcsin(np.sqrt(a)) + r = 6371 # Radius of earth in kilometers + return c * r + + +def create_fraud_pipeline(params: Dict[str, any]) -> Pipeline: + """ + Create a complete training pipeline. + + Args: + params: Dictionary of hyperparameters for XGBoost and encoders. + + Returns: + Sklearn Pipeline: FeatureExtraction -> ColumnTransformer -> XGBClassifier + """ + + # Define feature groups + categorical_features = ["job", "category"] + + # Numerical features to scale (continuous, unbounded) + numerical_features = [ + "amt_log", + "age", + "distance_km", + "trans_count_24h", + "amt_to_avg_ratio_24h", + "amt_relative_to_all_time", + ] + + # Binary features (0/1, no processing needed) + binary_features = ["gender"] + + # Cyclical features (already normalized to -1 to 1, no processing needed) + cyclical_features = ["hour_sin", "hour_cos", "day_sin", "day_cos"] + + # Preprocessing Pipeline + preprocessor = ColumnTransformer( + transformers=[ + ("cat", WOEEncoder(sigma=0.05, regularization=1.0), categorical_features), + ("num", RobustScaler(), numerical_features), + ("binary", "passthrough", binary_features), + ("cyclical", "passthrough", cyclical_features), + ], + remainder="drop", # Drop unused columns (like raw lat/long/timestamps) + verbose_feature_names_out=False, + ) + + # Full Pipeline + pipeline = Pipeline( + [ + ("features", FraudFeatureExtractor()), + ("preprocessor", preprocessor), + ( + "model", + XGBClassifier( + tree_method="hist", + max_depth=params.get("max_depth", 6), + learning_rate=params.get("learning_rate", 0.1), + n_estimators=params.get("n_estimators", 100), + objective="binary:logistic", + eval_metric="aucpr", + random_state=42, + n_jobs=-1, + scale_pos_weight=params.get("scale_pos_weight", 100), # Handle class imbalance + ), + ), + ] + ) + + return pipeline diff --git a/src/models/train.py b/src/models/train.py new file mode 100644 index 0000000000000000000000000000000000000000..257cc8e59512a950a3c989c4f3f18a57dcad6ec1 --- /dev/null +++ b/src/models/train.py @@ -0,0 +1,325 @@ +""" +Model Training Script with MLflow Tracking. + +CLI script to train the fraud detection model with comprehensive experiment tracking. +Logs hyperparameters, metrics, and artifacts to MLflow. + +Usage: + python src/models/train.py --data_path data/fraudTrain.csv + python src/models/train.py --data_path data/fraudTrain.csv --experiment_name fraud_v2 +""" + +import argparse +import json +import os +from pathlib import Path +from typing import Dict, Tuple + +import joblib +import mlflow +import mlflow.sklearn +import numpy as np +import pandas as pd +import yaml +from sklearn.model_selection import train_test_split + +from src.data.ingest import load_dataset +from src.models.metrics import calculate_metrics, find_optimal_threshold +from src.models.pipeline import create_fraud_pipeline + + +def parse_args(): + """Parse command line arguments.""" + parser = argparse.ArgumentParser(description="Train fraud detection model") + + parser.add_argument( + "--data_path", type=str, required=True, help="Path to input CSV/Parquet file" + ) + + parser.add_argument( + "--params_path", + type=str, + default="configs/model_config.yaml", + help="Path to model configuration YAML", + ) + + parser.add_argument( + "--experiment_name", type=str, default="fraud_detection", help="MLflow experiment name" + ) + + parser.add_argument("--test_size", type=float, default=0.2, help="Test set proportion (0-1)") + + parser.add_argument( + "--min_recall", + type=float, + default=0.80, + help="Minimum recall target for threshold optimization (Notebook: 0.80)", + ) + + parser.add_argument( + "--output_dir", type=str, default="models", help="Directory to save model artifacts" + ) + + return parser.parse_args() + + +def load_config(config_path: str) -> Dict: + """Load model configuration from YAML.""" + with open(config_path, "r") as f: + config = yaml.safe_load(f) + return config + + +def prepare_data(df: pd.DataFrame) -> Tuple[pd.DataFrame, pd.Series]: + """ + Prepare features and target from raw dataframe. + + Args: + df: Raw transaction data + df contains Training set for Credit Card Transactions + index - Unique Identifier for each row + trans_date_trans_time - Transaction DateTime + cc_num - Credit Card Number of Customer + merchant - Merchant Name + category - Category of Merchant + amt - Amount of Transaction + first - First Name of Credit Card Holder + last - Last Name of Credit Card Holder + gender - Gender of Credit Card Holder + street - Street Address of Credit Card Holder + city - City of Credit Card Holder + state - State of Credit Card Holder + zip - Zip of Credit Card Holder + lat - Latitude Location of Credit Card Holder + long - Longitude Location of Credit Card Holder + city_pop - Credit Card Holder's City Population + job - Job of Credit Card Holder + dob - Date of Birth of Credit Card Holder + trans_num - Transaction Number + unix_time - UNIX Time of transaction + merch_lat - Latitude Location of Merchant + merch_long - Longitude Location of Merchant + is_fraud - Fraud Flag <--- Target Class + + Returns: + Tuple of (X, y) + """ + # Required columns for training + required_cols = [ + "trans_date_trans_time", + "amt", + "lat", + "long", + "merch_lat", + "merch_long", + "job", + "category", + "gender", + "dob", + "is_fraud", + ] + + # Compute feature store features from raw data + # Sort by user and timestamp for rolling window calculations + print(" β†’ Computing rolling window features (trans_count_24h, avg_amt_24h)...") + + # CRITICAL: Convert to datetime BEFORE using as index for time-based rolling windows + df["trans_date_trans_time"] = pd.to_datetime(df["trans_date_trans_time"]) + + df = df.sort_values(["cc_num", "trans_date_trans_time"]) + df = df.set_index("trans_date_trans_time") + + # 1. Transaction Velocity (Rolling Count) + # Identifies sudden bursts in card usage + df["trans_count_24h"] = ( + df.groupby("cc_num")["amt"] + .rolling("24h") + .count() + .shift(1) + .reset_index(0, drop=True) + .fillna(0) + ) + + # 2. Recent Spending Baseline (Rolling Mean) + # Needed for the 24h ratio calculation + df["avg_amt_24h"] = ( + df.groupby("cc_num")["amt"] + .rolling("24h") + .mean() + .shift(1) + .reset_index(0, drop=True) + .fillna(df["amt"]) + ) + + # 3. All-time Spending Profile (Expanding Mean) + # Captures long-term user behavior + df["user_avg_amt_all_time"] = ( + df.groupby("cc_num")["amt"] + .transform(lambda x: x.expanding().mean().shift(1)) + .fillna(df["amt"]) + ) + + # Reset index to restore dataframe structure + df = df.reset_index() + + # 4. Derived Ratio Features + # Identifies spikes relative to recent 24-hour activity (Burst Detection) + df["amt_to_avg_ratio_24h"] = df["amt"] / df["avg_amt_24h"] + + # Identifies spikes relative to long-term behavior (Anomaly Detection) + df["amt_relative_to_all_time"] = df["amt"] / df["user_avg_amt_all_time"] + + # Extract target + y = df["is_fraud"] + + # Features (pipeline will extract derived features) + feature_cols = [c for c in df.columns if c != "is_fraud"] + X = df[feature_cols] + + return X, y + + +def train_model(args): + """Main training workflow.""" + + print("=" * 70) + print("PayShield-ML: Fraud Detection Training Pipeline") + print("=" * 70) + + # 1. Load Configuration + print(f"\n[1/7] Loading configuration from {args.params_path}") + config = load_config(args.params_path) + model_params = config.get("model", {}) + + # 2. Load Data + print(f"\n[2/7] Loading data from {args.data_path}") + df = load_dataset(args.data_path, validate=False) # Skip validation for speed + print(f" β†’ Loaded {len(df):,} transactions") + print(f" β†’ Fraud rate: {df['is_fraud'].mean() * 100:.2f}%") + + # 3. Prepare Features + print(f"\n[3/7] Preparing features and target") + X, y = prepare_data(df) + print(f" β†’ Features shape: {X.shape}") + print(f" β†’ Target shape: {y.shape}") + + # 4. Train/Test Split (TEMPORAL - No Data Leakage) + print(f"\n[4/7] Splitting data temporally (test_size={args.test_size})") + + # A. Data is already sorted from prepare_data (for rolling window calculations) + # But let's ensure it's sorted and reset index + df_combined = pd.concat([X, y], axis=1) + df_combined = df_combined.sort_values("trans_date_trans_time").reset_index(drop=True) + + # B. Calculate split index (strictly temporal) + split_index = int(len(df_combined) * (1 - args.test_size)) + + # C. Split strictly by index (No shuffling) + train_df = df_combined.iloc[:split_index] + test_df = df_combined.iloc[split_index:] + + # D. Separate Features and Target + X_train = train_df.drop("is_fraud", axis=1) + y_train = train_df["is_fraud"] + X_test = test_df.drop("is_fraud", axis=1) + y_test = test_df["is_fraud"] + + # E. Report temporal boundaries and fraud rates + print(f" β†’ Train: {len(X_train):,} samples") + print(f" β€’ Earliest: {train_df['trans_date_trans_time'].min()}") + print(f" β€’ Latest: {train_df['trans_date_trans_time'].max()}") + print(f" β€’ Fraud Rate: {y_train.mean():.4%}") + + print(f" β†’ Test: {len(X_test):,} samples") + print(f" β€’ Earliest: {test_df['trans_date_trans_time'].min()}") + print(f" β€’ Latest: {test_df['trans_date_trans_time'].max()}") + print(f" β€’ Fraud Rate: {y_test.mean():.4%}") + + # F. Sanity check: Ensure test is strictly after train + if train_df["trans_date_trans_time"].max() >= test_df["trans_date_trans_time"].min(): + print(" ⚠ WARNING: Temporal overlap detected between train and test sets!") + + # 5. Initialize MLflow + print(f"\n[5/7] Initializing MLflow experiment: {args.experiment_name}") + mlflow.set_experiment(args.experiment_name) + + with mlflow.start_run(): + # Calculate class imbalance ratio from actual training data + imbalance_ratio = (y_train == 0).sum() / (y_train == 1).sum() + print(f"\n β†’ Class Imbalance Ratio: {imbalance_ratio:.2f}:1 (negative:positive)") + + # Override scale_pos_weight with calculated ratio + model_params["scale_pos_weight"] = imbalance_ratio + + # Log parameters + mlflow.log_params(model_params) + mlflow.log_param("test_size", args.test_size) + mlflow.log_param("min_recall_target", args.min_recall) + mlflow.log_param("n_train_samples", len(X_train)) + mlflow.log_param("n_test_samples", len(X_test)) + + # 6. Train Pipeline + print(f"\n[6/7] Training pipeline") + pipeline = create_fraud_pipeline(model_params) + + print(" β†’ Fitting model...") + pipeline.fit(X_train, y_train) + print(" βœ“ Training complete") + + # Predict probabilities + y_train_prob = pipeline.predict_proba(X_train)[:, 1] + y_test_prob = pipeline.predict_proba(X_test)[:, 1] + + # 7. Optimize Threshold + print(f"\n[7/7] Optimizing decision threshold (target recall >= {args.min_recall:.2%})") + optimal_threshold, threshold_metrics = find_optimal_threshold( + y_test, y_test_prob, min_recall=args.min_recall + ) + print(f" β†’ Optimal threshold: {optimal_threshold:.4f}") + print(f" β†’ Precision: {threshold_metrics['precision']:.4f}") + print(f" β†’ Recall: {threshold_metrics['recall']:.4f}") + print(f" β†’ F1 Score: {threshold_metrics['f1']:.4f}") + print(f" β†’ PR-AUC: {threshold_metrics['pr_auc']:.4f}") + + # Log metrics to MLflow + mlflow.log_metrics( + { + "train_pr_auc": float(calculate_metrics(y_train, y_train_prob, 0.5)["pr_auc"]), + "test_precision": threshold_metrics["precision"], + "test_recall": threshold_metrics["recall"], + "test_f1": threshold_metrics["f1"], + "test_pr_auc": threshold_metrics["pr_auc"], + "optimal_threshold": optimal_threshold, + } + ) + + # Save artifacts locally + output_dir = Path(args.output_dir) + output_dir.mkdir(parents=True, exist_ok=True) + + # Save model + model_path = output_dir / "fraud_model.pkl" + joblib.dump(pipeline, model_path) + print(f"\nβœ“ Model saved to {model_path}") + + # Save threshold + threshold_path = output_dir / "threshold.json" + with open(threshold_path, "w") as f: + json.dump( + {"optimal_threshold": optimal_threshold, "metrics": threshold_metrics}, f, indent=2 + ) + print(f"βœ“ Threshold saved to {threshold_path}") + + # Log artifacts to MLflow + mlflow.sklearn.log_model(pipeline, "model") + mlflow.log_artifact(str(threshold_path)) + + print("\n" + "=" * 70) + print("βœ… Training Complete!") + print(f"MLflow Run ID: {mlflow.active_run().info.run_id}") + print("=" * 70) + + +if __name__ == "__main__": + args = parse_args() + train_model(args) diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..2646196969c73c8bbd812a56ffd1ab530ca6909c --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +# Empty __init__.py for tests package diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000000000000000000000000000000000000..fe084d179230cd03003328b9602fcf47a13d349a --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,118 @@ +""" +Pytest Configuration and Fixtures + +Provides shared fixtures for testing data ingestion and feature store. +""" + +import os +from typing import Generator + +import pytest +import redis +from redis import Redis + +from src.features.store import RedisFeatureStore + + +@pytest.fixture(scope="session") +def redis_client() -> Generator[Redis, None, None]: + """ + Provide a Redis client for testing. + + Uses a separate test database (db=15) to avoid polluting production data. + Requires Redis to be running on localhost:6379. + """ + # Check if Redis is available + client = redis.Redis( + host=os.getenv("REDIS_HOST", "localhost"), + port=int(os.getenv("REDIS_PORT", "6379")), + db=15, # Use separate DB for tests + decode_responses=True, + ) + + try: + client.ping() + except redis.ConnectionError: + pytest.skip("Redis not available. Start with: docker run -d -p 6379:6379 redis:7-alpine") + + yield client + + # Cleanup: flush test database + client.flushdb() + client.close() + + +@pytest.fixture +def feature_store(redis_client: Redis) -> RedisFeatureStore: + """ + Provide a RedisFeatureStore instance for testing. + + Automatically cleans up after each test. + """ + store = RedisFeatureStore( + host=os.getenv("REDIS_HOST", "localhost"), + port=int(os.getenv("REDIS_PORT", "6379")), + db=15, # Test database + ) + + yield store + + # Cleanup is handled by redis_client fixture + + +@pytest.fixture +def sample_transaction() -> dict: + """Provide a valid sample transaction for testing.""" + return { + "trans_date_trans_time": "2019-01-01 00:00:18", + "cc_num": 2703186189652095, + "merchant": "fraud_Rippin, Kub and Mann", + "category": "misc_net", + "amt": 4.97, + "first": "Jennifer", + "last": "Banks", + "gender": "F", + "street": "561 Perry Cove", + "city": "Moravian Falls", + "state": "NC", + "zip": 28654, + "lat": 36.0788, + "long": -81.1781, + "city_pop": 3495, + "job": "Psychologist, counselling", + "dob": "1988-03-09", + "trans_num": "0b242abb623afc578575680df30655b9", + "unix_time": 1325376018, + "merch_lat": 36.011293, + "merch_long": -82.048315, + "is_fraud": 0, + } + + +@pytest.fixture +def invalid_transaction() -> dict: + """Provide an invalid transaction for validation testing.""" + return { + "trans_date_trans_time": "2019-01-01 00:00:18", + "cc_num": 2703186189652095, + "merchant": "Test Merchant", + "category": "invalid_category", # Invalid! + "amt": -50.00, # Negative amount - invalid! + "first": "John", + "last": "Doe", + "gender": "M", + "street": "123 Main St", + "city": "Springfield", + "state": "IL", + "zip": 62701, + "lat": 200.0, # Invalid latitude! + "long": -81.1781, + "city_pop": 100000, + "job": "Engineer", + "dob": "1990-01-01", + "trans_num": "abc123", + "unix_time": 1325376018, + "merch_lat": 36.011293, + "merch_long": -82.048315, + "is_fraud": 0, + } diff --git a/tests/test_api/__init__.py b/tests/test_api/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5c43f5fd37d3f9928d4cba6f96512d319ebc9f2b --- /dev/null +++ b/tests/test_api/__init__.py @@ -0,0 +1 @@ +# Test API module __init__ diff --git a/tests/test_api/test_inference.py b/tests/test_api/test_inference.py new file mode 100644 index 0000000000000000000000000000000000000000..cdeb5899f673b6ebabcc57ecc347b4d950492d29 --- /dev/null +++ b/tests/test_api/test_inference.py @@ -0,0 +1,142 @@ +""" +Integration tests for FastAPI inference service. +""" + +import json +from pathlib import Path + +import pytest +from fastapi.testclient import TestClient + + +# Note: These tests require a trained model to be present +# Run training first: python src/models/train.py --data_path ... + + +@pytest.fixture +def api_client(): + """Create test client for API.""" + # Import here to avoid startup issues before model is trained + from src.api.main import app + + return TestClient(app) + + +@pytest.fixture +def sample_request_data(): + """Sample prediction request.""" + return { + "user_id": "test_user_123", + "trans_date_trans_time": "2020-06-15 14:30:00", + "amt": 150.00, + "lat": 40.7128, + "long": -74.0060, + "merch_lat": 40.7200, + "merch_long": -74.0100, + "job": "Engineer, biomedical", + "category": "grocery_pos", + "gender": "M", + "dob": "1985-03-20", + } + + +class TestHealthEndpoint: + """Tests for health check endpoint.""" + + def test_health_endpoint_exists(self, api_client): + """Test that health endpoint is accessible.""" + response = api_client.get("/health") + assert response.status_code == 200 + + def test_health_response_structure(self, api_client): + """Test health response has correct structure.""" + response = api_client.get("/health") + data = response.json() + + assert "status" in data + assert "model_loaded" in data + assert "redis_connected" in data + assert "version" in data + + +class TestPredictEndpoint: + """Tests for prediction endpoint.""" + + @pytest.mark.skip(reason="Requires trained model - run after training") + def test_predict_endpoint_returns_200(self, api_client, sample_request_data): + """Test that predict endpoint returns 200 OK.""" + response = api_client.post("/v1/predict", json=sample_request_data) + assert response.status_code == 200 + + @pytest.mark.skip(reason="Requires trained model - run after training") + def test_predict_response_structure(self, api_client, sample_request_data): + """Test prediction response has correct structure.""" + response = api_client.post("/v1/predict", json=sample_request_data) + data = response.json() + + # Required fields + assert "decision" in data + assert "probability" in data + assert "risk_score" in data + assert "latency_ms" in data + assert "shadow_mode" in data + + # Value constraints + assert data["decision"] in ["BLOCK", "APPROVE"] + assert 0 <= data["probability"] <= 1 + assert 0 <= data["risk_score"] <= 100 + assert data["latency_ms"] > 0 + + @pytest.mark.skip(reason="Requires trained model - run after training") + def test_latency_within_target(self, api_client, sample_request_data): + """Test that latency is within 50ms target.""" + response = api_client.post("/v1/predict", json=sample_request_data) + data = response.json() + + # Should be well under 50ms for single prediction + assert data["latency_ms"] < 50.0 + + def test_predict_invalid_request(self, api_client): + """Test that invalid request returns 422 validation error.""" + invalid_data = {"amt": "not_a_number"} # Invalid type + response = api_client.post("/v1/predict", json=invalid_data) + assert response.status_code == 422 # Unprocessable Entity + + +class TestRootEndpoint: + """Tests for root endpoint.""" + + def test_root_endpoint(self, api_client): + """Test root endpoint returns API info.""" + response = api_client.get("/") + assert response.status_code == 200 + + data = response.json() + assert "service" in data + assert "version" in data + assert "endpoints" in data + + +class TestShadowMode: + """Tests for shadow mode functionality.""" + + @pytest.mark.skip(reason="Requires trained model and shadow mode config") + def test_shadow_mode_always_approves(self, api_client, sample_request_data): + """Test that shadow mode always returns APPROVE.""" + # This test assumes shadow_mode=True in config + response = api_client.post("/v1/predict", json=sample_request_data) + data = response.json() + + if data["shadow_mode"]: + assert data["decision"] == "APPROVE" + + @pytest.mark.skip(reason="Requires log file inspection") + def test_shadow_mode_logs_predictions(self, api_client, sample_request_data, tmp_path): + """Test that shadow mode logs predictions to file.""" + # Would need to inspect logs/shadow_predictions.jsonl + # to verify logging occurred + pass + + +if __name__ == "__main__": + pytest.main([__file__, "-v"]) diff --git a/tests/test_data/test_ingest.py b/tests/test_data/test_ingest.py new file mode 100644 index 0000000000000000000000000000000000000000..b4a41c12f1917d6e34bc71a4f7388ad47447f0ac --- /dev/null +++ b/tests/test_data/test_ingest.py @@ -0,0 +1,155 @@ +""" +Tests for Data Ingestion Module + +Tests Pydantic validation and dataset loading functionality. +""" + +import tempfile +from pathlib import Path + +import pandas as pd +import pytest +from pydantic import ValidationError + +from src.data.ingest import ( + InferenceTransactionSchema, + TransactionSchema, + load_dataset, +) + + +class TestTransactionSchema: + """Test suite for TransactionSchema validation.""" + + def test_valid_transaction(self, sample_transaction): + """Test that a valid transaction passes validation.""" + schema = TransactionSchema(**sample_transaction) + assert schema.amt == 4.97 + assert schema.category == "misc_net" + assert schema.is_fraud == 0 + + def test_negative_amount_fails(self, sample_transaction): + """Test that negative amounts are rejected.""" + sample_transaction["amt"] = -50.00 + with pytest.raises(ValidationError) as exc_info: + TransactionSchema(**sample_transaction) + assert "amt" in str(exc_info.value) + + def test_invalid_coordinates_fail(self, sample_transaction): + """Test that invalid lat/long are rejected.""" + # Latitude out of range + sample_transaction["lat"] = 200.0 + with pytest.raises(ValidationError) as exc_info: + TransactionSchema(**sample_transaction) + assert "lat" in str(exc_info.value) + + # Reset and test longitude + sample_transaction["lat"] = 36.0788 + sample_transaction["long"] = -200.0 + with pytest.raises(ValidationError) as exc_info: + TransactionSchema(**sample_transaction) + assert "long" in str(exc_info.value) + + def test_invalid_category_fails(self, sample_transaction): + """Test that unknown categories are rejected.""" + sample_transaction["category"] = "invalid_category" + with pytest.raises(ValidationError) as exc_info: + TransactionSchema(**sample_transaction) + assert "category" in str(exc_info.value) + + def test_invalid_job_fails(self, sample_transaction): + """Test that unknown jobs are rejected.""" + sample_transaction["job"] = "Invalid Job Title" + with pytest.raises(ValidationError) as exc_info: + TransactionSchema(**sample_transaction) + assert "job" in str(exc_info.value) + + def test_invalid_timestamp_fails(self, sample_transaction): + """Test that malformed timestamps are rejected.""" + sample_transaction["trans_date_trans_time"] = "invalid-timestamp" + with pytest.raises(ValidationError) as exc_info: + TransactionSchema(**sample_transaction) + assert "timestamp" in str(exc_info.value).lower() + + +class TestInferenceTransactionSchema: + """Test suite for InferenceTransactionSchema.""" + + def test_valid_inference_request(self): + """Test that a valid inference request passes validation.""" + data = { + "user_id": "u12345", + "amt": 150.00, + "lat": 40.7128, + "long": -74.0060, + "category": "grocery_pos", + "job": "Engineer, biomedical", + "merch_lat": 40.7200, + "merch_long": -74.0100, + "unix_time": 1234567890, + } + schema = InferenceTransactionSchema(**data) + assert schema.user_id == "u12345" + assert schema.amt == 150.00 + + def test_invalid_category_fails(self): + """Test that invalid categories are rejected in inference.""" + data = { + "user_id": "u12345", + "amt": 150.00, + "lat": 40.7128, + "long": -74.0060, + "category": "bad_category", + "job": "Engineer, biomedical", + "merch_lat": 40.7200, + "merch_long": -74.0100, + "unix_time": 1234567890, + } + with pytest.raises(ValidationError): + InferenceTransactionSchema(**data) + + +class TestLoadDataset: + """Test suite for load_dataset function.""" + + def test_load_csv(self, sample_transaction): + """Test loading a CSV file.""" + # Create temporary CSV + df = pd.DataFrame([sample_transaction]) + + with tempfile.NamedTemporaryFile(mode="w", suffix=".csv", delete=False) as f: + df.to_csv(f.name, index=False) + temp_path = f.name + + try: + loaded_df = load_dataset(temp_path, validate=False) + assert len(loaded_df) == 1 + assert loaded_df.iloc[0]["amt"] == 4.97 + finally: + Path(temp_path).unlink() + + def test_load_with_validation(self, sample_transaction): + """Test loading with validation enabled.""" + df = pd.DataFrame([sample_transaction]) + + with tempfile.NamedTemporaryFile(mode="w", suffix=".csv", delete=False) as f: + df.to_csv(f.name, index=False) + temp_path = f.name + + try: + loaded_df = load_dataset(temp_path, validate=True) + assert len(loaded_df) == 1 + finally: + Path(temp_path).unlink() + + def test_file_not_found(self): + """Test that missing files raise FileNotFoundError.""" + with pytest.raises(FileNotFoundError): + load_dataset("/nonexistent/path.csv") + + def test_unsupported_format(self): + """Test that unsupported formats are rejected.""" + with tempfile.NamedTemporaryFile(suffix=".txt") as f: + with pytest.raises(ValueError) as exc_info: + load_dataset(f.name) + assert "Unsupported file format" in str(exc_info.value) diff --git a/tests/test_explainability.py b/tests/test_explainability.py new file mode 100644 index 0000000000000000000000000000000000000000..826435d8b3a36fa9f61a279c44cbcd264a61af15 --- /dev/null +++ b/tests/test_explainability.py @@ -0,0 +1,206 @@ +""" +Tests for SHAP Explainability Engine. + +Integration tests verifying SHAP functionality with trained models. +""" + +import base64 +import tempfile +from pathlib import Path + +import joblib +import numpy as np +import pandas as pd +import pytest + +from src.explainability import FraudExplainer +from src.models.pipeline import create_fraud_pipeline + + +@pytest.fixture +def sample_transaction(): + """Create a valid sample transaction for testing.""" + return pd.DataFrame( + [ + { + "trans_date_trans_time": "2020-01-01 12:00:00", + "amt": 150.0, + "lat": 40.7128, + "long": -74.0060, + "merch_lat": 40.7200, + "merch_long": -74.0100, + "job": "Engineer, biomedical", + "category": "grocery_pos", + "gender": "M", + "dob": "1990-01-01", + "trans_count_24h": 3, + "amt_to_avg_ratio_24h": 1.2, + "amt_relative_to_all_time": 1.1, + } + ] + ) + + +@pytest.fixture +def trained_pipeline(): + """Create a minimal trained pipeline for testing.""" + # Create and quickly train a pipeline + params = {"max_depth": 3, "n_estimators": 10, "learning_rate": 0.3} + pipeline = create_fraud_pipeline(params) + + # Generate minimal training data + np.random.seed(42) + n_samples = 100 + + X_train = pd.DataFrame( + { + "trans_date_trans_time": pd.date_range("2019-01-01", periods=n_samples, freq="h"), + "amt": np.random.uniform(10, 500, n_samples), + "lat": np.random.uniform(30, 45, n_samples), + "long": np.random.uniform(-120, -70, n_samples), + "merch_lat": np.random.uniform(30, 45, n_samples), + "merch_long": np.random.uniform(-120, -70, n_samples), + "job": np.random.choice(["Engineer, biomedical", "Data scientist"], n_samples), + "category": np.random.choice(["grocery_pos", "gas_transport"], n_samples), + "gender": np.random.choice(["M", "F"], n_samples), + "dob": ["1990-01-01"] * n_samples, + "trans_count_24h": np.random.randint(1, 10, n_samples), + "amt_to_avg_ratio_24h": np.random.uniform(0.5, 2.0, n_samples), + "amt_relative_to_all_time": np.random.uniform(0.5, 2.0, n_samples), + } + ) + + y_train = np.random.randint(0, 2, n_samples) + + # Train pipeline + pipeline.fit(X_train, y_train) + + # Save to temp file + with tempfile.NamedTemporaryFile(delete=False, suffix=".pkl") as f: + joblib.dump(pipeline, f.name) + temp_path = f.name + + yield temp_path + + # Cleanup + Path(temp_path).unlink() + + +class TestFraudExplainer: + """Test suite for FraudExplainer class.""" + + def test_initialization(self, trained_pipeline): + """Test that explainer initializes without errors.""" + explainer = FraudExplainer(trained_pipeline) + + assert explainer.pipeline is not None + assert explainer.model is not None + assert explainer.preprocessor is not None + assert explainer.explainer is not None + assert len(explainer.feature_names) > 0 + + def test_initialization_invalid_path(self): + """Test that explainer raises error for invalid path.""" + with pytest.raises(FileNotFoundError): + FraudExplainer("/nonexistent/path.pkl") + + def test_generate_waterfall(self, trained_pipeline, sample_transaction): + """Test waterfall plot generation for a single transaction.""" + explainer = FraudExplainer(trained_pipeline) + + # Generate waterfall (base64) + waterfall_b64 = explainer.generate_waterfall(sample_transaction) + + # Verify it's a valid base64 string + assert isinstance(waterfall_b64, str) + assert len(waterfall_b64) > 0 + + # Verify it decodes to valid bytes + try: + decoded = base64.b64decode(waterfall_b64) + assert len(decoded) > 0 + except Exception as e: + pytest.fail(f"Failed to decode base64: {e}") + + def test_generate_waterfall_multiple_transactions_fails( + self, trained_pipeline, sample_transaction + ): + """Test that waterfall fails with multiple transactions.""" + explainer = FraudExplainer(trained_pipeline) + + # Create 2 transactions + two_transactions = pd.concat([sample_transaction, sample_transaction]) + + with pytest.raises(ValueError, match="Expected 1 transaction"): + explainer.generate_waterfall(two_transactions) + + def test_generate_summary(self, trained_pipeline, sample_transaction): + """Test summary plot generation for multiple transactions.""" + explainer = FraudExplainer(trained_pipeline) + + # Create sample of 10 transactions + sample = pd.concat([sample_transaction] * 10, ignore_index=True) + + # Generate summary plot + summary_b64 = explainer.generate_summary(sample) + + # Verify it's a valid base64 string + assert isinstance(summary_b64, str) + assert len(summary_b64) > 0 + + # Verify it decodes + try: + decoded = base64.b64decode(summary_b64) + assert len(decoded) > 0 + except Exception as e: + pytest.fail(f"Failed to decode base64: {e}") + + def test_explain_prediction(self, trained_pipeline, sample_transaction): + """Test comprehensive prediction explanation.""" + explainer = FraudExplainer(trained_pipeline) + + explanation = explainer.explain_prediction(sample_transaction, threshold=0.5) + + # Verify structure + assert "prediction" in explanation + assert "decision" in explanation + assert "shap_values" in explanation + assert "top_features" in explanation + assert "base_value" in explanation + + # Verify types + assert isinstance(explanation["prediction"], float) + assert explanation["decision"] in ["BLOCK", "APPROVE"] + assert isinstance(explanation["shap_values"], dict) + assert isinstance(explanation["top_features"], list) + assert len(explanation["top_features"]) == 5 + + # Verify top_features structure + for feature in explanation["top_features"]: + assert "feature" in feature + assert "impact" in feature + assert "abs_impact" in feature + + def test_no_value_error_raised(self, trained_pipeline, sample_transaction): + """Test that no ValueError is raised during normal operation.""" + explainer = FraudExplainer(trained_pipeline) + + # This should not raise ValueError + try: + waterfall = explainer.generate_waterfall(sample_transaction) + summary = explainer.generate_summary(sample_transaction) + explanation = explainer.explain_prediction(sample_transaction) + except ValueError as e: + pytest.fail(f"Unexpected ValueError raised: {e}") + + def test_shap_values_calculation(self, trained_pipeline, sample_transaction): + """Test SHAP value calculation.""" + explainer = FraudExplainer(trained_pipeline) + + shap_values, X_transformed = explainer.calculate_shap_values(sample_transaction) + + # Verify shapes + assert shap_values.shape[0] == 1 # 1 transaction + assert shap_values.shape[1] == len(explainer.feature_names) + assert X_transformed.shape[0] == 1 + assert X_transformed.shape[1] == len(explainer.feature_names) diff --git a/tests/test_features/test_store.py b/tests/test_features/test_store.py new file mode 100644 index 0000000000000000000000000000000000000000..f65c88f92a9e6e450429c2d9f922d6a15b101dc7 --- /dev/null +++ b/tests/test_features/test_store.py @@ -0,0 +1,132 @@ +""" +Tests for Redis Feature Store + +Tests sliding window logic, EMA computation, and Redis operations. +""" + +import time + +import pytest + +from src.features.store import RedisFeatureStore + + +class TestRedisFeatureStore: + """Test suite for RedisFeatureStore.""" + + def test_connection(self, feature_store): + """Test that Redis connection is established.""" + health = feature_store.health_check() + assert health["status"] == "healthy" + assert "ping_ms" in health + + def test_add_transaction(self, feature_store): + """Test adding a transaction.""" + feature_store.add_transaction(user_id="test_user_1", amount=100.00, timestamp=1000000) + + # Verify transaction was added + features = feature_store.get_features("test_user_1", current_timestamp=1000000) + assert features["trans_count_24h"] == 1.0 + assert features["avg_spend_24h"] == 100.00 + + def test_sliding_window_count(self, feature_store): + """Test that transaction count respects 24-hour window.""" + base_time = 1000000 + + # Add 3 transactions within 24 hours + for i in range(3): + feature_store.add_transaction( + user_id="test_user_2", + amount=50.00, + timestamp=base_time + (i * 3600), # 1 hour apart + ) + + # Check count + features = feature_store.get_features( + "test_user_2", + current_timestamp=base_time + 10800, # 3 hours later + ) + assert features["trans_count_24h"] == 3.0 + + # Add transaction 25 hours later - old ones should be excluded + future_time = base_time + (25 * 3600) + feature_store.add_transaction(user_id="test_user_2", amount=50.00, timestamp=future_time) + + features = feature_store.get_features("test_user_2", current_timestamp=future_time) + # Should only count the new transaction + assert features["trans_count_24h"] == 1.0 + + def test_exponential_moving_average(self, feature_store): + """Test EMA computation.""" + base_time = 1000000 + + # First transaction: EMA = amount + feature_store.add_transaction(user_id="test_user_3", amount=100.00, timestamp=base_time) + + features = feature_store.get_features("test_user_3", current_timestamp=base_time) + assert features["avg_spend_24h"] == 100.00 + + # Second transaction: EMA updates + feature_store.add_transaction( + user_id="test_user_3", amount=200.00, timestamp=base_time + 3600 + ) + + features = feature_store.get_features("test_user_3", current_timestamp=base_time + 3600) + # EMA = alpha * 200 + (1-alpha) * 100 + # With alpha = 0.08: 0.08 * 200 + 0.92 * 100 = 16 + 92 = 108 + assert 107 < features["avg_spend_24h"] < 109 # Allow small floating point error + + def test_get_transaction_history(self, feature_store): + """Test retrieving transaction history.""" + base_time = 1000000 + + # Add multiple transactions + amounts = [100.00, 150.00, 200.00] + for i, amt in enumerate(amounts): + feature_store.add_transaction( + user_id="test_user_4", amount=amt, timestamp=base_time + (i * 3600) + ) + + history = feature_store.get_transaction_history("test_user_4", lookback_hours=24) + + assert len(history) == 3 + # Should be sorted newest first + assert history[0][1] == 200.00 + assert history[1][1] == 150.00 + assert history[2][1] == 100.00 + + def test_delete_user_data(self, feature_store): + """Test GDPR-compliant data deletion.""" + feature_store.add_transaction(user_id="test_user_5", amount=100.00, timestamp=1000000) + + # Verify data exists + features = feature_store.get_features("test_user_5", current_timestamp=1000000) + assert features["trans_count_24h"] > 0 + + # Delete user data + deleted_count = feature_store.delete_user_data("test_user_5") + assert deleted_count == 2 # tx_history + avg_spend + + # Verify data is gone + features = feature_store.get_features("test_user_5", current_timestamp=1000000) + assert features["trans_count_24h"] == 0.0 + assert features["avg_spend_24h"] == 0.0 + + def test_concurrent_transactions(self, feature_store): + """Test that multiple users can be tracked concurrently.""" + base_time = 1000000 + + # Add transactions for different users + for user_id in ["user_a", "user_b", "user_c"]: + feature_store.add_transaction(user_id=user_id, amount=100.00, timestamp=base_time) + + # Verify each user has independent state + for user_id in ["user_a", "user_b", "user_c"]: + features = feature_store.get_features(user_id, current_timestamp=base_time) + assert features["trans_count_24h"] == 1.0 + + def test_empty_user(self, feature_store): + """Test getting features for user with no history.""" + features = feature_store.get_features("nonexistent_user", current_timestamp=1000000) + assert features["trans_count_24h"] == 0.0 + assert features["avg_spend_24h"] == 0.0 diff --git a/tests/test_models/__init__.py b/tests/test_models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4ee33e48fa92c0ddee4ac8bf30112007dfb49574 --- /dev/null +++ b/tests/test_models/__init__.py @@ -0,0 +1 @@ +# Test models module __init__ diff --git a/tests/test_models/test_metrics.py b/tests/test_models/test_metrics.py new file mode 100644 index 0000000000000000000000000000000000000000..36e745347fd73565dbf8dbcc54a85c9e855136ab --- /dev/null +++ b/tests/test_models/test_metrics.py @@ -0,0 +1,93 @@ +""" +Tests for Evaluation Metrics. + +Tests threshold optimization and metric calculation logic. +""" + +import numpy as np +import pytest + +from src.models.metrics import calculate_metrics, find_optimal_threshold + + +class TestCalculateMetrics: + """Test metric calculation.""" + + def test_perfect_predictions(self): + """Test metrics with perfect predictions.""" + y_true = np.array([0, 0, 1, 1, 1]) + y_prob = np.array([0.1, 0.2, 0.9, 0.95, 0.99]) + + metrics = calculate_metrics(y_true, y_prob, threshold=0.5) + + assert metrics["precision"] == 1.0 + assert metrics["recall"] == 1.0 + assert metrics["f1"] == 1.0 + assert metrics["pr_auc"] > 0.99 + + def test_random_predictions(self): + """Test metrics with random predictions.""" + np.random.seed(42) + y_true = np.random.randint(0, 2, 100) + y_prob = np.random.random(100) + + metrics = calculate_metrics(y_true, y_prob, threshold=0.5) + + # Random predictions should have low metrics + assert 0 <= metrics["precision"] <= 1 + assert 0 <= metrics["recall"] <= 1 + assert 0 <= metrics["f1"] <= 1 + assert 0 <= metrics["pr_auc"] <= 1 + + +class TestFindOptimalThreshold: + """Test threshold optimization.""" + + def test_finds_threshold_meeting_recall(self): + """Test that threshold meets recall requirement.""" + # Create imbalanced dataset (like fraud) + np.random.seed(42) + n_samples = 1000 + + # 95% negative, 5% positive + y_true = np.array([0] * 950 + [1] * 50) + + # Model that's good but not perfect + # Positive class gets higher probabilities + y_prob = np.concatenate( + [ + np.random.beta(2, 5, 950), # Negative class: low probs + np.random.beta(5, 2, 50), # Positive class: high probs + ] + ) + + threshold, metrics = find_optimal_threshold(y_true, y_prob, min_recall=0.70) + + # Should find a valid threshold + assert 0 < threshold < 1 + + # Should meet or come close to recall target + assert metrics["recall"] >= 0.4 # At least reasonable + + def test_fallback_to_f1(self): + """Test fallback to F1 when recall target can't be met.""" + # Very difficult scenario + y_true = np.array([0, 0, 0, 0, 1]) + y_prob = np.array([0.1, 0.2, 0.3, 0.4, 0.5]) + + # Impossible to get 99% recall with this data + threshold, metrics = find_optimal_threshold(y_true, y_prob, min_recall=0.99) + + # Should still return something valid + assert 0 < threshold < 1 + assert metrics["f1"] >= 0 + + def test_threshold_range(self): + """Test that found threshold is in valid range.""" + np.random.seed(42) + y_true = np.random.randint(0, 2, 100) + y_prob = np.random.random(100) + + threshold, _ = find_optimal_threshold(y_true, y_prob) + + assert 0 <= threshold <= 1 diff --git a/tests/test_models/test_pipeline.py b/tests/test_models/test_pipeline.py new file mode 100644 index 0000000000000000000000000000000000000000..e4a85a8ed94f4ffa1b80176899a87ee29b23c289 --- /dev/null +++ b/tests/test_models/test_pipeline.py @@ -0,0 +1,141 @@ +""" +Tests for Model Training Pipeline. + +Tests the pipeline construction and feature extraction logic. +""" + +import numpy as np +import pandas as pd +import pytest +from sklearn.base import BaseEstimator + +from src.models.pipeline import FraudFeatureExtractor, create_fraud_pipeline + + +class TestFraudFeatureExtractor: + """Test suite for custom feature extractor.""" + + def test_haversine_distance(self): + """Test Haversine distance calculation.""" + extractor = FraudFeatureExtractor() + + # Test data: NYC to LA (approx 3944 km) + data = pd.DataFrame( + { + "lat": [40.7128], + "long": [-74.0060], + "merch_lat": [34.0522], + "merch_long": [-118.2437], + } + ) + + result = extractor.transform(data) + + assert "distance_km" in result.columns + # Rough check (actual is ~3944 km) + assert 3900 < result["distance_km"].iloc[0] < 4000 + + def test_cyclical_time_features(self): + """Test cyclical encoding of hour and day.""" + extractor = FraudFeatureExtractor() + + data = pd.DataFrame( + { + "trans_date_trans_time": ["2019-01-01 12:00:00"] # Noon on Tuesday + } + ) + + result = extractor.transform(data) + + # Check features exist + assert "hour_sin" in result.columns + assert "hour_cos" in result.columns + assert "day_sin" in result.columns + assert "day_cos" in result.columns + + # Noon (12) should be at pi (sinβ‰ˆ0, cosβ‰ˆ-1) + assert abs(result["hour_sin"].iloc[0]) < 0.1 + assert result["hour_cos"].iloc[0] < 0 + + def test_amount_log_transform(self): + """Test log transformation of amount.""" + extractor = FraudFeatureExtractor() + + data = pd.DataFrame({"amt": [100.0, 1000.0]}) + + result = extractor.transform(data) + + assert "amt_log" in result.columns + # log1p(100) β‰ˆ 4.615, log1p(1000) β‰ˆ 6.908 + assert 4.5 < result["amt_log"].iloc[0] < 4.7 + assert 6.8 < result["amt_log"].iloc[1] < 7.0 + + def test_gender_mapping(self): + """Test gender binary encoding.""" + extractor = FraudFeatureExtractor() + + data = pd.DataFrame({"gender": ["M", "F", "M"]}) + + result = extractor.transform(data) + + assert result["gender"].tolist() == [1, 0, 1] + + +class TestPipelineCreation: + """Test pipeline factory function.""" + + def test_create_pipeline(self): + """Test that pipeline is created correctly.""" + params = {"max_depth": 6, "learning_rate": 0.1, "n_estimators": 50} + + pipeline = create_fraud_pipeline(params) + + # Check it's a valid estimator + assert isinstance(pipeline, BaseEstimator) + + # Check steps exist + assert "features" in pipeline.named_steps + assert "preprocessor" in pipeline.named_steps + assert "model" in pipeline.named_steps + + def test_pipeline_fit_predict(self): + """Test that pipeline can fit and predict.""" + # Create minimal sample data + np.random.seed(42) + n_samples = 100 + + data = pd.DataFrame( + { + "trans_date_trans_time": pd.date_range("2019-01-01", periods=n_samples, freq="H"), + "amt": np.random.uniform(10, 500, n_samples), + "lat": np.random.uniform(30, 45, n_samples), + "long": np.random.uniform(-120, -70, n_samples), + "merch_lat": np.random.uniform(30, 45, n_samples), + "merch_long": np.random.uniform(-120, -70, n_samples), + "job": np.random.choice(["Engineer, biomedical", "Data scientist"], n_samples), + "category": np.random.choice(["grocery_pos", "gas_transport"], n_samples), + "gender": np.random.choice(["M", "F"], n_samples), + "dob": ["1990-01-01"] * n_samples, + "trans_count_24h": np.random.randint(1, 10, n_samples), + "amt_to_avg_ratio_24h": np.random.uniform(0.5, 2.0, n_samples), + "amt_relative_to_all_time": np.random.uniform(0.5, 2.0, n_samples), + } + ) + + y = np.random.randint(0, 2, n_samples) # Random binary labels + + params = {"max_depth": 3, "n_estimators": 10} + pipeline = create_fraud_pipeline(params) + + # Should fit without errors + pipeline.fit(data, y) + + # Should predict + predictions = pipeline.predict(data) + assert len(predictions) == n_samples + assert set(predictions).issubset({0, 1}) + + # Should predict probabilities + probas = pipeline.predict_proba(data) + assert probas.shape == (n_samples, 2) + assert np.all((probas >= 0) & (probas <= 1)) diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000000000000000000000000000000000000..f92b4ba6ed027141266b754abd37dea258ad48c9 --- /dev/null +++ b/uv.lock @@ -0,0 +1,3860 @@ +version = 1 +revision = 3 +requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.14'", + "python_full_version < '3.14'", +] + +[[package]] +name = "alembic" +version = "1.18.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mako" }, + { name = "sqlalchemy" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/cc/aca263693b2ece99fa99a09b6d092acb89973eb2bb575faef1777e04f8b4/alembic-1.18.1.tar.gz", hash = "sha256:83ac6b81359596816fb3b893099841a0862f2117b2963258e965d70dc62fb866", size = 2044319, upload-time = "2026-01-14T18:53:14.907Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/36/cd9cb6101e81e39076b2fbe303bfa3c85ca34e55142b0324fcbf22c5c6e2/alembic-1.18.1-py3-none-any.whl", hash = "sha256:f1c3b0920b87134e851c25f1f7f236d8a332c34b75416802d06971df5d1b7810", size = 260973, upload-time = "2026-01-14T18:53:17.533Z" }, +] + +[[package]] +name = "altair" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "narwhals" }, + { name = "packaging" }, + { name = "typing-extensions", marker = "python_full_version < '3.15'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/c0/184a89bd5feba14ff3c41cfaf1dd8a82c05f5ceedbc92145e17042eb08a4/altair-6.0.0.tar.gz", hash = "sha256:614bf5ecbe2337347b590afb111929aa9c16c9527c4887d96c9bc7f6640756b4", size = 763834, upload-time = "2025-11-12T08:59:11.519Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/33/ef2f2409450ef6daa61459d5de5c08128e7d3edb773fefd0a324d1310238/altair-6.0.0-py3-none-any.whl", hash = "sha256:09ae95b53d5fe5b16987dccc785a7af8588f2dca50de1e7a156efa8a461515f8", size = 795410, upload-time = "2025-11-12T08:59:09.804Z" }, +] + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703", size = 228685, upload-time = "2026-01-06T11:45:21.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload-time = "2026-01-06T11:45:19.497Z" }, +] + +[[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.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ef/c3/bbf34f15ea88dfb649ab2c40f9d75081784a50573a9ea431563cab64adb8/async_lru-2.1.0.tar.gz", hash = "sha256:9eeb2fecd3fe42cc8a787fc32ead53a3a7158cc43d039c3c55ab3e4e5b2a80ed", size = 12041, upload-time = "2026-01-17T22:52:18.931Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/e9/eb6a5db5ac505d5d45715388e92bced7a5bb556facc4d0865d192823f2d2/async_lru-2.1.0-py3-none-any.whl", hash = "sha256:fa12dcf99a42ac1280bc16c634bbaf06883809790f6304d85cdab3f666f33a7e", size = 6933, upload-time = "2026-01-17T22:52:17.389Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "babel" +version = "2.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, +] + +[[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 = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + +[[package]] +name = "cachetools" +version = "6.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/1d/ede8680603f6016887c062a2cf4fc8fdba905866a3ab8831aa8aa651320c/cachetools-6.2.4.tar.gz", hash = "sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607", size = 31731, upload-time = "2025-12-15T18:24:53.744Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/fc/1d7b80d0eb7b714984ce40efc78859c022cd930e402f599d8ca9e39c78a4/cachetools-6.2.4-py3-none-any.whl", hash = "sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51", size = 11551, upload-time = "2025-12-15T18:24:52.332Z" }, +] + +[[package]] +name = "category-encoders" +version = "2.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pandas" }, + { name = "patsy" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "statsmodels" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/29/59/1184ce74dca0c3e3450bccbb16edfce56f559c76dc794e2d52e1e63b467d/category_encoders-2.9.0.tar.gz", hash = "sha256:659311786e909013b8e8715fd1271244789a1dea278da44058828f88eeab5b40", size = 58005, upload-time = "2025-11-02T18:13:36.929Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/06/afcae4dab08612dac244ace7f478543f4fb83bea94177231ef9b4f7bfa06/category_encoders-2.9.0-py3-none-any.whl", hash = "sha256:49c0e49cd3bd93b21c0bcc928ecbe9b3d09951a6f7fff8cc67f1f33967887227", size = 85859, upload-time = "2025-11-02T18:13:35.388Z" }, +] + +[[package]] +name = "certifi" +version = "2026.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } +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/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { 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" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +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" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "coverage" +version = "7.13.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/f9/e92df5e07f3fc8d4c7f9a0f146ef75446bf870351cd37b788cf5897f8079/coverage-7.13.1.tar.gz", hash = "sha256:b7593fe7eb5feaa3fbb461ac79aac9f9fc0387a5ca8080b0c6fe2ca27b091afd", size = 825862, upload-time = "2025-12-28T15:42:56.969Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/8a/87af46cccdfa78f53db747b09f5f9a21d5fc38d796834adac09b30a8ce74/coverage-7.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6f34591000f06e62085b1865c9bc5f7858df748834662a51edadfd2c3bfe0dd3", size = 218927, upload-time = "2025-12-28T15:40:52.814Z" }, + { url = "https://files.pythonhosted.org/packages/82/a8/6e22fdc67242a4a5a153f9438d05944553121c8f4ba70cb072af4c41362e/coverage-7.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b67e47c5595b9224599016e333f5ec25392597a89d5744658f837d204e16c63e", size = 219288, upload-time = "2025-12-28T15:40:54.262Z" }, + { url = "https://files.pythonhosted.org/packages/d0/0a/853a76e03b0f7c4375e2ca025df45c918beb367f3e20a0a8e91967f6e96c/coverage-7.13.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3e7b8bd70c48ffb28461ebe092c2345536fb18bbbf19d287c8913699735f505c", size = 250786, upload-time = "2025-12-28T15:40:56.059Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b4/694159c15c52b9f7ec7adf49d50e5f8ee71d3e9ef38adb4445d13dd56c20/coverage-7.13.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c223d078112e90dc0e5c4e35b98b9584164bea9fbbd221c0b21c5241f6d51b62", size = 253543, upload-time = "2025-12-28T15:40:57.585Z" }, + { url = "https://files.pythonhosted.org/packages/96/b2/7f1f0437a5c855f87e17cf5d0dc35920b6440ff2b58b1ba9788c059c26c8/coverage-7.13.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:794f7c05af0763b1bbd1b9e6eff0e52ad068be3b12cd96c87de037b01390c968", size = 254635, upload-time = "2025-12-28T15:40:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/e9/d1/73c3fdb8d7d3bddd9473c9c6a2e0682f09fc3dfbcb9c3f36412a7368bcab/coverage-7.13.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0642eae483cc8c2902e4af7298bf886d605e80f26382124cddc3967c2a3df09e", size = 251202, upload-time = "2025-12-28T15:41:01.328Z" }, + { url = "https://files.pythonhosted.org/packages/66/3c/f0edf75dcc152f145d5598329e864bbbe04ab78660fe3e8e395f9fff010f/coverage-7.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f5e772ed5fef25b3de9f2008fe67b92d46831bd2bc5bdc5dd6bfd06b83b316f", size = 252566, upload-time = "2025-12-28T15:41:03.319Z" }, + { url = "https://files.pythonhosted.org/packages/17/b3/e64206d3c5f7dcbceafd14941345a754d3dbc78a823a6ed526e23b9cdaab/coverage-7.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:45980ea19277dc0a579e432aef6a504fe098ef3a9032ead15e446eb0f1191aee", size = 250711, upload-time = "2025-12-28T15:41:06.411Z" }, + { url = "https://files.pythonhosted.org/packages/dc/ad/28a3eb970a8ef5b479ee7f0c484a19c34e277479a5b70269dc652b730733/coverage-7.13.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:e4f18eca6028ffa62adbd185a8f1e1dd242f2e68164dba5c2b74a5204850b4cf", size = 250278, upload-time = "2025-12-28T15:41:08.285Z" }, + { url = "https://files.pythonhosted.org/packages/54/e3/c8f0f1a93133e3e1291ca76cbb63565bd4b5c5df63b141f539d747fff348/coverage-7.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f8dca5590fec7a89ed6826fce625595279e586ead52e9e958d3237821fbc750c", size = 252154, upload-time = "2025-12-28T15:41:09.969Z" }, + { url = "https://files.pythonhosted.org/packages/d0/bf/9939c5d6859c380e405b19e736321f1c7d402728792f4c752ad1adcce005/coverage-7.13.1-cp312-cp312-win32.whl", hash = "sha256:ff86d4e85188bba72cfb876df3e11fa243439882c55957184af44a35bd5880b7", size = 221487, upload-time = "2025-12-28T15:41:11.468Z" }, + { url = "https://files.pythonhosted.org/packages/fa/dc/7282856a407c621c2aad74021680a01b23010bb8ebf427cf5eacda2e876f/coverage-7.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:16cc1da46c04fb0fb128b4dc430b78fa2aba8a6c0c9f8eb391fd5103409a6ac6", size = 222299, upload-time = "2025-12-28T15:41:13.386Z" }, + { url = "https://files.pythonhosted.org/packages/10/79/176a11203412c350b3e9578620013af35bcdb79b651eb976f4a4b32044fa/coverage-7.13.1-cp312-cp312-win_arm64.whl", hash = "sha256:8d9bc218650022a768f3775dd7fdac1886437325d8d295d923ebcfef4892ad5c", size = 220941, upload-time = "2025-12-28T15:41:14.975Z" }, + { url = "https://files.pythonhosted.org/packages/a3/a4/e98e689347a1ff1a7f67932ab535cef82eb5e78f32a9e4132e114bbb3a0a/coverage-7.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cb237bfd0ef4d5eb6a19e29f9e528ac67ac3be932ea6b44fb6cc09b9f3ecff78", size = 218951, upload-time = "2025-12-28T15:41:16.653Z" }, + { url = "https://files.pythonhosted.org/packages/32/33/7cbfe2bdc6e2f03d6b240d23dc45fdaf3fd270aaf2d640be77b7f16989ab/coverage-7.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1dcb645d7e34dcbcc96cd7c132b1fc55c39263ca62eb961c064eb3928997363b", size = 219325, upload-time = "2025-12-28T15:41:18.609Z" }, + { url = "https://files.pythonhosted.org/packages/59/f6/efdabdb4929487baeb7cb2a9f7dac457d9356f6ad1b255be283d58b16316/coverage-7.13.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3d42df8201e00384736f0df9be2ced39324c3907607d17d50d50116c989d84cd", size = 250309, upload-time = "2025-12-28T15:41:20.629Z" }, + { url = "https://files.pythonhosted.org/packages/12/da/91a52516e9d5aea87d32d1523f9cdcf7a35a3b298e6be05d6509ba3cfab2/coverage-7.13.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa3edde1aa8807de1d05934982416cb3ec46d1d4d91e280bcce7cca01c507992", size = 252907, upload-time = "2025-12-28T15:41:22.257Z" }, + { url = "https://files.pythonhosted.org/packages/75/38/f1ea837e3dc1231e086db1638947e00d264e7e8c41aa8ecacf6e1e0c05f4/coverage-7.13.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9edd0e01a343766add6817bc448408858ba6b489039eaaa2018474e4001651a4", size = 254148, upload-time = "2025-12-28T15:41:23.87Z" }, + { url = "https://files.pythonhosted.org/packages/7f/43/f4f16b881aaa34954ba446318dea6b9ed5405dd725dd8daac2358eda869a/coverage-7.13.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:985b7836931d033570b94c94713c6dba5f9d3ff26045f72c3e5dbc5fe3361e5a", size = 250515, upload-time = "2025-12-28T15:41:25.437Z" }, + { url = "https://files.pythonhosted.org/packages/84/34/8cba7f00078bd468ea914134e0144263194ce849ec3baad187ffb6203d1c/coverage-7.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ffed1e4980889765c84a5d1a566159e363b71d6b6fbaf0bebc9d3c30bc016766", size = 252292, upload-time = "2025-12-28T15:41:28.459Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a4/cffac66c7652d84ee4ac52d3ccb94c015687d3b513f9db04bfcac2ac800d/coverage-7.13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8842af7f175078456b8b17f1b73a0d16a65dcbdc653ecefeb00a56b3c8c298c4", size = 250242, upload-time = "2025-12-28T15:41:30.02Z" }, + { url = "https://files.pythonhosted.org/packages/f4/78/9a64d462263dde416f3c0067efade7b52b52796f489b1037a95b0dc389c9/coverage-7.13.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:ccd7a6fca48ca9c131d9b0a2972a581e28b13416fc313fb98b6d24a03ce9a398", size = 250068, upload-time = "2025-12-28T15:41:32.007Z" }, + { url = "https://files.pythonhosted.org/packages/69/c8/a8994f5fece06db7c4a97c8fc1973684e178599b42e66280dded0524ef00/coverage-7.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0403f647055de2609be776965108447deb8e384fe4a553c119e3ff6bfbab4784", size = 251846, upload-time = "2025-12-28T15:41:33.946Z" }, + { url = "https://files.pythonhosted.org/packages/cc/f7/91fa73c4b80305c86598a2d4e54ba22df6bf7d0d97500944af7ef155d9f7/coverage-7.13.1-cp313-cp313-win32.whl", hash = "sha256:549d195116a1ba1e1ae2f5ca143f9777800f6636eab917d4f02b5310d6d73461", size = 221512, upload-time = "2025-12-28T15:41:35.519Z" }, + { url = "https://files.pythonhosted.org/packages/45/0b/0768b4231d5a044da8f75e097a8714ae1041246bb765d6b5563bab456735/coverage-7.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:5899d28b5276f536fcf840b18b61a9fce23cc3aec1d114c44c07fe94ebeaa500", size = 222321, upload-time = "2025-12-28T15:41:37.371Z" }, + { url = "https://files.pythonhosted.org/packages/9b/b8/bdcb7253b7e85157282450262008f1366aa04663f3e3e4c30436f596c3e2/coverage-7.13.1-cp313-cp313-win_arm64.whl", hash = "sha256:868a2fae76dfb06e87291bcbd4dcbcc778a8500510b618d50496e520bd94d9b9", size = 220949, upload-time = "2025-12-28T15:41:39.553Z" }, + { url = "https://files.pythonhosted.org/packages/70/52/f2be52cc445ff75ea8397948c96c1b4ee14f7f9086ea62fc929c5ae7b717/coverage-7.13.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:67170979de0dacac3f3097d02b0ad188d8edcea44ccc44aaa0550af49150c7dc", size = 219643, upload-time = "2025-12-28T15:41:41.567Z" }, + { url = "https://files.pythonhosted.org/packages/47/79/c85e378eaa239e2edec0c5523f71542c7793fe3340954eafb0bc3904d32d/coverage-7.13.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f80e2bb21bfab56ed7405c2d79d34b5dc0bc96c2c1d2a067b643a09fb756c43a", size = 219997, upload-time = "2025-12-28T15:41:43.418Z" }, + { url = "https://files.pythonhosted.org/packages/fe/9b/b1ade8bfb653c0bbce2d6d6e90cc6c254cbb99b7248531cc76253cb4da6d/coverage-7.13.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f83351e0f7dcdb14d7326c3d8d8c4e915fa685cbfdc6281f9470d97a04e9dfe4", size = 261296, upload-time = "2025-12-28T15:41:45.207Z" }, + { url = "https://files.pythonhosted.org/packages/1f/af/ebf91e3e1a2473d523e87e87fd8581e0aa08741b96265730e2d79ce78d8d/coverage-7.13.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bb3f6562e89bad0110afbe64e485aac2462efdce6232cdec7862a095dc3412f6", size = 263363, upload-time = "2025-12-28T15:41:47.163Z" }, + { url = "https://files.pythonhosted.org/packages/c4/8b/fb2423526d446596624ac7fde12ea4262e66f86f5120114c3cfd0bb2befa/coverage-7.13.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77545b5dcda13b70f872c3b5974ac64c21d05e65b1590b441c8560115dc3a0d1", size = 265783, upload-time = "2025-12-28T15:41:49.03Z" }, + { url = "https://files.pythonhosted.org/packages/9b/26/ef2adb1e22674913b89f0fe7490ecadcef4a71fa96f5ced90c60ec358789/coverage-7.13.1-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a4d240d260a1aed814790bbe1f10a5ff31ce6c21bc78f0da4a1e8268d6c80dbd", size = 260508, upload-time = "2025-12-28T15:41:51.035Z" }, + { url = "https://files.pythonhosted.org/packages/ce/7d/f0f59b3404caf662e7b5346247883887687c074ce67ba453ea08c612b1d5/coverage-7.13.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d2287ac9360dec3837bfdad969963a5d073a09a85d898bd86bea82aa8876ef3c", size = 263357, upload-time = "2025-12-28T15:41:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b1/29896492b0b1a047604d35d6fa804f12818fa30cdad660763a5f3159e158/coverage-7.13.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:0d2c11f3ea4db66b5cbded23b20185c35066892c67d80ec4be4bab257b9ad1e0", size = 260978, upload-time = "2025-12-28T15:41:54.589Z" }, + { url = "https://files.pythonhosted.org/packages/48/f2/971de1238a62e6f0a4128d37adadc8bb882ee96afbe03ff1570291754629/coverage-7.13.1-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:3fc6a169517ca0d7ca6846c3c5392ef2b9e38896f61d615cb75b9e7134d4ee1e", size = 259877, upload-time = "2025-12-28T15:41:56.263Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fc/0474efcbb590ff8628830e9aaec5f1831594874360e3251f1fdec31d07a3/coverage-7.13.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d10a2ed46386e850bb3de503a54f9fe8192e5917fcbb143bfef653a9355e9a53", size = 262069, upload-time = "2025-12-28T15:41:58.093Z" }, + { url = "https://files.pythonhosted.org/packages/88/4f/3c159b7953db37a7b44c0eab8a95c37d1aa4257c47b4602c04022d5cb975/coverage-7.13.1-cp313-cp313t-win32.whl", hash = "sha256:75a6f4aa904301dab8022397a22c0039edc1f51e90b83dbd4464b8a38dc87842", size = 222184, upload-time = "2025-12-28T15:41:59.763Z" }, + { url = "https://files.pythonhosted.org/packages/58/a5/6b57d28f81417f9335774f20679d9d13b9a8fb90cd6160957aa3b54a2379/coverage-7.13.1-cp313-cp313t-win_amd64.whl", hash = "sha256:309ef5706e95e62578cda256b97f5e097916a2c26247c287bbe74794e7150df2", size = 223250, upload-time = "2025-12-28T15:42:01.52Z" }, + { url = "https://files.pythonhosted.org/packages/81/7c/160796f3b035acfbb58be80e02e484548595aa67e16a6345e7910ace0a38/coverage-7.13.1-cp313-cp313t-win_arm64.whl", hash = "sha256:92f980729e79b5d16d221038dbf2e8f9a9136afa072f9d5d6ed4cb984b126a09", size = 221521, upload-time = "2025-12-28T15:42:03.275Z" }, + { url = "https://files.pythonhosted.org/packages/aa/8e/ba0e597560c6563fc0adb902fda6526df5d4aa73bb10adf0574d03bd2206/coverage-7.13.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:97ab3647280d458a1f9adb85244e81587505a43c0c7cff851f5116cd2814b894", size = 218996, upload-time = "2025-12-28T15:42:04.978Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8e/764c6e116f4221dc7aa26c4061181ff92edb9c799adae6433d18eeba7a14/coverage-7.13.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8f572d989142e0908e6acf57ad1b9b86989ff057c006d13b76c146ec6a20216a", size = 219326, upload-time = "2025-12-28T15:42:06.691Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a6/6130dc6d8da28cdcbb0f2bf8865aeca9b157622f7c0031e48c6cf9a0e591/coverage-7.13.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d72140ccf8a147e94274024ff6fd8fb7811354cf7ef88b1f0a988ebaa5bc774f", size = 250374, upload-time = "2025-12-28T15:42:08.786Z" }, + { url = "https://files.pythonhosted.org/packages/82/2b/783ded568f7cd6b677762f780ad338bf4b4750205860c17c25f7c708995e/coverage-7.13.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d3c9f051b028810f5a87c88e5d6e9af3c0ff32ef62763bf15d29f740453ca909", size = 252882, upload-time = "2025-12-28T15:42:10.515Z" }, + { url = "https://files.pythonhosted.org/packages/cd/b2/9808766d082e6a4d59eb0cc881a57fc1600eb2c5882813eefff8254f71b5/coverage-7.13.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f398ba4df52d30b1763f62eed9de5620dcde96e6f491f4c62686736b155aa6e4", size = 254218, upload-time = "2025-12-28T15:42:12.208Z" }, + { url = "https://files.pythonhosted.org/packages/44/ea/52a985bb447c871cb4d2e376e401116520991b597c85afdde1ea9ef54f2c/coverage-7.13.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:132718176cc723026d201e347f800cd1a9e4b62ccd3f82476950834dad501c75", size = 250391, upload-time = "2025-12-28T15:42:14.21Z" }, + { url = "https://files.pythonhosted.org/packages/7f/1d/125b36cc12310718873cfc8209ecfbc1008f14f4f5fa0662aa608e579353/coverage-7.13.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9e549d642426e3579b3f4b92d0431543b012dcb6e825c91619d4e93b7363c3f9", size = 252239, upload-time = "2025-12-28T15:42:16.292Z" }, + { url = "https://files.pythonhosted.org/packages/6a/16/10c1c164950cade470107f9f14bbac8485f8fb8515f515fca53d337e4a7f/coverage-7.13.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:90480b2134999301eea795b3a9dbf606c6fbab1b489150c501da84a959442465", size = 250196, upload-time = "2025-12-28T15:42:18.54Z" }, + { url = "https://files.pythonhosted.org/packages/2a/c6/cd860fac08780c6fd659732f6ced1b40b79c35977c1356344e44d72ba6c4/coverage-7.13.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e825dbb7f84dfa24663dd75835e7257f8882629fc11f03ecf77d84a75134b864", size = 250008, upload-time = "2025-12-28T15:42:20.365Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/a8c58d3d38f82a5711e1e0a67268362af48e1a03df27c03072ac30feefcf/coverage-7.13.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:623dcc6d7a7ba450bbdbeedbaa0c42b329bdae16491af2282f12a7e809be7eb9", size = 251671, upload-time = "2025-12-28T15:42:22.114Z" }, + { url = "https://files.pythonhosted.org/packages/f0/bc/fd4c1da651d037a1e3d53e8cb3f8182f4b53271ffa9a95a2e211bacc0349/coverage-7.13.1-cp314-cp314-win32.whl", hash = "sha256:6e73ebb44dca5f708dc871fe0b90cf4cff1a13f9956f747cc87b535a840386f5", size = 221777, upload-time = "2025-12-28T15:42:23.919Z" }, + { url = "https://files.pythonhosted.org/packages/4b/50/71acabdc8948464c17e90b5ffd92358579bd0910732c2a1c9537d7536aa6/coverage-7.13.1-cp314-cp314-win_amd64.whl", hash = "sha256:be753b225d159feb397bd0bf91ae86f689bad0da09d3b301478cd39b878ab31a", size = 222592, upload-time = "2025-12-28T15:42:25.619Z" }, + { url = "https://files.pythonhosted.org/packages/f7/c8/a6fb943081bb0cc926499c7907731a6dc9efc2cbdc76d738c0ab752f1a32/coverage-7.13.1-cp314-cp314-win_arm64.whl", hash = "sha256:228b90f613b25ba0019361e4ab81520b343b622fc657daf7e501c4ed6a2366c0", size = 221169, upload-time = "2025-12-28T15:42:27.629Z" }, + { url = "https://files.pythonhosted.org/packages/16/61/d5b7a0a0e0e40d62e59bc8c7aa1afbd86280d82728ba97f0673b746b78e2/coverage-7.13.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:60cfb538fe9ef86e5b2ab0ca8fc8d62524777f6c611dcaf76dc16fbe9b8e698a", size = 219730, upload-time = "2025-12-28T15:42:29.306Z" }, + { url = "https://files.pythonhosted.org/packages/a3/2c/8881326445fd071bb49514d1ce97d18a46a980712b51fee84f9ab42845b4/coverage-7.13.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:57dfc8048c72ba48a8c45e188d811e5efd7e49b387effc8fb17e97936dde5bf6", size = 220001, upload-time = "2025-12-28T15:42:31.319Z" }, + { url = "https://files.pythonhosted.org/packages/b5/d7/50de63af51dfa3a7f91cc37ad8fcc1e244b734232fbc8b9ab0f3c834a5cd/coverage-7.13.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3f2f725aa3e909b3c5fdb8192490bdd8e1495e85906af74fe6e34a2a77ba0673", size = 261370, upload-time = "2025-12-28T15:42:32.992Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2c/d31722f0ec918fd7453b2758312729f645978d212b410cd0f7c2aed88a94/coverage-7.13.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9ee68b21909686eeb21dfcba2c3b81fee70dcf38b140dcd5aa70680995fa3aa5", size = 263485, upload-time = "2025-12-28T15:42:34.759Z" }, + { url = "https://files.pythonhosted.org/packages/fa/7a/2c114fa5c5fc08ba0777e4aec4c97e0b4a1afcb69c75f1f54cff78b073ab/coverage-7.13.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:724b1b270cb13ea2e6503476e34541a0b1f62280bc997eab443f87790202033d", size = 265890, upload-time = "2025-12-28T15:42:36.517Z" }, + { url = "https://files.pythonhosted.org/packages/65/d9/f0794aa1c74ceabc780fe17f6c338456bbc4e96bd950f2e969f48ac6fb20/coverage-7.13.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:916abf1ac5cf7eb16bc540a5bf75c71c43a676f5c52fcb9fe75a2bd75fb944e8", size = 260445, upload-time = "2025-12-28T15:42:38.646Z" }, + { url = "https://files.pythonhosted.org/packages/49/23/184b22a00d9bb97488863ced9454068c79e413cb23f472da6cbddc6cfc52/coverage-7.13.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:776483fd35b58d8afe3acbd9988d5de592ab6da2d2a865edfdbc9fdb43e7c486", size = 263357, upload-time = "2025-12-28T15:42:40.788Z" }, + { url = "https://files.pythonhosted.org/packages/7d/bd/58af54c0c9199ea4190284f389005779d7daf7bf3ce40dcd2d2b2f96da69/coverage-7.13.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b6f3b96617e9852703f5b633ea01315ca45c77e879584f283c44127f0f1ec564", size = 260959, upload-time = "2025-12-28T15:42:42.808Z" }, + { url = "https://files.pythonhosted.org/packages/4b/2a/6839294e8f78a4891bf1df79d69c536880ba2f970d0ff09e7513d6e352e9/coverage-7.13.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:bd63e7b74661fed317212fab774e2a648bc4bb09b35f25474f8e3325d2945cd7", size = 259792, upload-time = "2025-12-28T15:42:44.818Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c3/528674d4623283310ad676c5af7414b9850ab6d55c2300e8aa4b945ec554/coverage-7.13.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:933082f161bbb3e9f90d00990dc956120f608cdbcaeea15c4d897f56ef4fe416", size = 262123, upload-time = "2025-12-28T15:42:47.108Z" }, + { url = "https://files.pythonhosted.org/packages/06/c5/8c0515692fb4c73ac379d8dc09b18eaf0214ecb76ea6e62467ba7a1556ff/coverage-7.13.1-cp314-cp314t-win32.whl", hash = "sha256:18be793c4c87de2965e1c0f060f03d9e5aff66cfeae8e1dbe6e5b88056ec153f", size = 222562, upload-time = "2025-12-28T15:42:49.144Z" }, + { url = "https://files.pythonhosted.org/packages/05/0e/c0a0c4678cb30dac735811db529b321d7e1c9120b79bd728d4f4d6b010e9/coverage-7.13.1-cp314-cp314t-win_amd64.whl", hash = "sha256:0e42e0ec0cd3e0d851cb3c91f770c9301f48647cb2877cb78f74bdaa07639a79", size = 223670, upload-time = "2025-12-28T15:42:51.218Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/b177aa0011f354abf03a8f30a85032686d290fdeed4222b27d36b4372a50/coverage-7.13.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eaecf47ef10c72ece9a2a92118257da87e460e113b83cc0d2905cbbe931792b4", size = 221707, upload-time = "2025-12-28T15:42:53.034Z" }, + { url = "https://files.pythonhosted.org/packages/cc/48/d9f421cb8da5afaa1a64570d9989e00fb7955e6acddc5a12979f7666ef60/coverage-7.13.1-py3-none-any.whl", hash = "sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573", size = 210722, upload-time = "2025-12-28T15:42:54.901Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" }, + { url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" }, + { url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" }, + { url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" }, + { url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" }, + { url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" }, + { url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" }, + { url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" }, + { url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e2/a510aa736755bffa9d2f75029c229111a1d02f8ecd5de03078f4c18d91a3/cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", size = 7158012, upload-time = "2025-10-15T23:17:19.982Z" }, + { url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728, upload-time = "2025-10-15T23:17:21.527Z" }, + { url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078, upload-time = "2025-10-15T23:17:23.042Z" }, + { url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460, upload-time = "2025-10-15T23:17:24.885Z" }, + { url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237, upload-time = "2025-10-15T23:17:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344, upload-time = "2025-10-15T23:17:28.06Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564, upload-time = "2025-10-15T23:17:29.665Z" }, + { url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415, upload-time = "2025-10-15T23:17:31.686Z" }, + { url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457, upload-time = "2025-10-15T23:17:33.478Z" }, + { url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074, upload-time = "2025-10-15T23:17:35.158Z" }, + { url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569, upload-time = "2025-10-15T23:17:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941, upload-time = "2025-10-15T23:17:39.236Z" }, + { url = "https://files.pythonhosted.org/packages/fd/30/27654c1dbaf7e4a3531fa1fc77986d04aefa4d6d78259a62c9dc13d7ad36/cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", size = 3022339, upload-time = "2025-10-15T23:17:40.888Z" }, + { url = "https://files.pythonhosted.org/packages/f6/30/640f34ccd4d2a1bc88367b54b926b781b5a018d65f404d409aba76a84b1c/cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", size = 3494315, upload-time = "2025-10-15T23:17:42.769Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8b/88cc7e3bd0a8e7b861f26981f7b820e1f46aa9d26cc482d0feba0ecb4919/cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", size = 2919331, upload-time = "2025-10-15T23:17:44.468Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" }, + { url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" }, + { url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" }, + { url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" }, + { url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" }, + { url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" }, + { url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +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 = "databricks-sdk" +version = "0.78.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "protobuf" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/7a/79097b58067a40fe254b5f6751b74fbae89156d29f92d26c33a090562a53/databricks_sdk-0.78.0.tar.gz", hash = "sha256:79d941459e7d31ebd89dc841ab2b5e1d8ec1bf05ac3ea26f6af26c815eaa8073", size = 829243, upload-time = "2026-01-15T07:48:43.376Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/9a/4240ac7d8249bc294ace26c6b90686dfe30120ea6f635ec7160a06e4b505/databricks_sdk-0.78.0-py3-none-any.whl", hash = "sha256:aa63085a03580d217324081f27ac25921be70859884eff97e6fd536884d55e65", size = 780542, upload-time = "2026-01-15T07:48:41.586Z" }, +] + +[[package]] +name = "debugpy" +version = "1.8.19" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/73/75/9e12d4d42349b817cd545b89247696c67917aab907012ae5b64bbfea3199/debugpy-1.8.19.tar.gz", hash = "sha256:eea7e5987445ab0b5ed258093722d5ecb8bb72217c5c9b1e21f64efe23ddebdb", size = 1644590, upload-time = "2025-12-15T21:53:28.044Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/15/d762e5263d9e25b763b78be72dc084c7a32113a0bac119e2f7acae7700ed/debugpy-1.8.19-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:bccb1540a49cde77edc7ce7d9d075c1dbeb2414751bc0048c7a11e1b597a4c2e", size = 2549995, upload-time = "2025-12-15T21:53:43.773Z" }, + { url = "https://files.pythonhosted.org/packages/a7/88/f7d25c68b18873b7c53d7c156ca7a7ffd8e77073aa0eac170a9b679cf786/debugpy-1.8.19-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:e9c68d9a382ec754dc05ed1d1b4ed5bd824b9f7c1a8cd1083adb84b3c93501de", size = 4309891, upload-time = "2025-12-15T21:53:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/c5/4f/a65e973aba3865794da65f71971dca01ae66666132c7b2647182d5be0c5f/debugpy-1.8.19-cp312-cp312-win32.whl", hash = "sha256:6599cab8a783d1496ae9984c52cb13b7c4a3bd06a8e6c33446832a5d97ce0bee", size = 5286355, upload-time = "2025-12-15T21:53:46.763Z" }, + { url = "https://files.pythonhosted.org/packages/d8/3a/d3d8b48fec96e3d824e404bf428276fb8419dfa766f78f10b08da1cb2986/debugpy-1.8.19-cp312-cp312-win_amd64.whl", hash = "sha256:66e3d2fd8f2035a8f111eb127fa508469dfa40928a89b460b41fd988684dc83d", size = 5328239, upload-time = "2025-12-15T21:53:48.868Z" }, + { url = "https://files.pythonhosted.org/packages/71/3d/388035a31a59c26f1ecc8d86af607d0c42e20ef80074147cd07b180c4349/debugpy-1.8.19-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:91e35db2672a0abaf325f4868fcac9c1674a0d9ad9bb8a8c849c03a5ebba3e6d", size = 2538859, upload-time = "2025-12-15T21:53:50.478Z" }, + { url = "https://files.pythonhosted.org/packages/4a/19/c93a0772d0962294f083dbdb113af1a7427bb632d36e5314297068f55db7/debugpy-1.8.19-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:85016a73ab84dea1c1f1dcd88ec692993bcbe4532d1b49ecb5f3c688ae50c606", size = 4292575, upload-time = "2025-12-15T21:53:51.821Z" }, + { url = "https://files.pythonhosted.org/packages/5c/56/09e48ab796b0a77e3d7dc250f95251832b8bf6838c9632f6100c98bdf426/debugpy-1.8.19-cp313-cp313-win32.whl", hash = "sha256:b605f17e89ba0ecee994391194285fada89cee111cfcd29d6f2ee11cbdc40976", size = 5286209, upload-time = "2025-12-15T21:53:53.602Z" }, + { url = "https://files.pythonhosted.org/packages/fb/4e/931480b9552c7d0feebe40c73725dd7703dcc578ba9efc14fe0e6d31cfd1/debugpy-1.8.19-cp313-cp313-win_amd64.whl", hash = "sha256:c30639998a9f9cd9699b4b621942c0179a6527f083c72351f95c6ab1728d5b73", size = 5328206, upload-time = "2025-12-15T21:53:55.433Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b9/cbec520c3a00508327476c7fce26fbafef98f412707e511eb9d19a2ef467/debugpy-1.8.19-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:1e8c4d1bd230067bf1bbcdbd6032e5a57068638eb28b9153d008ecde288152af", size = 2537372, upload-time = "2025-12-15T21:53:57.318Z" }, + { url = "https://files.pythonhosted.org/packages/88/5e/cf4e4dc712a141e10d58405c58c8268554aec3c35c09cdcda7535ff13f76/debugpy-1.8.19-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d40c016c1f538dbf1762936e3aeb43a89b965069d9f60f9e39d35d9d25e6b809", size = 4268729, upload-time = "2025-12-15T21:53:58.712Z" }, + { url = "https://files.pythonhosted.org/packages/82/a3/c91a087ab21f1047db328c1d3eb5d1ff0e52de9e74f9f6f6fa14cdd93d58/debugpy-1.8.19-cp314-cp314-win32.whl", hash = "sha256:0601708223fe1cd0e27c6cce67a899d92c7d68e73690211e6788a4b0e1903f5b", size = 5286388, upload-time = "2025-12-15T21:54:00.687Z" }, + { url = "https://files.pythonhosted.org/packages/17/b8/bfdc30b6e94f1eff09f2dc9cc1f9cd1c6cde3d996bcbd36ce2d9a4956e99/debugpy-1.8.19-cp314-cp314-win_amd64.whl", hash = "sha256:8e19a725f5d486f20e53a1dde2ab8bb2c9607c40c00a42ab646def962b41125f", size = 5327741, upload-time = "2025-12-15T21:54:02.148Z" }, + { url = "https://files.pythonhosted.org/packages/25/3e/e27078370414ef35fafad2c06d182110073daaeb5d3bf734b0b1eeefe452/debugpy-1.8.19-py2.py3-none-any.whl", hash = "sha256:360ffd231a780abbc414ba0f005dad409e71c78637efe8f2bd75837132a41d38", size = 5292321, upload-time = "2025-12-15T21:54:16.024Z" }, +] + +[[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 = "docker" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/9b/4a2ea29aeba62471211598dac5d96825bb49348fa07e906ea930394a83ce/docker-7.1.0.tar.gz", hash = "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c", size = 117834, upload-time = "2024-05-23T11:13:57.216Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl", hash = "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0", size = 147774, upload-time = "2024-05-23T11:13:55.01Z" }, +] + +[[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 = "fastapi" +version = "0.128.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/08/8c8508db6c7b9aae8f7175046af41baad690771c9bcde676419965e338c7/fastapi-0.128.0.tar.gz", hash = "sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a", size = 365682, upload-time = "2025-12-27T15:21:13.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/05/5cbb59154b093548acd0f4c7c474a118eda06da25aa75c616b72d8fcd92a/fastapi-0.128.0-py3-none-any.whl", hash = "sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d", size = 103094, upload-time = "2025-12-27T15:21:12.154Z" }, +] + +[[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 = "flask" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blinker" }, + { name = "click" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "markupsafe" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/6d/cfe3c0fcc5e477df242b98bfe186a4c34357b4847e87ecaef04507332dab/flask-3.1.2.tar.gz", hash = "sha256:bf656c15c80190ed628ad08cdfd3aaa35beb087855e2f494910aa3774cc4fd87", size = 720160, upload-time = "2025-08-19T21:03:21.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/f9/7f9263c5695f4bd0023734af91bedb2ff8209e8de6ead162f35d8dc762fd/flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c", size = 103308, upload-time = "2025-08-19T21:03:19.499Z" }, +] + +[[package]] +name = "flask-cors" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/74/0fc0fa68d62f21daef41017dafab19ef4b36551521260987eb3a5394c7ba/flask_cors-6.0.2.tar.gz", hash = "sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423", size = 13472, upload-time = "2025-12-12T20:31:42.861Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/af/72ad54402e599152de6d067324c46fe6a4f531c7c65baf7e96c63db55eaf/flask_cors-6.0.2-py3-none-any.whl", hash = "sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a", size = 13257, upload-time = "2025-12-12T20:31:41.3Z" }, +] + +[[package]] +name = "fonttools" +version = "4.61.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ca/cf17b88a8df95691275a3d77dc0a5ad9907f328ae53acbe6795da1b2f5ed/fonttools-4.61.1.tar.gz", hash = "sha256:6675329885c44657f826ef01d9e4fb33b9158e9d93c537d84ad8399539bc6f69", size = 3565756, upload-time = "2025-12-12T17:31:24.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/16/7decaa24a1bd3a70c607b2e29f0adc6159f36a7e40eaba59846414765fd4/fonttools-4.61.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f3cb4a569029b9f291f88aafc927dd53683757e640081ca8c412781ea144565e", size = 2851593, upload-time = "2025-12-12T17:30:04.225Z" }, + { url = "https://files.pythonhosted.org/packages/94/98/3c4cb97c64713a8cf499b3245c3bf9a2b8fd16a3e375feff2aed78f96259/fonttools-4.61.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41a7170d042e8c0024703ed13b71893519a1a6d6e18e933e3ec7507a2c26a4b2", size = 2400231, upload-time = "2025-12-12T17:30:06.47Z" }, + { url = "https://files.pythonhosted.org/packages/b7/37/82dbef0f6342eb01f54bca073ac1498433d6ce71e50c3c3282b655733b31/fonttools-4.61.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10d88e55330e092940584774ee5e8a6971b01fc2f4d3466a1d6c158230880796", size = 4954103, upload-time = "2025-12-12T17:30:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/6c/44/f3aeac0fa98e7ad527f479e161aca6c3a1e47bb6996b053d45226fe37bf2/fonttools-4.61.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15acc09befd16a0fb8a8f62bc147e1a82817542d72184acca9ce6e0aeda9fa6d", size = 5004295, upload-time = "2025-12-12T17:30:10.56Z" }, + { url = "https://files.pythonhosted.org/packages/14/e8/7424ced75473983b964d09f6747fa09f054a6d656f60e9ac9324cf40c743/fonttools-4.61.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e6bcdf33aec38d16508ce61fd81838f24c83c90a1d1b8c68982857038673d6b8", size = 4944109, upload-time = "2025-12-12T17:30:12.874Z" }, + { url = "https://files.pythonhosted.org/packages/c8/8b/6391b257fa3d0b553d73e778f953a2f0154292a7a7a085e2374b111e5410/fonttools-4.61.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5fade934607a523614726119164ff621e8c30e8fa1ffffbbd358662056ba69f0", size = 5093598, upload-time = "2025-12-12T17:30:15.79Z" }, + { url = "https://files.pythonhosted.org/packages/d9/71/fd2ea96cdc512d92da5678a1c98c267ddd4d8c5130b76d0f7a80f9a9fde8/fonttools-4.61.1-cp312-cp312-win32.whl", hash = "sha256:75da8f28eff26defba42c52986de97b22106cb8f26515b7c22443ebc9c2d3261", size = 2269060, upload-time = "2025-12-12T17:30:18.058Z" }, + { url = "https://files.pythonhosted.org/packages/80/3b/a3e81b71aed5a688e89dfe0e2694b26b78c7d7f39a5ffd8a7d75f54a12a8/fonttools-4.61.1-cp312-cp312-win_amd64.whl", hash = "sha256:497c31ce314219888c0e2fce5ad9178ca83fe5230b01a5006726cdf3ac9f24d9", size = 2319078, upload-time = "2025-12-12T17:30:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/4b/cf/00ba28b0990982530addb8dc3e9e6f2fa9cb5c20df2abdda7baa755e8fe1/fonttools-4.61.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c56c488ab471628ff3bfa80964372fc13504ece601e0d97a78ee74126b2045c", size = 2846454, upload-time = "2025-12-12T17:30:24.938Z" }, + { url = "https://files.pythonhosted.org/packages/5a/ca/468c9a8446a2103ae645d14fee3f610567b7042aba85031c1c65e3ef7471/fonttools-4.61.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc492779501fa723b04d0ab1f5be046797fee17d27700476edc7ee9ae535a61e", size = 2398191, upload-time = "2025-12-12T17:30:27.343Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4b/d67eedaed19def5967fade3297fed8161b25ba94699efc124b14fb68cdbc/fonttools-4.61.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:64102ca87e84261419c3747a0d20f396eb024bdbeb04c2bfb37e2891f5fadcb5", size = 4928410, upload-time = "2025-12-12T17:30:29.771Z" }, + { url = "https://files.pythonhosted.org/packages/b0/8d/6fb3494dfe61a46258cd93d979cf4725ded4eb46c2a4ca35e4490d84daea/fonttools-4.61.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c1b526c8d3f615a7b1867f38a9410849c8f4aef078535742198e942fba0e9bd", size = 4984460, upload-time = "2025-12-12T17:30:32.073Z" }, + { url = "https://files.pythonhosted.org/packages/f7/f1/a47f1d30b3dc00d75e7af762652d4cbc3dff5c2697a0dbd5203c81afd9c3/fonttools-4.61.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41ed4b5ec103bd306bb68f81dc166e77409e5209443e5773cb4ed837bcc9b0d3", size = 4925800, upload-time = "2025-12-12T17:30:34.339Z" }, + { url = "https://files.pythonhosted.org/packages/a7/01/e6ae64a0981076e8a66906fab01539799546181e32a37a0257b77e4aa88b/fonttools-4.61.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b501c862d4901792adaec7c25b1ecc749e2662543f68bb194c42ba18d6eec98d", size = 5067859, upload-time = "2025-12-12T17:30:36.593Z" }, + { url = "https://files.pythonhosted.org/packages/73/aa/28e40b8d6809a9b5075350a86779163f074d2b617c15d22343fce81918db/fonttools-4.61.1-cp313-cp313-win32.whl", hash = "sha256:4d7092bb38c53bbc78e9255a59158b150bcdc115a1e3b3ce0b5f267dc35dd63c", size = 2267821, upload-time = "2025-12-12T17:30:38.478Z" }, + { url = "https://files.pythonhosted.org/packages/1a/59/453c06d1d83dc0951b69ef692d6b9f1846680342927df54e9a1ca91c6f90/fonttools-4.61.1-cp313-cp313-win_amd64.whl", hash = "sha256:21e7c8d76f62ab13c9472ccf74515ca5b9a761d1bde3265152a6dc58700d895b", size = 2318169, upload-time = "2025-12-12T17:30:40.951Z" }, + { url = "https://files.pythonhosted.org/packages/32/8f/4e7bf82c0cbb738d3c2206c920ca34ca74ef9dabde779030145d28665104/fonttools-4.61.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fff4f534200a04b4a36e7ae3cb74493afe807b517a09e99cb4faa89a34ed6ecd", size = 2846094, upload-time = "2025-12-12T17:30:43.511Z" }, + { url = "https://files.pythonhosted.org/packages/71/09/d44e45d0a4f3a651f23a1e9d42de43bc643cce2971b19e784cc67d823676/fonttools-4.61.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d9203500f7c63545b4ce3799319fe4d9feb1a1b89b28d3cb5abd11b9dd64147e", size = 2396589, upload-time = "2025-12-12T17:30:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/89/18/58c64cafcf8eb677a99ef593121f719e6dcbdb7d1c594ae5a10d4997ca8a/fonttools-4.61.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa646ecec9528bef693415c79a86e733c70a4965dd938e9a226b0fc64c9d2e6c", size = 4877892, upload-time = "2025-12-12T17:30:47.709Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ec/9e6b38c7ba1e09eb51db849d5450f4c05b7e78481f662c3b79dbde6f3d04/fonttools-4.61.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11f35ad7805edba3aac1a3710d104592df59f4b957e30108ae0ba6c10b11dd75", size = 4972884, upload-time = "2025-12-12T17:30:49.656Z" }, + { url = "https://files.pythonhosted.org/packages/5e/87/b5339da8e0256734ba0dbbf5b6cdebb1dd79b01dc8c270989b7bcd465541/fonttools-4.61.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b931ae8f62db78861b0ff1ac017851764602288575d65b8e8ff1963fed419063", size = 4924405, upload-time = "2025-12-12T17:30:51.735Z" }, + { url = "https://files.pythonhosted.org/packages/0b/47/e3409f1e1e69c073a3a6fd8cb886eb18c0bae0ee13db2c8d5e7f8495e8b7/fonttools-4.61.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b148b56f5de675ee16d45e769e69f87623a4944f7443850bf9a9376e628a89d2", size = 5035553, upload-time = "2025-12-12T17:30:54.823Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b6/1f6600161b1073a984294c6c031e1a56ebf95b6164249eecf30012bb2e38/fonttools-4.61.1-cp314-cp314-win32.whl", hash = "sha256:9b666a475a65f4e839d3d10473fad6d47e0a9db14a2f4a224029c5bfde58ad2c", size = 2271915, upload-time = "2025-12-12T17:30:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/52/7b/91e7b01e37cc8eb0e1f770d08305b3655e4f002fc160fb82b3390eabacf5/fonttools-4.61.1-cp314-cp314-win_amd64.whl", hash = "sha256:4f5686e1fe5fce75d82d93c47a438a25bf0d1319d2843a926f741140b2b16e0c", size = 2323487, upload-time = "2025-12-12T17:30:59.804Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/908ad78e46c61c3e3ed70c3b58ff82ab48437faf84ec84f109592cabbd9f/fonttools-4.61.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e76ce097e3c57c4bcb67c5aa24a0ecdbd9f74ea9219997a707a4061fbe2707aa", size = 2929571, upload-time = "2025-12-12T17:31:02.574Z" }, + { url = "https://files.pythonhosted.org/packages/bd/41/975804132c6dea64cdbfbaa59f3518a21c137a10cccf962805b301ac6ab2/fonttools-4.61.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9cfef3ab326780c04d6646f68d4b4742aae222e8b8ea1d627c74e38afcbc9d91", size = 2435317, upload-time = "2025-12-12T17:31:04.974Z" }, + { url = "https://files.pythonhosted.org/packages/b0/5a/aef2a0a8daf1ebaae4cfd83f84186d4a72ee08fd6a8451289fcd03ffa8a4/fonttools-4.61.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a75c301f96db737e1c5ed5fd7d77d9c34466de16095a266509e13da09751bd19", size = 4882124, upload-time = "2025-12-12T17:31:07.456Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/d6db3485b645b81cea538c9d1c9219d5805f0877fda18777add4671c5240/fonttools-4.61.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:91669ccac46bbc1d09e9273546181919064e8df73488ea087dcac3e2968df9ba", size = 5100391, upload-time = "2025-12-12T17:31:09.732Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d6/675ba631454043c75fcf76f0ca5463eac8eb0666ea1d7badae5fea001155/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c33ab3ca9d3ccd581d58e989d67554e42d8d4ded94ab3ade3508455fe70e65f7", size = 4978800, upload-time = "2025-12-12T17:31:11.681Z" }, + { url = "https://files.pythonhosted.org/packages/7f/33/d3ec753d547a8d2bdaedd390d4a814e8d5b45a093d558f025c6b990b554c/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:664c5a68ec406f6b1547946683008576ef8b38275608e1cee6c061828171c118", size = 5006426, upload-time = "2025-12-12T17:31:13.764Z" }, + { url = "https://files.pythonhosted.org/packages/b4/40/cc11f378b561a67bea850ab50063366a0d1dd3f6d0a30ce0f874b0ad5664/fonttools-4.61.1-cp314-cp314t-win32.whl", hash = "sha256:aed04cabe26f30c1647ef0e8fbb207516fd40fe9472e9439695f5c6998e60ac5", size = 2335377, upload-time = "2025-12-12T17:31:16.49Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ff/c9a2b66b39f8628531ea58b320d66d951267c98c6a38684daa8f50fb02f8/fonttools-4.61.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2180f14c141d2f0f3da43f3a81bc8aa4684860f6b0e6f9e165a4831f24e6a23b", size = 2400613, upload-time = "2025-12-12T17:31:18.769Z" }, + { 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 = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/b5/59d16470a1f0dfe8c793f9ef56fd3826093fc52b3bd96d6b9d6c26c7e27b/gitpython-3.1.46.tar.gz", hash = "sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f", size = 215371, upload-time = "2026-01-01T15:37:32.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl", hash = "sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058", size = 208620, upload-time = "2026-01-01T15:37:30.574Z" }, +] + +[[package]] +name = "google-auth" +version = "2.47.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1-modules" }, + { name = "rsa" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/3c/ec64b9a275ca22fa1cd3b6e77fefcf837b0732c890aa32d2bd21313d9b33/google_auth-2.47.0.tar.gz", hash = "sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da", size = 323719, upload-time = "2026-01-06T21:55:31.045Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/18/79e9008530b79527e0d5f79e7eef08d3b179b7f851cfd3a2f27822fbdfa9/google_auth-2.47.0-py3-none-any.whl", hash = "sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498", size = 234867, upload-time = "2026-01-06T21:55:28.6Z" }, +] + +[[package]] +name = "graphene" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, + { name = "graphql-relay" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/f6/bf62ff950c317ed03e77f3f6ddd7e34aaa98fe89d79ebd660c55343d8054/graphene-3.4.3.tar.gz", hash = "sha256:2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa", size = 44739, upload-time = "2024-11-09T20:44:25.757Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/e0/61d8e98007182e6b2aca7cf65904721fb2e4bce0192272ab9cb6f69d8812/graphene-3.4.3-py2.py3-none-any.whl", hash = "sha256:820db6289754c181007a150db1f7fff544b94142b556d12e3ebc777a7bf36c71", size = 114894, upload-time = "2024-11-09T20:44:23.851Z" }, +] + +[[package]] +name = "graphql-core" +version = "3.2.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/9b/037a640a2983b09aed4a823f9cf1729e6d780b0671f854efa4727a7affbe/graphql_core-3.2.7.tar.gz", hash = "sha256:27b6904bdd3b43f2a0556dad5d579bdfdeab1f38e8e8788e555bdcb586a6f62c", size = 513484, upload-time = "2025-11-01T22:30:40.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/14/933037032608787fb92e365883ad6a741c235e0ff992865ec5d904a38f1e/graphql_core-3.2.7-py3-none-any.whl", hash = "sha256:17fc8f3ca4a42913d8e24d9ac9f08deddf0a0b2483076575757f6c412ead2ec0", size = 207262, upload-time = "2025-11-01T22:30:38.912Z" }, +] + +[[package]] +name = "graphql-relay" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/13/98fbf8d67552f102488ffc16c6f559ce71ea15f6294728d33928ab5ff14d/graphql-relay-3.2.0.tar.gz", hash = "sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c", size = 50027, upload-time = "2022-04-16T11:03:45.447Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/16/a4cf06adbc711bd364a73ce043b0b08d8fa5aae3df11b6ee4248bcdad2e0/graphql_relay-3.2.0-py3-none-any.whl", hash = "sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5", size = 16940, upload-time = "2022-04-16T11:03:43.895Z" }, +] + +[[package]] +name = "greenlet" +version = "3.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/e5/40dbda2736893e3e53d25838e0f19a2b417dfc122b9989c91918db30b5d3/greenlet-3.3.0.tar.gz", hash = "sha256:a82bb225a4e9e4d653dd2fb7b8b2d36e4fb25bc0165422a11e48b88e9e6f78fb", size = 190651, upload-time = "2025-12-04T14:49:44.05Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/0a/a3871375c7b9727edaeeea994bfff7c63ff7804c9829c19309ba2e058807/greenlet-3.3.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:b01548f6e0b9e9784a2c99c5651e5dc89ffcbe870bc5fb2e5ef864e9cc6b5dcb", size = 276379, upload-time = "2025-12-04T14:23:30.498Z" }, + { url = "https://files.pythonhosted.org/packages/43/ab/7ebfe34dce8b87be0d11dae91acbf76f7b8246bf9d6b319c741f99fa59c6/greenlet-3.3.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:349345b770dc88f81506c6861d22a6ccd422207829d2c854ae2af8025af303e3", size = 597294, upload-time = "2025-12-04T14:50:06.847Z" }, + { url = "https://files.pythonhosted.org/packages/a4/39/f1c8da50024feecd0793dbd5e08f526809b8ab5609224a2da40aad3a7641/greenlet-3.3.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e8e18ed6995e9e2c0b4ed264d2cf89260ab3ac7e13555b8032b25a74c6d18655", size = 607742, upload-time = "2025-12-04T14:57:42.349Z" }, + { url = "https://files.pythonhosted.org/packages/75/b0/6bde0b1011a60782108c01de5913c588cf51a839174538d266de15e4bf4d/greenlet-3.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:047ab3df20ede6a57c35c14bf5200fcf04039d50f908270d3f9a7a82064f543b", size = 609885, upload-time = "2025-12-04T14:26:02.368Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/49b46ac39f931f59f987b7cd9f34bfec8ef81d2a1e6e00682f55be5de9f4/greenlet-3.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2d9ad37fc657b1102ec880e637cccf20191581f75c64087a549e66c57e1ceb53", size = 1567424, upload-time = "2025-12-04T15:04:23.757Z" }, + { url = "https://files.pythonhosted.org/packages/05/f5/49a9ac2dff7f10091935def9165c90236d8f175afb27cbed38fb1d61ab6b/greenlet-3.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83cd0e36932e0e7f36a64b732a6f60c2fc2df28c351bae79fbaf4f8092fe7614", size = 1636017, upload-time = "2025-12-04T14:27:29.688Z" }, + { url = "https://files.pythonhosted.org/packages/6c/79/3912a94cf27ec503e51ba493692d6db1e3cd8ac7ac52b0b47c8e33d7f4f9/greenlet-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7a34b13d43a6b78abf828a6d0e87d3385680eaf830cd60d20d52f249faabf39", size = 301964, upload-time = "2025-12-04T14:36:58.316Z" }, + { url = "https://files.pythonhosted.org/packages/02/2f/28592176381b9ab2cafa12829ba7b472d177f3acc35d8fbcf3673d966fff/greenlet-3.3.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:a1e41a81c7e2825822f4e068c48cb2196002362619e2d70b148f20a831c00739", size = 275140, upload-time = "2025-12-04T14:23:01.282Z" }, + { url = "https://files.pythonhosted.org/packages/2c/80/fbe937bf81e9fca98c981fe499e59a3f45df2a04da0baa5c2be0dca0d329/greenlet-3.3.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f515a47d02da4d30caaa85b69474cec77b7929b2e936ff7fb853d42f4bf8808", size = 599219, upload-time = "2025-12-04T14:50:08.309Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ff/7c985128f0514271b8268476af89aee6866df5eec04ac17dcfbc676213df/greenlet-3.3.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7d2d9fd66bfadf230b385fdc90426fcd6eb64db54b40c495b72ac0feb5766c54", size = 610211, upload-time = "2025-12-04T14:57:43.968Z" }, + { url = "https://files.pythonhosted.org/packages/fd/8e/424b8c6e78bd9837d14ff7df01a9829fc883ba2ab4ea787d4f848435f23f/greenlet-3.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:087ea5e004437321508a8d6f20efc4cfec5e3c30118e1417ea96ed1d93950527", size = 612833, upload-time = "2025-12-04T14:26:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ba/56699ff9b7c76ca12f1cdc27a886d0f81f2189c3455ff9f65246780f713d/greenlet-3.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ab97cf74045343f6c60a39913fa59710e4bd26a536ce7ab2397adf8b27e67c39", size = 1567256, upload-time = "2025-12-04T15:04:25.276Z" }, + { url = "https://files.pythonhosted.org/packages/1e/37/f31136132967982d698c71a281a8901daf1a8fbab935dce7c0cf15f942cc/greenlet-3.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5375d2e23184629112ca1ea89a53389dddbffcf417dad40125713d88eb5f96e8", size = 1636483, upload-time = "2025-12-04T14:27:30.804Z" }, + { url = "https://files.pythonhosted.org/packages/7e/71/ba21c3fb8c5dce83b8c01f458a42e99ffdb1963aeec08fff5a18588d8fd7/greenlet-3.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:9ee1942ea19550094033c35d25d20726e4f1c40d59545815e1128ac58d416d38", size = 301833, upload-time = "2025-12-04T14:32:23.929Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7c/f0a6d0ede2c7bf092d00bc83ad5bafb7e6ec9b4aab2fbdfa6f134dc73327/greenlet-3.3.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:60c2ef0f578afb3c8d92ea07ad327f9a062547137afe91f38408f08aacab667f", size = 275671, upload-time = "2025-12-04T14:23:05.267Z" }, + { url = "https://files.pythonhosted.org/packages/44/06/dac639ae1a50f5969d82d2e3dd9767d30d6dbdbab0e1a54010c8fe90263c/greenlet-3.3.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a5d554d0712ba1de0a6c94c640f7aeba3f85b3a6e1f2899c11c2c0428da9365", size = 646360, upload-time = "2025-12-04T14:50:10.026Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/0fb76fe6c5369fba9bf98529ada6f4c3a1adf19e406a47332245ef0eb357/greenlet-3.3.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3a898b1e9c5f7307ebbde4102908e6cbfcb9ea16284a3abe15cab996bee8b9b3", size = 658160, upload-time = "2025-12-04T14:57:45.41Z" }, + { url = "https://files.pythonhosted.org/packages/b8/14/bab308fc2c1b5228c3224ec2bf928ce2e4d21d8046c161e44a2012b5203e/greenlet-3.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5773edda4dc00e173820722711d043799d3adb4f01731f40619e07ea2750b955", size = 660166, upload-time = "2025-12-04T14:26:05.099Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d2/91465d39164eaa0085177f61983d80ffe746c5a1860f009811d498e7259c/greenlet-3.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ac0549373982b36d5fd5d30beb8a7a33ee541ff98d2b502714a09f1169f31b55", size = 1615193, upload-time = "2025-12-04T15:04:27.041Z" }, + { url = "https://files.pythonhosted.org/packages/42/1b/83d110a37044b92423084d52d5d5a3b3a73cafb51b547e6d7366ff62eff1/greenlet-3.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d198d2d977460358c3b3a4dc844f875d1adb33817f0613f663a656f463764ccc", size = 1683653, upload-time = "2025-12-04T14:27:32.366Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/9030e6f9aa8fd7808e9c31ba4c38f87c4f8ec324ee67431d181fe396d705/greenlet-3.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:73f51dd0e0bdb596fb0417e475fa3c5e32d4c83638296e560086b8d7da7c4170", size = 305387, upload-time = "2025-12-04T14:26:51.063Z" }, + { url = "https://files.pythonhosted.org/packages/a0/66/bd6317bc5932accf351fc19f177ffba53712a202f9df10587da8df257c7e/greenlet-3.3.0-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:d6ed6f85fae6cdfdb9ce04c9bf7a08d666cfcfb914e7d006f44f840b46741931", size = 282638, upload-time = "2025-12-04T14:25:20.941Z" }, + { url = "https://files.pythonhosted.org/packages/30/cf/cc81cb030b40e738d6e69502ccbd0dd1bced0588e958f9e757945de24404/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9125050fcf24554e69c4cacb086b87b3b55dc395a8b3ebe6487b045b2614388", size = 651145, upload-time = "2025-12-04T14:50:11.039Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ea/1020037b5ecfe95ca7df8d8549959baceb8186031da83d5ecceff8b08cd2/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:87e63ccfa13c0a0f6234ed0add552af24cc67dd886731f2261e46e241608bee3", size = 654236, upload-time = "2025-12-04T14:57:47.007Z" }, + { url = "https://files.pythonhosted.org/packages/57/b9/f8025d71a6085c441a7eaff0fd928bbb275a6633773667023d19179fe815/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3c6e9b9c1527a78520357de498b0e709fb9e2f49c3a513afd5a249007261911b", size = 653783, upload-time = "2025-12-04T14:26:06.225Z" }, + { url = "https://files.pythonhosted.org/packages/f6/c7/876a8c7a7485d5d6b5c6821201d542ef28be645aa024cfe1145b35c120c1/greenlet-3.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:286d093f95ec98fdd92fcb955003b8a3d054b4e2cab3e2707a5039e7b50520fd", size = 1614857, upload-time = "2025-12-04T15:04:28.484Z" }, + { url = "https://files.pythonhosted.org/packages/4f/dc/041be1dff9f23dac5f48a43323cd0789cb798342011c19a248d9c9335536/greenlet-3.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c10513330af5b8ae16f023e8ddbfb486ab355d04467c4679c5cfe4659975dd9", size = 1676034, upload-time = "2025-12-04T14:27:33.531Z" }, +] + +[[package]] +name = "gunicorn" +version = "23.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/72/9614c465dc206155d93eff0ca20d42e1e35afc533971379482de953521a4/gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec", size = 375031, upload-time = "2024-08-10T20:25:27.378Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/7d/6dac2a6e1eba33ee43f318edbed4ff29151a49b5d37f080aad1e6469bca4/gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", size = 85029, upload-time = "2024-08-10T20:25:24.996Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "hiredis" +version = "3.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/82/d2817ce0653628e0a0cb128533f6af0dd6318a49f3f3a6a7bd1f2f2154af/hiredis-3.3.0.tar.gz", hash = "sha256:105596aad9249634361815c574351f1bd50455dc23b537c2940066c4a9dea685", size = 89048, upload-time = "2025-10-14T16:33:34.263Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/1c/ed28ae5d704f5c7e85b946fa327f30d269e6272c847fef7e91ba5fc86193/hiredis-3.3.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:5b8e1d6a2277ec5b82af5dce11534d3ed5dffeb131fd9b210bc1940643b39b5f", size = 82026, upload-time = "2025-10-14T16:32:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/f4/9b/79f30c5c40e248291023b7412bfdef4ad9a8a92d9e9285d65d600817dac7/hiredis-3.3.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:c4981de4d335f996822419e8a8b3b87367fcef67dc5fb74d3bff4df9f6f17783", size = 46217, upload-time = "2025-10-14T16:32:13.133Z" }, + { url = "https://files.pythonhosted.org/packages/e7/c3/02b9ed430ad9087aadd8afcdf616717452d16271b701fa47edfe257b681e/hiredis-3.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1706480a683e328ae9ba5d704629dee2298e75016aa0207e7067b9c40cecc271", size = 41858, upload-time = "2025-10-14T16:32:13.98Z" }, + { url = "https://files.pythonhosted.org/packages/f1/98/b2a42878b82130a535c7aa20bc937ba2d07d72e9af3ad1ad93e837c419b5/hiredis-3.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a95cef9989736ac313639f8f545b76b60b797e44e65834aabbb54e4fad8d6c8", size = 170195, upload-time = "2025-10-14T16:32:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/66/1d/9dcde7a75115d3601b016113d9b90300726fa8e48aacdd11bf01a453c145/hiredis-3.3.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca2802934557ccc28a954414c245ba7ad904718e9712cb67c05152cf6b9dd0a3", size = 181808, upload-time = "2025-10-14T16:32:15.622Z" }, + { url = "https://files.pythonhosted.org/packages/56/a1/60f6bda9b20b4e73c85f7f5f046bc2c154a5194fc94eb6861e1fd97ced52/hiredis-3.3.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fe730716775f61e76d75810a38ee4c349d3af3896450f1525f5a4034cf8f2ed7", size = 180578, upload-time = "2025-10-14T16:32:16.514Z" }, + { url = "https://files.pythonhosted.org/packages/d9/01/859d21de65085f323a701824e23ea3330a0ac05f8e184544d7aa5c26128d/hiredis-3.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:749faa69b1ce1f741f5eaf743435ac261a9262e2d2d66089192477e7708a9abc", size = 172508, upload-time = "2025-10-14T16:32:17.411Z" }, + { url = "https://files.pythonhosted.org/packages/99/a8/28fd526e554c80853d0fbf57ef2a3235f00e4ed34ce0e622e05d27d0f788/hiredis-3.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:95c9427f2ac3f1dd016a3da4e1161fa9d82f221346c8f3fdd6f3f77d4e28946c", size = 166341, upload-time = "2025-10-14T16:32:18.561Z" }, + { url = "https://files.pythonhosted.org/packages/f2/91/ded746b7d2914f557fbbf77be55e90d21f34ba758ae10db6591927c642c8/hiredis-3.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c863ee44fe7bff25e41f3a5105c936a63938b76299b802d758f40994ab340071", size = 176765, upload-time = "2025-10-14T16:32:19.491Z" }, + { url = "https://files.pythonhosted.org/packages/d6/4c/04aa46ff386532cb5f08ee495c2bf07303e93c0acf2fa13850e031347372/hiredis-3.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2213c7eb8ad5267434891f3241c7776e3bafd92b5933fc57d53d4456247dc542", size = 170312, upload-time = "2025-10-14T16:32:20.404Z" }, + { url = "https://files.pythonhosted.org/packages/90/6e/67f9d481c63f542a9cf4c9f0ea4e5717db0312fb6f37fb1f78f3a66de93c/hiredis-3.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a172bae3e2837d74530cd60b06b141005075db1b814d966755977c69bd882ce8", size = 167965, upload-time = "2025-10-14T16:32:21.259Z" }, + { url = "https://files.pythonhosted.org/packages/7a/df/dde65144d59c3c0d85e43255798f1fa0c48d413e668cfd92b3d9f87924ef/hiredis-3.3.0-cp312-cp312-win32.whl", hash = "sha256:cb91363b9fd6d41c80df9795e12fffbaf5c399819e6ae8120f414dedce6de068", size = 20533, upload-time = "2025-10-14T16:32:22.192Z" }, + { url = "https://files.pythonhosted.org/packages/f5/a9/55a4ac9c16fdf32e92e9e22c49f61affe5135e177ca19b014484e28950f7/hiredis-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:04ec150e95eea3de9ff8bac754978aa17b8bf30a86d4ab2689862020945396b0", size = 22379, upload-time = "2025-10-14T16:32:22.916Z" }, + { url = "https://files.pythonhosted.org/packages/6d/39/2b789ebadd1548ccb04a2c18fbc123746ad1a7e248b7f3f3cac618ca10a6/hiredis-3.3.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:b7048b4ec0d5dddc8ddd03da603de0c4b43ef2540bf6e4c54f47d23e3480a4fa", size = 82035, upload-time = "2025-10-14T16:32:23.715Z" }, + { url = "https://files.pythonhosted.org/packages/85/74/4066d9c1093be744158ede277f2a0a4e4cd0fefeaa525c79e2876e9e5c72/hiredis-3.3.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:e5f86ce5a779319c15567b79e0be806e8e92c18bb2ea9153e136312fafa4b7d6", size = 46219, upload-time = "2025-10-14T16:32:24.554Z" }, + { url = "https://files.pythonhosted.org/packages/fa/3f/f9e0f6d632f399d95b3635703e1558ffaa2de3aea4cfcbc2d7832606ba43/hiredis-3.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fbdb97a942e66016fff034df48a7a184e2b7dc69f14c4acd20772e156f20d04b", size = 41860, upload-time = "2025-10-14T16:32:25.356Z" }, + { url = "https://files.pythonhosted.org/packages/4a/c5/b7dde5ec390dabd1cabe7b364a509c66d4e26de783b0b64cf1618f7149fc/hiredis-3.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0fb4bea72fe45ff13e93ddd1352b43ff0749f9866263b5cca759a4c960c776f", size = 170094, upload-time = "2025-10-14T16:32:26.148Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d6/7f05c08ee74d41613be466935688068e07f7b6c55266784b5ace7b35b766/hiredis-3.3.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:85b9baf98050e8f43c2826ab46aaf775090d608217baf7af7882596aef74e7f9", size = 181746, upload-time = "2025-10-14T16:32:27.844Z" }, + { url = "https://files.pythonhosted.org/packages/0e/d2/aaf9f8edab06fbf5b766e0cae3996324297c0516a91eb2ca3bd1959a0308/hiredis-3.3.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:69079fb0f0ebb61ba63340b9c4bce9388ad016092ca157e5772eb2818209d930", size = 180465, upload-time = "2025-10-14T16:32:29.185Z" }, + { url = "https://files.pythonhosted.org/packages/8d/1e/93ded8b9b484519b211fc71746a231af98c98928e3ebebb9086ed20bb1ad/hiredis-3.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c17f77b79031ea4b0967d30255d2ae6e7df0603ee2426ad3274067f406938236", size = 172419, upload-time = "2025-10-14T16:32:30.059Z" }, + { url = "https://files.pythonhosted.org/packages/68/13/02880458e02bbfcedcaabb8f7510f9dda1c89d7c1921b1bb28c22bb38cbf/hiredis-3.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45d14f745fc177bc05fc24bdf20e2b515e9a068d3d4cce90a0fb78d04c9c9d9a", size = 166400, upload-time = "2025-10-14T16:32:31.173Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/896e03267670570f19f61dc65a2137fcb2b06e83ab0911d58eeec9f3cb88/hiredis-3.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ba063fdf1eff6377a0c409609cbe890389aefddfec109c2d20fcc19cfdafe9da", size = 176845, upload-time = "2025-10-14T16:32:32.12Z" }, + { url = "https://files.pythonhosted.org/packages/f1/90/a1d4bd0cdcf251fda72ac0bd932f547b48ad3420f89bb2ef91bf6a494534/hiredis-3.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1799cc66353ad066bfdd410135c951959da9f16bcb757c845aab2f21fc4ef099", size = 170365, upload-time = "2025-10-14T16:32:33.035Z" }, + { url = "https://files.pythonhosted.org/packages/f1/9a/7c98f7bb76bdb4a6a6003cf8209721f083e65d2eed2b514f4a5514bda665/hiredis-3.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2cbf71a121996ffac82436b6153290815b746afb010cac19b3290a1644381b07", size = 168022, upload-time = "2025-10-14T16:32:34.81Z" }, + { url = "https://files.pythonhosted.org/packages/0d/ca/672ee658ffe9525558615d955b554ecd36aa185acd4431ccc9701c655c9b/hiredis-3.3.0-cp313-cp313-win32.whl", hash = "sha256:a7cbbc6026bf03659f0b25e94bbf6e64f6c8c22f7b4bc52fe569d041de274194", size = 20533, upload-time = "2025-10-14T16:32:35.7Z" }, + { url = "https://files.pythonhosted.org/packages/20/93/511fd94f6a7b6d72a4cf9c2b159bf3d780585a9a1dca52715dd463825299/hiredis-3.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:a8def89dd19d4e2e4482b7412d453dec4a5898954d9a210d7d05f60576cedef6", size = 22387, upload-time = "2025-10-14T16:32:36.441Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b3/b948ee76a6b2bc7e45249861646f91f29704f743b52565cf64cee9c4658b/hiredis-3.3.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c135bda87211f7af9e2fd4e046ab433c576cd17b69e639a0f5bb2eed5e0e71a9", size = 82105, upload-time = "2025-10-14T16:32:37.204Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/4210f4ebfb3ab4ada964b8de08190f54cbac147198fb463cd3c111cc13e0/hiredis-3.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2f855c678230aed6fc29b962ce1cc67e5858a785ef3a3fd6b15dece0487a2e60", size = 46237, upload-time = "2025-10-14T16:32:38.07Z" }, + { url = "https://files.pythonhosted.org/packages/b3/7a/e38bfd7d04c05036b4ccc6f42b86b1032185cf6ae426e112a97551fece14/hiredis-3.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4059c78a930cbb33c391452ccce75b137d6f89e2eebf6273d75dafc5c2143c03", size = 41894, upload-time = "2025-10-14T16:32:38.929Z" }, + { url = "https://files.pythonhosted.org/packages/28/d3/eae43d9609c5d9a6effef0586ee47e13a0d84b44264b688d97a75cd17ee5/hiredis-3.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:334a3f1d14c253bb092e187736c3384203bd486b244e726319bbb3f7dffa4a20", size = 170486, upload-time = "2025-10-14T16:32:40.147Z" }, + { url = "https://files.pythonhosted.org/packages/c3/fd/34d664554880b27741ab2916d66207357563b1639e2648685f4c84cfb755/hiredis-3.3.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd137b147235447b3d067ec952c5b9b95ca54b71837e1b38dbb2ec03b89f24fc", size = 182031, upload-time = "2025-10-14T16:32:41.06Z" }, + { url = "https://files.pythonhosted.org/packages/08/a3/0c69fdde3f4155b9f7acc64ccffde46f312781469260061b3bbaa487fd34/hiredis-3.3.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8f88f4f2aceb73329ece86a1cb0794fdbc8e6d614cb5ca2d1023c9b7eb432db8", size = 180542, upload-time = "2025-10-14T16:32:42.993Z" }, + { url = "https://files.pythonhosted.org/packages/68/7a/ad5da4d7bc241e57c5b0c4fe95aa75d1f2116e6e6c51577394d773216e01/hiredis-3.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:550f4d1538822fc75ebf8cf63adc396b23d4958bdbbad424521f2c0e3dfcb169", size = 172353, upload-time = "2025-10-14T16:32:43.965Z" }, + { url = "https://files.pythonhosted.org/packages/4b/dc/c46eace64eb047a5b31acd5e4b0dc6d2f0390a4a3f6d507442d9efa570ad/hiredis-3.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:54b14211fbd5930fc696f6fcd1f1f364c660970d61af065a80e48a1fa5464dd6", size = 166435, upload-time = "2025-10-14T16:32:44.97Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ac/ad13a714e27883a2e4113c980c94caf46b801b810de5622c40f8d3e8335f/hiredis-3.3.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c9e96f63dbc489fc86f69951e9f83dadb9582271f64f6822c47dcffa6fac7e4a", size = 177218, upload-time = "2025-10-14T16:32:45.936Z" }, + { url = "https://files.pythonhosted.org/packages/c2/38/268fabd85b225271fe1ba82cb4a484fcc1bf922493ff2c74b400f1a6f339/hiredis-3.3.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:106e99885d46684d62ab3ec1d6b01573cc0e0083ac295b11aaa56870b536c7ec", size = 170477, upload-time = "2025-10-14T16:32:46.898Z" }, + { url = "https://files.pythonhosted.org/packages/20/6b/02bb8af810ea04247334ab7148acff7a61c08a8832830c6703f464be83a9/hiredis-3.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:087e2ef3206361281b1a658b5b4263572b6ba99465253e827796964208680459", size = 167915, upload-time = "2025-10-14T16:32:47.847Z" }, + { url = "https://files.pythonhosted.org/packages/83/94/901fa817e667b2e69957626395e6dee416e31609dca738f28e6b545ca6c2/hiredis-3.3.0-cp314-cp314-win32.whl", hash = "sha256:80638ebeab1cefda9420e9fedc7920e1ec7b4f0513a6b23d58c9d13c882f8065", size = 21165, upload-time = "2025-10-14T16:32:50.753Z" }, + { url = "https://files.pythonhosted.org/packages/b1/7e/4881b9c1d0b4cdaba11bd10e600e97863f977ea9d67c5988f7ec8cd363e5/hiredis-3.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a68aaf9ba024f4e28cf23df9196ff4e897bd7085872f3a30644dca07fa787816", size = 22996, upload-time = "2025-10-14T16:32:51.543Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b6/d7e6c17da032665a954a89c1e6ee3bd12cb51cd78c37527842b03519981d/hiredis-3.3.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f7f80442a32ce51ee5d89aeb5a84ee56189a0e0e875f1a57bbf8d462555ae48f", size = 83034, upload-time = "2025-10-14T16:32:52.395Z" }, + { url = "https://files.pythonhosted.org/packages/27/6c/6751b698060cdd1b2d8427702cff367c9ed7a1705bcf3792eb5b896f149b/hiredis-3.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a1a67530da714954ed50579f4fe1ab0ddbac9c43643b1721c2cb226a50dde263", size = 46701, upload-time = "2025-10-14T16:32:53.572Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8e/20a5cf2c83c7a7e08c76b9abab113f99f71cd57468a9c7909737ce6e9bf8/hiredis-3.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:616868352e47ab355559adca30f4f3859f9db895b4e7bc71e2323409a2add751", size = 42381, upload-time = "2025-10-14T16:32:54.762Z" }, + { url = "https://files.pythonhosted.org/packages/be/0a/547c29c06e8c9c337d0df3eec39da0cf1aad701daf8a9658dd37f25aca66/hiredis-3.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e799b79f3150083e9702fc37e6243c0bd47a443d6eae3f3077b0b3f510d6a145", size = 180313, upload-time = "2025-10-14T16:32:55.644Z" }, + { url = "https://files.pythonhosted.org/packages/89/8a/488de5469e3d0921a1c425045bf00e983d48b2111a90e47cf5769eaa536c/hiredis-3.3.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ef1dfb0d2c92c3701655e2927e6bbe10c499aba632c7ea57b6392516df3864b", size = 190488, upload-time = "2025-10-14T16:32:56.649Z" }, + { url = "https://files.pythonhosted.org/packages/b5/59/8493edc3eb9ae0dbea2b2230c2041a52bc03e390b02ffa3ac0bca2af9aea/hiredis-3.3.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c290da6bc2a57e854c7da9956cd65013483ede935677e84560da3b848f253596", size = 189210, upload-time = "2025-10-14T16:32:57.759Z" }, + { url = "https://files.pythonhosted.org/packages/f0/de/8c9a653922057b32fb1e2546ecd43ef44c9aa1a7cf460c87cae507eb2bc7/hiredis-3.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd8c438d9e1728f0085bf9b3c9484d19ec31f41002311464e75b69550c32ffa8", size = 180972, upload-time = "2025-10-14T16:32:58.737Z" }, + { url = "https://files.pythonhosted.org/packages/e4/a3/51e6e6afaef2990986d685ca6e254ffbd191f1635a59b2d06c9e5d10c8a2/hiredis-3.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1bbc6b8a88bbe331e3ebf6685452cebca6dfe6d38a6d4efc5651d7e363ba28bd", size = 175315, upload-time = "2025-10-14T16:32:59.774Z" }, + { url = "https://files.pythonhosted.org/packages/96/54/e436312feb97601f70f8b39263b8da5ac4a5d18305ebdfb08ad7621f6119/hiredis-3.3.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:55d8c18fe9a05496c5c04e6eccc695169d89bf358dff964bcad95696958ec05f", size = 185653, upload-time = "2025-10-14T16:33:00.749Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a3/88e66030d066337c6c0f883a912c6d4b2d6d7173490fbbc113a6cbe414ff/hiredis-3.3.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:4ddc79afa76b805d364e202a754666cb3c4d9c85153cbfed522871ff55827838", size = 179032, upload-time = "2025-10-14T16:33:01.711Z" }, + { url = "https://files.pythonhosted.org/packages/bc/1f/fb7375467e9adaa371cd617c2984fefe44bdce73add4c70b8dd8cab1b33a/hiredis-3.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8e8a4b8540581dcd1b2b25827a54cfd538e0afeaa1a0e3ca87ad7126965981cc", size = 176127, upload-time = "2025-10-14T16:33:02.793Z" }, + { url = "https://files.pythonhosted.org/packages/66/14/0dc2b99209c400f3b8f24067273e9c3cb383d894e155830879108fb19e98/hiredis-3.3.0-cp314-cp314t-win32.whl", hash = "sha256:298593bb08487753b3afe6dc38bac2532e9bac8dcee8d992ef9977d539cc6776", size = 22024, upload-time = "2025-10-14T16:33:03.812Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/8a0befeed8bbe142d5a6cf3b51e8cbe019c32a64a596b0ebcbc007a8f8f1/hiredis-3.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b442b6ab038a6f3b5109874d2514c4edf389d8d8b553f10f12654548808683bc", size = 23808, upload-time = "2025-10-14T16:33:04.965Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httptools" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961, upload-time = "2025-10-10T03:55:08.559Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280, upload-time = "2025-10-10T03:54:39.274Z" }, + { url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004, upload-time = "2025-10-10T03:54:40.403Z" }, + { url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655, upload-time = "2025-10-10T03:54:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440, upload-time = "2025-10-10T03:54:42.452Z" }, + { url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186, upload-time = "2025-10-10T03:54:43.937Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192, upload-time = "2025-10-10T03:54:45.003Z" }, + { url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694, upload-time = "2025-10-10T03:54:45.923Z" }, + { url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889, upload-time = "2025-10-10T03:54:47.089Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180, upload-time = "2025-10-10T03:54:48.052Z" }, + { url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596, upload-time = "2025-10-10T03:54:48.919Z" }, + { url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268, upload-time = "2025-10-10T03:54:49.993Z" }, + { url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517, upload-time = "2025-10-10T03:54:51.066Z" }, + { url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337, upload-time = "2025-10-10T03:54:52.196Z" }, + { url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743, upload-time = "2025-10-10T03:54:53.448Z" }, + { url = "https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270", size = 203619, upload-time = "2025-10-10T03:54:54.321Z" }, + { url = "https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3", size = 108714, upload-time = "2025-10-10T03:54:55.163Z" }, + { url = "https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1", size = 472909, upload-time = "2025-10-10T03:54:56.056Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4a/a548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b/httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b", size = 470831, upload-time = "2025-10-10T03:54:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/4d/31/14df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c/httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60", size = 452631, upload-time = "2025-10-10T03:54:58.219Z" }, + { url = "https://files.pythonhosted.org/packages/22/d2/b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc/httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca", size = 452910, upload-time = "2025-10-10T03:54:59.366Z" }, + { url = "https://files.pythonhosted.org/packages/53/cf/878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30/httptools-0.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96", size = 88205, upload-time = "2025-10-10T03:55:00.389Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "huey" +version = "2.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/29/3428d52eb8e85025e264a291641a9f9d6407cc1e51d1b630f6ac5815999a/huey-2.6.0.tar.gz", hash = "sha256:8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6", size = 221068, upload-time = "2026-01-06T03:01:02.055Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/34/fae9ac8f1c3a552fd3f7ff652b94c78d219dedc5fce0c0a4232457760a00/huey-2.6.0-py3-none-any.whl", hash = "sha256:1b9df9d370b49c6d5721ba8a01ac9a787cf86b3bdc584e4679de27b920395c3f", size = 76951, upload-time = "2026-01-06T03:01:00.808Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +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.1.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/b9/a4/4948be6eb88628505b83a1f2f40d90254cab66abf2043b3c40fa07dfce0f/ipykernel-7.1.0.tar.gz", hash = "sha256:58a3fc88533d5930c3546dc7eac66c6d288acde4f801e2001e65edc5dc9cf0db", size = 174579, upload-time = "2025-10-27T09:46:39.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/17/20c2552266728ceba271967b87919664ecc0e33efca29c3efc6baf88c5f9/ipykernel-7.1.0-py3-none-any.whl", hash = "sha256:763b5ec6c5b7776f6a8d7ce09b267693b4e5ce75cb50ae696aaefb3c85e1ea4c", size = 117968, upload-time = "2025-10-27T09:46:37.805Z" }, +] + +[[package]] +name = "ipython" +version = "9.9.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/46/dd/fb08d22ec0c27e73c8bc8f71810709870d51cadaf27b7ddd3f011236c100/ipython-9.9.0.tar.gz", hash = "sha256:48fbed1b2de5e2c7177eefa144aba7fcb82dac514f09b57e2ac9da34ddb54220", size = 4425043, upload-time = "2026-01-05T12:36:46.233Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/92/162cfaee4ccf370465c5af1ce36a9eacec1becb552f2033bb3584e6f640a/ipython-9.9.0-py3-none-any.whl", hash = "sha256:b457fe9165df2b84e8ec909a97abcf2ed88f565970efba16b1f7229c283d252b", size = 621431, upload-time = "2026-01-05T12:36:44.669Z" }, +] + +[[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 = "ipywidgets" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "comm" }, + { name = "ipython" }, + { name = "jupyterlab-widgets" }, + { name = "traitlets" }, + { name = "widgetsnbextension" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/ae/c5ce1edc1afe042eadb445e95b0671b03cee61895264357956e61c0d2ac0/ipywidgets-8.1.8.tar.gz", hash = "sha256:61f969306b95f85fba6b6986b7fe45d73124d1d9e3023a8068710d47a22ea668", size = 116739, upload-time = "2025-11-01T21:18:12.393Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/6d/0d9848617b9f753b87f214f1c682592f7ca42de085f564352f10f0843026/ipywidgets-8.1.8-py3-none-any.whl", hash = "sha256:ecaca67aed704a338f88f67b1181b58f821ab5dc89c1f0f5ef99db43c1c2921e", size = 139808, upload-time = "2025-11-01T21:18:10.956Z" }, +] + +[[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 = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + +[[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" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +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.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/77/e8/a3f261a66e4663f22700bc8a17c08cb83e91fbf086726e7a228398968981/json5-0.13.0.tar.gz", hash = "sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf", size = 52441, upload-time = "2026-01-01T19:42:14.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/9e/038522f50ceb7e74f1f991bf1b699f24b0c2bbe7c390dd36ad69f4582258/json5-0.13.0-py3-none-any.whl", hash = "sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc", size = 36163, upload-time = "2026-01-01T19:42:13.962Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, +] + +[[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" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipywidgets" }, + { name = "jupyter-console" }, + { name = "jupyterlab" }, + { name = "nbconvert" }, + { name = "notebook" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/f3/af28ea964ab8bc1e472dba2e82627d36d470c51f5cd38c37502eeffaa25e/jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a", size = 5714959, upload-time = "2024-08-30T07:15:48.299Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/64/285f20a31679bf547b75602702f7800e74dbabae36ef324f716c02804753/jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83", size = 2657, upload-time = "2024-08-30T07:15:47.045Z" }, +] + +[[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-console" +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ipykernel" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "pyzmq" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/2d/e2fd31e2fc41c14e2bcb6c976ab732597e907523f6b2420305f9fc7fdbdb/jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539", size = 34363, upload-time = "2023-03-06T14:13:31.02Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/77/71d78d58f15c22db16328a476426f7ac4a60d3a5a7ba3b9627ee2f7903d4/jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485", size = 24510, upload-time = "2023-03-06T14:13:28.229Z" }, +] + +[[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'" }, + { 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'" }, + { 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.2" +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/93/dc/2c8c4ff1aee27ac999ba04c373c5d0d7c6c181b391640d7b916b884d5985/jupyterlab-4.5.2.tar.gz", hash = "sha256:c80a6b9f6dace96a566d590c65ee2785f61e7cd4aac5b4d453dcc7d0d5e069b7", size = 23990371, upload-time = "2026-01-12T12:27:08.493Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/78/7e455920f104ef2aa94a4c0d2b40e5b44334ee7057eae1aa1fb97b9631ad/jupyterlab-4.5.2-py3-none-any.whl", hash = "sha256:76466ebcfdb7a9bb7e2fbd6459c0e2c032ccf75be673634a84bee4b3e6b13ab6", size = 12385807, upload-time = "2026-01-12T12:27:03.923Z" }, +] + +[[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 = "jupyterlab-widgets" +version = "3.0.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/2d/ef58fed122b268c69c0aa099da20bc67657cdfb2e222688d5731bd5b971d/jupyterlab_widgets-3.0.16.tar.gz", hash = "sha256:423da05071d55cf27a9e602216d35a3a65a3e41cdf9c5d3b643b814ce38c19e0", size = 897423, upload-time = "2025-11-01T21:11:29.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl", hash = "sha256:45fa36d9c6422cf2559198e4db481aa243c7a32d9926b500781c830c80f7ecf8", size = 914926, upload-time = "2025-11-01T21:11:28.008Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686, upload-time = "2025-08-10T21:26:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460, upload-time = "2025-08-10T21:26:11.083Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952, upload-time = "2025-08-10T21:26:12.058Z" }, + { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756, upload-time = "2025-08-10T21:26:13.096Z" }, + { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404, upload-time = "2025-08-10T21:26:14.457Z" }, + { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410, upload-time = "2025-08-10T21:26:15.73Z" }, + { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631, upload-time = "2025-08-10T21:26:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963, upload-time = "2025-08-10T21:26:18.737Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295, upload-time = "2025-08-10T21:26:20.11Z" }, + { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987, upload-time = "2025-08-10T21:26:21.49Z" }, + { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817, upload-time = "2025-08-10T21:26:22.812Z" }, + { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895, upload-time = "2025-08-10T21:26:24.37Z" }, + { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992, upload-time = "2025-08-10T21:26:25.732Z" }, + { url = "https://files.pythonhosted.org/packages/31/c1/c2686cda909742ab66c7388e9a1a8521a59eb89f8bcfbee28fc980d07e24/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5d0432ccf1c7ab14f9949eec60c5d1f924f17c037e9f8b33352fa05799359b8", size = 123681, upload-time = "2025-08-10T21:26:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f0/f44f50c9f5b1a1860261092e3bc91ecdc9acda848a8b8c6abfda4a24dd5c/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efb3a45b35622bb6c16dbfab491a8f5a391fe0e9d45ef32f4df85658232ca0e2", size = 66464, upload-time = "2025-08-10T21:26:27.733Z" }, + { url = "https://files.pythonhosted.org/packages/2d/7a/9d90a151f558e29c3936b8a47ac770235f436f2120aca41a6d5f3d62ae8d/kiwisolver-1.4.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a12cf6398e8a0a001a059747a1cbf24705e18fe413bc22de7b3d15c67cffe3f", size = 64961, upload-time = "2025-08-10T21:26:28.729Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e9/f218a2cb3a9ffbe324ca29a9e399fa2d2866d7f348ec3a88df87fc248fc5/kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b67e6efbf68e077dd71d1a6b37e43e1a99d0bff1a3d51867d45ee8908b931098", size = 1474607, upload-time = "2025-08-10T21:26:29.798Z" }, + { url = "https://files.pythonhosted.org/packages/d9/28/aac26d4c882f14de59041636292bc838db8961373825df23b8eeb807e198/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5656aa670507437af0207645273ccdfee4f14bacd7f7c67a4306d0dcaeaf6eed", size = 1276546, upload-time = "2025-08-10T21:26:31.401Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ad/8bfc1c93d4cc565e5069162f610ba2f48ff39b7de4b5b8d93f69f30c4bed/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bfc08add558155345129c7803b3671cf195e6a56e7a12f3dde7c57d9b417f525", size = 1294482, upload-time = "2025-08-10T21:26:32.721Z" }, + { url = "https://files.pythonhosted.org/packages/da/f1/6aca55ff798901d8ce403206d00e033191f63d82dd708a186e0ed2067e9c/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:40092754720b174e6ccf9e845d0d8c7d8e12c3d71e7fc35f55f3813e96376f78", size = 1343720, upload-time = "2025-08-10T21:26:34.032Z" }, + { url = "https://files.pythonhosted.org/packages/d1/91/eed031876c595c81d90d0f6fc681ece250e14bf6998c3d7c419466b523b7/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:497d05f29a1300d14e02e6441cf0f5ee81c1ff5a304b0d9fb77423974684e08b", size = 2224907, upload-time = "2025-08-10T21:26:35.824Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ec/4d1925f2e49617b9cca9c34bfa11adefad49d00db038e692a559454dfb2e/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdd1a81a1860476eb41ac4bc1e07b3f07259e6d55bbf739b79c8aaedcf512799", size = 2321334, upload-time = "2025-08-10T21:26:37.534Z" }, + { url = "https://files.pythonhosted.org/packages/43/cb/450cd4499356f68802750c6ddc18647b8ea01ffa28f50d20598e0befe6e9/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e6b93f13371d341afee3be9f7c5964e3fe61d5fa30f6a30eb49856935dfe4fc3", size = 2488313, upload-time = "2025-08-10T21:26:39.191Z" }, + { url = "https://files.pythonhosted.org/packages/71/67/fc76242bd99f885651128a5d4fa6083e5524694b7c88b489b1b55fdc491d/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d75aa530ccfaa593da12834b86a0724f58bff12706659baa9227c2ccaa06264c", size = 2291970, upload-time = "2025-08-10T21:26:40.828Z" }, + { url = "https://files.pythonhosted.org/packages/75/bd/f1a5d894000941739f2ae1b65a32892349423ad49c2e6d0771d0bad3fae4/kiwisolver-1.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:dd0a578400839256df88c16abddf9ba14813ec5f21362e1fe65022e00c883d4d", size = 73894, upload-time = "2025-08-10T21:26:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/95/38/dce480814d25b99a391abbddadc78f7c117c6da34be68ca8b02d5848b424/kiwisolver-1.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:d4188e73af84ca82468f09cadc5ac4db578109e52acb4518d8154698d3a87ca2", size = 64995, upload-time = "2025-08-10T21:26:43.889Z" }, + { url = "https://files.pythonhosted.org/packages/e2/37/7d218ce5d92dadc5ebdd9070d903e0c7cf7edfe03f179433ac4d13ce659c/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a0f2724dfd4e3b3ac5a82436a8e6fd16baa7d507117e4279b660fe8ca38a3a1", size = 126510, upload-time = "2025-08-10T21:26:44.915Z" }, + { url = "https://files.pythonhosted.org/packages/23/b0/e85a2b48233daef4b648fb657ebbb6f8367696a2d9548a00b4ee0eb67803/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b11d6a633e4ed84fc0ddafd4ebfd8ea49b3f25082c04ad12b8315c11d504dc1", size = 67903, upload-time = "2025-08-10T21:26:45.934Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/f2425bc0113ad7de24da6bb4dae1343476e95e1d738be7c04d31a5d037fd/kiwisolver-1.4.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61874cdb0a36016354853593cffc38e56fc9ca5aa97d2c05d3dcf6922cd55a11", size = 66402, upload-time = "2025-08-10T21:26:47.101Z" }, + { url = "https://files.pythonhosted.org/packages/98/d8/594657886df9f34c4177cc353cc28ca7e6e5eb562d37ccc233bff43bbe2a/kiwisolver-1.4.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60c439763a969a6af93b4881db0eed8fadf93ee98e18cbc35bc8da868d0c4f0c", size = 1582135, upload-time = "2025-08-10T21:26:48.665Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c6/38a115b7170f8b306fc929e166340c24958347308ea3012c2b44e7e295db/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92a2f997387a1b79a75e7803aa7ded2cfbe2823852ccf1ba3bcf613b62ae3197", size = 1389409, upload-time = "2025-08-10T21:26:50.335Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3b/e04883dace81f24a568bcee6eb3001da4ba05114afa622ec9b6fafdc1f5e/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31d512c812daea6d8b3be3b2bfcbeb091dbb09177706569bcfc6240dcf8b41c", size = 1401763, upload-time = "2025-08-10T21:26:51.867Z" }, + { url = "https://files.pythonhosted.org/packages/9f/80/20ace48e33408947af49d7d15c341eaee69e4e0304aab4b7660e234d6288/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:52a15b0f35dad39862d376df10c5230155243a2c1a436e39eb55623ccbd68185", size = 1453643, upload-time = "2025-08-10T21:26:53.592Z" }, + { url = "https://files.pythonhosted.org/packages/64/31/6ce4380a4cd1f515bdda976a1e90e547ccd47b67a1546d63884463c92ca9/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a30fd6fdef1430fd9e1ba7b3398b5ee4e2887783917a687d86ba69985fb08748", size = 2330818, upload-time = "2025-08-10T21:26:55.051Z" }, + { url = "https://files.pythonhosted.org/packages/fa/e9/3f3fcba3bcc7432c795b82646306e822f3fd74df0ee81f0fa067a1f95668/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cc9617b46837c6468197b5945e196ee9ca43057bb7d9d1ae688101e4e1dddf64", size = 2419963, upload-time = "2025-08-10T21:26:56.421Z" }, + { url = "https://files.pythonhosted.org/packages/99/43/7320c50e4133575c66e9f7dadead35ab22d7c012a3b09bb35647792b2a6d/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0ab74e19f6a2b027ea4f845a78827969af45ce790e6cb3e1ebab71bdf9f215ff", size = 2594639, upload-time = "2025-08-10T21:26:57.882Z" }, + { url = "https://files.pythonhosted.org/packages/65/d6/17ae4a270d4a987ef8a385b906d2bdfc9fce502d6dc0d3aea865b47f548c/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dba5ee5d3981160c28d5490f0d1b7ed730c22470ff7f6cc26cfcfaacb9896a07", size = 2391741, upload-time = "2025-08-10T21:26:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8f/8f6f491d595a9e5912971f3f863d81baddccc8a4d0c3749d6a0dd9ffc9df/kiwisolver-1.4.9-cp313-cp313t-win_arm64.whl", hash = "sha256:0749fd8f4218ad2e851e11cc4dc05c7cbc0cbc4267bdfdb31782e65aace4ee9c", size = 68646, upload-time = "2025-08-10T21:27:00.52Z" }, + { url = "https://files.pythonhosted.org/packages/6b/32/6cc0fbc9c54d06c2969faa9c1d29f5751a2e51809dd55c69055e62d9b426/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9928fe1eb816d11ae170885a74d074f57af3a0d65777ca47e9aeb854a1fba386", size = 123806, upload-time = "2025-08-10T21:27:01.537Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/2bfb1d4a4823d92e8cbb420fe024b8d2167f72079b3bb941207c42570bdf/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d0005b053977e7b43388ddec89fa567f43d4f6d5c2c0affe57de5ebf290dc552", size = 66605, upload-time = "2025-08-10T21:27:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/00aafdb4e4509c2ca6064646cba9cd4b37933898f426756adb2cb92ebbed/kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2635d352d67458b66fd0667c14cb1d4145e9560d503219034a18a87e971ce4f3", size = 64925, upload-time = "2025-08-10T21:27:04.339Z" }, + { url = "https://files.pythonhosted.org/packages/43/dc/51acc6791aa14e5cb6d8a2e28cefb0dc2886d8862795449d021334c0df20/kiwisolver-1.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:767c23ad1c58c9e827b649a9ab7809fd5fd9db266a9cf02b0e926ddc2c680d58", size = 1472414, upload-time = "2025-08-10T21:27:05.437Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bb/93fa64a81db304ac8a246f834d5094fae4b13baf53c839d6bb6e81177129/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72d0eb9fba308b8311685c2268cf7d0a0639a6cd027d8128659f72bdd8a024b4", size = 1281272, upload-time = "2025-08-10T21:27:07.063Z" }, + { url = "https://files.pythonhosted.org/packages/70/e6/6df102916960fb8d05069d4bd92d6d9a8202d5a3e2444494e7cd50f65b7a/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f68e4f3eeca8fb22cc3d731f9715a13b652795ef657a13df1ad0c7dc0e9731df", size = 1298578, upload-time = "2025-08-10T21:27:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/7c/47/e142aaa612f5343736b087864dbaebc53ea8831453fb47e7521fa8658f30/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d84cd4061ae292d8ac367b2c3fa3aad11cb8625a95d135fe93f286f914f3f5a6", size = 1345607, upload-time = "2025-08-10T21:27:10.125Z" }, + { url = "https://files.pythonhosted.org/packages/54/89/d641a746194a0f4d1a3670fb900d0dbaa786fb98341056814bc3f058fa52/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a60ea74330b91bd22a29638940d115df9dc00af5035a9a2a6ad9399ffb4ceca5", size = 2230150, upload-time = "2025-08-10T21:27:11.484Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6b/5ee1207198febdf16ac11f78c5ae40861b809cbe0e6d2a8d5b0b3044b199/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ce6a3a4e106cf35c2d9c4fa17c05ce0b180db622736845d4315519397a77beaf", size = 2325979, upload-time = "2025-08-10T21:27:12.917Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ff/b269eefd90f4ae14dcc74973d5a0f6d28d3b9bb1afd8c0340513afe6b39a/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:77937e5e2a38a7b48eef0585114fe7930346993a88060d0bf886086d2aa49ef5", size = 2491456, upload-time = "2025-08-10T21:27:14.353Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d4/10303190bd4d30de547534601e259a4fbf014eed94aae3e5521129215086/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24c175051354f4a28c5d6a31c93906dc653e2bf234e8a4bbfb964892078898ce", size = 2294621, upload-time = "2025-08-10T21:27:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/28/e0/a9a90416fce5c0be25742729c2ea52105d62eda6c4be4d803c2a7be1fa50/kiwisolver-1.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:0763515d4df10edf6d06a3c19734e2566368980d21ebec439f33f9eb936c07b7", size = 75417, upload-time = "2025-08-10T21:27:17.436Z" }, + { url = "https://files.pythonhosted.org/packages/1f/10/6949958215b7a9a264299a7db195564e87900f709db9245e4ebdd3c70779/kiwisolver-1.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:0e4e2bf29574a6a7b7f6cb5fa69293b9f96c928949ac4a53ba3f525dffb87f9c", size = 66582, upload-time = "2025-08-10T21:27:18.436Z" }, + { url = "https://files.pythonhosted.org/packages/ec/79/60e53067903d3bc5469b369fe0dfc6b3482e2133e85dae9daa9527535991/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d976bbb382b202f71c67f77b0ac11244021cfa3f7dfd9e562eefcea2df711548", size = 126514, upload-time = "2025-08-10T21:27:19.465Z" }, + { url = "https://files.pythonhosted.org/packages/25/d1/4843d3e8d46b072c12a38c97c57fab4608d36e13fe47d47ee96b4d61ba6f/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2489e4e5d7ef9a1c300a5e0196e43d9c739f066ef23270607d45aba368b91f2d", size = 67905, upload-time = "2025-08-10T21:27:20.51Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ae/29ffcbd239aea8b93108de1278271ae764dfc0d803a5693914975f200596/kiwisolver-1.4.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e2ea9f7ab7fbf18fffb1b5434ce7c69a07582f7acc7717720f1d69f3e806f90c", size = 66399, upload-time = "2025-08-10T21:27:21.496Z" }, + { url = "https://files.pythonhosted.org/packages/a1/ae/d7ba902aa604152c2ceba5d352d7b62106bedbccc8e95c3934d94472bfa3/kiwisolver-1.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b34e51affded8faee0dfdb705416153819d8ea9250bbbf7ea1b249bdeb5f1122", size = 1582197, upload-time = "2025-08-10T21:27:22.604Z" }, + { url = "https://files.pythonhosted.org/packages/f2/41/27c70d427eddb8bc7e4f16420a20fefc6f480312122a59a959fdfe0445ad/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8aacd3d4b33b772542b2e01beb50187536967b514b00003bdda7589722d2a64", size = 1390125, upload-time = "2025-08-10T21:27:24.036Z" }, + { url = "https://files.pythonhosted.org/packages/41/42/b3799a12bafc76d962ad69083f8b43b12bf4fe78b097b12e105d75c9b8f1/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7cf974dd4e35fa315563ac99d6287a1024e4dc2077b8a7d7cd3d2fb65d283134", size = 1402612, upload-time = "2025-08-10T21:27:25.773Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b5/a210ea073ea1cfaca1bb5c55a62307d8252f531beb364e18aa1e0888b5a0/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85bd218b5ecfbee8c8a82e121802dcb519a86044c9c3b2e4aef02fa05c6da370", size = 1453990, upload-time = "2025-08-10T21:27:27.089Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ce/a829eb8c033e977d7ea03ed32fb3c1781b4fa0433fbadfff29e39c676f32/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0856e241c2d3df4efef7c04a1e46b1936b6120c9bcf36dd216e3acd84bc4fb21", size = 2331601, upload-time = "2025-08-10T21:27:29.343Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4b/b5e97eb142eb9cd0072dacfcdcd31b1c66dc7352b0f7c7255d339c0edf00/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9af39d6551f97d31a4deebeac6f45b156f9755ddc59c07b402c148f5dbb6482a", size = 2422041, upload-time = "2025-08-10T21:27:30.754Z" }, + { url = "https://files.pythonhosted.org/packages/40/be/8eb4cd53e1b85ba4edc3a9321666f12b83113a178845593307a3e7891f44/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:bb4ae2b57fc1d8cbd1cf7b1d9913803681ffa903e7488012be5b76dedf49297f", size = 2594897, upload-time = "2025-08-10T21:27:32.803Z" }, + { url = "https://files.pythonhosted.org/packages/99/dd/841e9a66c4715477ea0abc78da039832fbb09dac5c35c58dc4c41a407b8a/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedff62918805fb62d43a4aa2ecd4482c380dc76cd31bd7c8878588a61bd0369", size = 2391835, upload-time = "2025-08-10T21:27:34.23Z" }, + { url = "https://files.pythonhosted.org/packages/0c/28/4b2e5c47a0da96896fdfdb006340ade064afa1e63675d01ea5ac222b6d52/kiwisolver-1.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:1fa333e8b2ce4d9660f2cda9c0e1b6bafcfb2457a9d259faa82289e73ec24891", size = 79988, upload-time = "2025-08-10T21:27:35.587Z" }, + { 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 = "librt" +version = "0.7.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/24/5f3646ff414285e0f7708fa4e946b9bf538345a41d1c375c439467721a5e/librt-0.7.8.tar.gz", hash = "sha256:1a4ede613941d9c3470b0368be851df6bb78ab218635512d0370b27a277a0862", size = 148323, upload-time = "2026-01-14T12:56:16.876Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/04/79d8fcb43cae376c7adbab7b2b9f65e48432c9eced62ac96703bcc16e09b/librt-0.7.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9b6943885b2d49c48d0cff23b16be830ba46b0152d98f62de49e735c6e655a63", size = 57472, upload-time = "2026-01-14T12:55:08.528Z" }, + { url = "https://files.pythonhosted.org/packages/b4/ba/60b96e93043d3d659da91752689023a73981336446ae82078cddf706249e/librt-0.7.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:46ef1f4b9b6cc364b11eea0ecc0897314447a66029ee1e55859acb3dd8757c93", size = 58986, upload-time = "2026-01-14T12:55:09.466Z" }, + { url = "https://files.pythonhosted.org/packages/7c/26/5215e4cdcc26e7be7eee21955a7e13cbf1f6d7d7311461a6014544596fac/librt-0.7.8-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:907ad09cfab21e3c86e8f1f87858f7049d1097f77196959c033612f532b4e592", size = 168422, upload-time = "2026-01-14T12:55:10.499Z" }, + { url = "https://files.pythonhosted.org/packages/0f/84/e8d1bc86fa0159bfc24f3d798d92cafd3897e84c7fea7fe61b3220915d76/librt-0.7.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2991b6c3775383752b3ca0204842743256f3ad3deeb1d0adc227d56b78a9a850", size = 177478, upload-time = "2026-01-14T12:55:11.577Z" }, + { url = "https://files.pythonhosted.org/packages/57/11/d0268c4b94717a18aa91df1100e767b010f87b7ae444dafaa5a2d80f33a6/librt-0.7.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03679b9856932b8c8f674e87aa3c55ea11c9274301f76ae8dc4d281bda55cf62", size = 192439, upload-time = "2026-01-14T12:55:12.7Z" }, + { url = "https://files.pythonhosted.org/packages/8d/56/1e8e833b95fe684f80f8894ae4d8b7d36acc9203e60478fcae599120a975/librt-0.7.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3968762fec1b2ad34ce57458b6de25dbb4142713e9ca6279a0d352fa4e9f452b", size = 191483, upload-time = "2026-01-14T12:55:13.838Z" }, + { url = "https://files.pythonhosted.org/packages/17/48/f11cf28a2cb6c31f282009e2208312aa84a5ee2732859f7856ee306176d5/librt-0.7.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:bb7a7807523a31f03061288cc4ffc065d684c39db7644c676b47d89553c0d714", size = 185376, upload-time = "2026-01-14T12:55:15.017Z" }, + { url = "https://files.pythonhosted.org/packages/b8/6a/d7c116c6da561b9155b184354a60a3d5cdbf08fc7f3678d09c95679d13d9/librt-0.7.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad64a14b1e56e702e19b24aae108f18ad1bf7777f3af5fcd39f87d0c5a814449", size = 206234, upload-time = "2026-01-14T12:55:16.571Z" }, + { url = "https://files.pythonhosted.org/packages/61/de/1975200bb0285fc921c5981d9978ce6ce11ae6d797df815add94a5a848a3/librt-0.7.8-cp312-cp312-win32.whl", hash = "sha256:0241a6ed65e6666236ea78203a73d800dbed896cf12ae25d026d75dc1fcd1dac", size = 44057, upload-time = "2026-01-14T12:55:18.077Z" }, + { url = "https://files.pythonhosted.org/packages/8e/cd/724f2d0b3461426730d4877754b65d39f06a41ac9d0a92d5c6840f72b9ae/librt-0.7.8-cp312-cp312-win_amd64.whl", hash = "sha256:6db5faf064b5bab9675c32a873436b31e01d66ca6984c6f7f92621656033a708", size = 50293, upload-time = "2026-01-14T12:55:19.179Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cf/7e899acd9ee5727ad8160fdcc9994954e79fab371c66535c60e13b968ffc/librt-0.7.8-cp312-cp312-win_arm64.whl", hash = "sha256:57175aa93f804d2c08d2edb7213e09276bd49097611aefc37e3fa38d1fb99ad0", size = 43574, upload-time = "2026-01-14T12:55:20.185Z" }, + { url = "https://files.pythonhosted.org/packages/a1/fe/b1f9de2829cf7fc7649c1dcd202cfd873837c5cc2fc9e526b0e7f716c3d2/librt-0.7.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4c3995abbbb60b3c129490fa985dfe6cac11d88fc3c36eeb4fb1449efbbb04fc", size = 57500, upload-time = "2026-01-14T12:55:21.219Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d4/4a60fbe2e53b825f5d9a77325071d61cd8af8506255067bf0c8527530745/librt-0.7.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:44e0c2cbc9bebd074cf2cdbe472ca185e824be4e74b1c63a8e934cea674bebf2", size = 59019, upload-time = "2026-01-14T12:55:22.256Z" }, + { url = "https://files.pythonhosted.org/packages/6a/37/61ff80341ba5159afa524445f2d984c30e2821f31f7c73cf166dcafa5564/librt-0.7.8-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4d2f1e492cae964b3463a03dc77a7fe8742f7855d7258c7643f0ee32b6651dd3", size = 169015, upload-time = "2026-01-14T12:55:23.24Z" }, + { url = "https://files.pythonhosted.org/packages/1c/86/13d4f2d6a93f181ebf2fc953868826653ede494559da8268023fe567fca3/librt-0.7.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:451e7ffcef8f785831fdb791bd69211f47e95dc4c6ddff68e589058806f044c6", size = 178161, upload-time = "2026-01-14T12:55:24.826Z" }, + { url = "https://files.pythonhosted.org/packages/88/26/e24ef01305954fc4d771f1f09f3dd682f9eb610e1bec188ffb719374d26e/librt-0.7.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3469e1af9f1380e093ae06bedcbdd11e407ac0b303a56bbe9afb1d6824d4982d", size = 193015, upload-time = "2026-01-14T12:55:26.04Z" }, + { url = "https://files.pythonhosted.org/packages/88/a0/92b6bd060e720d7a31ed474d046a69bd55334ec05e9c446d228c4b806ae3/librt-0.7.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f11b300027ce19a34f6d24ebb0a25fd0e24a9d53353225a5c1e6cadbf2916b2e", size = 192038, upload-time = "2026-01-14T12:55:27.208Z" }, + { url = "https://files.pythonhosted.org/packages/06/bb/6f4c650253704279c3a214dad188101d1b5ea23be0606628bc6739456624/librt-0.7.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4adc73614f0d3c97874f02f2c7fd2a27854e7e24ad532ea6b965459c5b757eca", size = 186006, upload-time = "2026-01-14T12:55:28.594Z" }, + { url = "https://files.pythonhosted.org/packages/dc/00/1c409618248d43240cadf45f3efb866837fa77e9a12a71481912135eb481/librt-0.7.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:60c299e555f87e4c01b2eca085dfccda1dde87f5a604bb45c2906b8305819a93", size = 206888, upload-time = "2026-01-14T12:55:30.214Z" }, + { url = "https://files.pythonhosted.org/packages/d9/83/b2cfe8e76ff5c1c77f8a53da3d5de62d04b5ebf7cf913e37f8bca43b5d07/librt-0.7.8-cp313-cp313-win32.whl", hash = "sha256:b09c52ed43a461994716082ee7d87618096851319bf695d57ec123f2ab708951", size = 44126, upload-time = "2026-01-14T12:55:31.44Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0b/c59d45de56a51bd2d3a401fc63449c0ac163e4ef7f523ea8b0c0dee86ec5/librt-0.7.8-cp313-cp313-win_amd64.whl", hash = "sha256:f8f4a901a3fa28969d6e4519deceab56c55a09d691ea7b12ca830e2fa3461e34", size = 50262, upload-time = "2026-01-14T12:55:33.01Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b9/973455cec0a1ec592395250c474164c4a58ebf3e0651ee920fef1a2623f1/librt-0.7.8-cp313-cp313-win_arm64.whl", hash = "sha256:43d4e71b50763fcdcf64725ac680d8cfa1706c928b844794a7aa0fa9ac8e5f09", size = 43600, upload-time = "2026-01-14T12:55:34.054Z" }, + { url = "https://files.pythonhosted.org/packages/1a/73/fa8814c6ce2d49c3827829cadaa1589b0bf4391660bd4510899393a23ebc/librt-0.7.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:be927c3c94c74b05128089a955fba86501c3b544d1d300282cc1b4bd370cb418", size = 57049, upload-time = "2026-01-14T12:55:35.056Z" }, + { url = "https://files.pythonhosted.org/packages/53/fe/f6c70956da23ea235fd2e3cc16f4f0b4ebdfd72252b02d1164dd58b4e6c3/librt-0.7.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7b0803e9008c62a7ef79058233db7ff6f37a9933b8f2573c05b07ddafa226611", size = 58689, upload-time = "2026-01-14T12:55:36.078Z" }, + { url = "https://files.pythonhosted.org/packages/1f/4d/7a2481444ac5fba63050d9abe823e6bc16896f575bfc9c1e5068d516cdce/librt-0.7.8-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:79feb4d00b2a4e0e05c9c56df707934f41fcb5fe53fd9efb7549068d0495b758", size = 166808, upload-time = "2026-01-14T12:55:37.595Z" }, + { url = "https://files.pythonhosted.org/packages/ac/3c/10901d9e18639f8953f57c8986796cfbf4c1c514844a41c9197cf87cb707/librt-0.7.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b9122094e3f24aa759c38f46bd8863433820654927370250f460ae75488b66ea", size = 175614, upload-time = "2026-01-14T12:55:38.756Z" }, + { url = "https://files.pythonhosted.org/packages/db/01/5cbdde0951a5090a80e5ba44e6357d375048123c572a23eecfb9326993a7/librt-0.7.8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e03bea66af33c95ce3addf87a9bf1fcad8d33e757bc479957ddbc0e4f7207ac", size = 189955, upload-time = "2026-01-14T12:55:39.939Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b4/e80528d2f4b7eaf1d437fcbd6fc6ba4cbeb3e2a0cb9ed5a79f47c7318706/librt-0.7.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f1ade7f31675db00b514b98f9ab9a7698c7282dad4be7492589109471852d398", size = 189370, upload-time = "2026-01-14T12:55:41.057Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ab/938368f8ce31a9787ecd4becb1e795954782e4312095daf8fd22420227c8/librt-0.7.8-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a14229ac62adcf1b90a15992f1ab9c69ae8b99ffb23cb64a90878a6e8a2f5b81", size = 183224, upload-time = "2026-01-14T12:55:42.328Z" }, + { url = "https://files.pythonhosted.org/packages/3c/10/559c310e7a6e4014ac44867d359ef8238465fb499e7eb31b6bfe3e3f86f5/librt-0.7.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5bcaaf624fd24e6a0cb14beac37677f90793a96864c67c064a91458611446e83", size = 203541, upload-time = "2026-01-14T12:55:43.501Z" }, + { url = "https://files.pythonhosted.org/packages/f8/db/a0db7acdb6290c215f343835c6efda5b491bb05c3ddc675af558f50fdba3/librt-0.7.8-cp314-cp314-win32.whl", hash = "sha256:7aa7d5457b6c542ecaed79cec4ad98534373c9757383973e638ccced0f11f46d", size = 40657, upload-time = "2026-01-14T12:55:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/72/e0/4f9bdc2a98a798511e81edcd6b54fe82767a715e05d1921115ac70717f6f/librt-0.7.8-cp314-cp314-win_amd64.whl", hash = "sha256:3d1322800771bee4a91f3b4bd4e49abc7d35e65166821086e5afd1e6c0d9be44", size = 46835, upload-time = "2026-01-14T12:55:45.655Z" }, + { url = "https://files.pythonhosted.org/packages/f9/3d/59c6402e3dec2719655a41ad027a7371f8e2334aa794ed11533ad5f34969/librt-0.7.8-cp314-cp314-win_arm64.whl", hash = "sha256:5363427bc6a8c3b1719f8f3845ea53553d301382928a86e8fab7984426949bce", size = 39885, upload-time = "2026-01-14T12:55:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/4e/9c/2481d80950b83085fb14ba3c595db56330d21bbc7d88a19f20165f3538db/librt-0.7.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:ca916919793a77e4a98d4a1701e345d337ce53be4a16620f063191f7322ac80f", size = 59161, upload-time = "2026-01-14T12:55:48.45Z" }, + { url = "https://files.pythonhosted.org/packages/96/79/108df2cfc4e672336765d54e3ff887294c1cc36ea4335c73588875775527/librt-0.7.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:54feb7b4f2f6706bb82325e836a01be805770443e2400f706e824e91f6441dde", size = 61008, upload-time = "2026-01-14T12:55:49.527Z" }, + { url = "https://files.pythonhosted.org/packages/46/f2/30179898f9994a5637459d6e169b6abdc982012c0a4b2d4c26f50c06f911/librt-0.7.8-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:39a4c76fee41007070f872b648cc2f711f9abf9a13d0c7162478043377b52c8e", size = 187199, upload-time = "2026-01-14T12:55:50.587Z" }, + { url = "https://files.pythonhosted.org/packages/b4/da/f7563db55cebdc884f518ba3791ad033becc25ff68eb70902b1747dc0d70/librt-0.7.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac9c8a458245c7de80bc1b9765b177055efff5803f08e548dd4bb9ab9a8d789b", size = 198317, upload-time = "2026-01-14T12:55:51.991Z" }, + { url = "https://files.pythonhosted.org/packages/b3/6c/4289acf076ad371471fa86718c30ae353e690d3de6167f7db36f429272f1/librt-0.7.8-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95b67aa7eff150f075fda09d11f6bfb26edffd300f6ab1666759547581e8f666", size = 210334, upload-time = "2026-01-14T12:55:53.682Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7f/377521ac25b78ac0a5ff44127a0360ee6d5ddd3ce7327949876a30533daa/librt-0.7.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:535929b6eff670c593c34ff435d5440c3096f20fa72d63444608a5aef64dd581", size = 211031, upload-time = "2026-01-14T12:55:54.827Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b1/e1e96c3e20b23d00cf90f4aad48f0deb4cdfec2f0ed8380d0d85acf98bbf/librt-0.7.8-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:63937bd0f4d1cb56653dc7ae900d6c52c41f0015e25aaf9902481ee79943b33a", size = 204581, upload-time = "2026-01-14T12:55:56.811Z" }, + { url = "https://files.pythonhosted.org/packages/43/71/0f5d010e92ed9747e14bef35e91b6580533510f1e36a8a09eb79ee70b2f0/librt-0.7.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf243da9e42d914036fd362ac3fa77d80a41cadcd11ad789b1b5eec4daaf67ca", size = 224731, upload-time = "2026-01-14T12:55:58.175Z" }, + { url = "https://files.pythonhosted.org/packages/22/f0/07fb6ab5c39a4ca9af3e37554f9d42f25c464829254d72e4ebbd81da351c/librt-0.7.8-cp314-cp314t-win32.whl", hash = "sha256:171ca3a0a06c643bd0a2f62a8944e1902c94aa8e5da4db1ea9a8daf872685365", size = 41173, upload-time = "2026-01-14T12:55:59.315Z" }, + { url = "https://files.pythonhosted.org/packages/24/d4/7e4be20993dc6a782639625bd2f97f3c66125c7aa80c82426956811cfccf/librt-0.7.8-cp314-cp314t-win_amd64.whl", hash = "sha256:445b7304145e24c60288a2f172b5ce2ca35c0f81605f5299f3fa567e189d2e32", size = 47668, upload-time = "2026-01-14T12:56:00.261Z" }, + { url = "https://files.pythonhosted.org/packages/fc/85/69f92b2a7b3c0f88ffe107c86b952b397004b5b8ea5a81da3d9c04c04422/librt-0.7.8-cp314-cp314t-win_arm64.whl", hash = "sha256:8766ece9de08527deabcd7cb1b4f1a967a385d26e33e536d6d8913db6ef74f06", size = 40550, upload-time = "2026-01-14T12:56:01.542Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.46.0b1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c1/39/be3a8255c8c40fcab6d54d147ae5bda00104e861b108c541f2b2ecb30c44/llvmlite-0.46.0b1.tar.gz", hash = "sha256:ea7208f342cc157e600093862ff87ab5d296680d7dfff0a01dc13668ecbc60d0", size = 185562, upload-time = "2025-10-02T15:12:46.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/79/b2675083656dc5d816b21892d47a82896b3a2f0afefe17d7776fe1dbcd98/llvmlite-0.46.0b1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:0e6372f7a48edb3f1952cf193af6e98bc3140c376d261e1e0e07db21abda55cf", size = 37259394, upload-time = "2025-10-02T15:24:50.405Z" }, + { url = "https://files.pythonhosted.org/packages/79/3a/8edb6cf1e0d35d48aa78cde3b35c48fa7f80e9c0dbcc25778d436a7616d4/llvmlite-0.46.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e47105ca235793f6d1e4556af1d7d52e171ffd54079e5a35dc6bb37bf95dcc00", size = 56288252, upload-time = "2025-10-02T15:16:03.077Z" }, + { url = "https://files.pythonhosted.org/packages/61/02/f9c2933ec8f274e7cc251ce64d980fa98003291e88de0afff44e09e0b765/llvmlite-0.46.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be4685909d7c106875279e59f6730bbd4ef43eee99ddcadbeca0b1feac8bd35e", size = 55140996, upload-time = "2025-10-02T15:20:50.134Z" }, + { url = "https://files.pythonhosted.org/packages/94/e1/d5a4cc45cf651092fa593a2c050599cd866182220e994f3737730000ce0b/llvmlite-0.46.0b1-cp312-cp312-win_amd64.whl", hash = "sha256:3f807ce3be866b414db4413c3b402c2a0ccc8777c390228e517e4444e257b674", size = 38136910, upload-time = "2025-10-02T15:28:19.237Z" }, + { url = "https://files.pythonhosted.org/packages/85/be/4c18a29d1d468aac281d2d09aa1b3b860e4f7124e351547603c38ed96652/llvmlite-0.46.0b1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:7de327e12cf5ed02e3bee8be11d026cbc42105e5cda4479a0758a7bd9a584b6f", size = 37259393, upload-time = "2025-10-02T15:25:31.941Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b1/6478aa315867d55ef46aa02de60d2e849dc24a6dd96d61cccf89d609fe4c/llvmlite-0.46.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f4e0df8f25548cadb0f1db39f3f5c7c903b75c802d9cf1f6be02325ebb7cb042", size = 56288251, upload-time = "2025-10-02T15:17:01.15Z" }, + { url = "https://files.pythonhosted.org/packages/63/d0/2303275a5f75ff56c3bc15af628300fd3e7d3426f262c835b265cc2f1e93/llvmlite-0.46.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9dfe94dfcc43002a20c6f3c72098198a9f4b076486200e85d4f6fa87f745c493", size = 55140997, upload-time = "2025-10-02T15:21:50.208Z" }, + { url = "https://files.pythonhosted.org/packages/3a/9d/733c71f0be2be9256dd103288a3378b979901a044cc05232e6e599fbb934/llvmlite-0.46.0b1-cp313-cp313-win_amd64.whl", hash = "sha256:b37c67ee2317175c1d0156e5f84e57d492fe66c9fea57b1779309f91f895a44a", size = 38136911, upload-time = "2025-10-02T15:29:00.999Z" }, + { url = "https://files.pythonhosted.org/packages/25/3b/18446cbd795c56aeca50d65f667d231e742764d2201d4c2f20a6c6e386ca/llvmlite-0.46.0b1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:e6927a5c74f6ff4ec09465e3d4519a9291ed3c5e9e35b52c8e2c5aae3ff181fc", size = 37259394, upload-time = "2025-10-02T15:26:14.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6e/bc5b39c0cf6b2bc1660a085c019b06ca069751c0a7b27e2c323a3250cd44/llvmlite-0.46.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d4b62c0500a4a0fa56cd568262826c98b4830c1069b83cc817781d7c448fa517", size = 56288251, upload-time = "2025-10-02T15:17:59.302Z" }, + { url = "https://files.pythonhosted.org/packages/4c/cd/8cd3f3803f8593d1737855efdd689f0765a15d3d24f5a48a2b0b90c9b18d/llvmlite-0.46.0b1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:300879cc0b45705797f36478d132632400589db49f05fcfd9477b3b371344e12", size = 55140997, upload-time = "2025-10-02T15:22:49.255Z" }, + { url = "https://files.pythonhosted.org/packages/2c/00/b709b8ce575f8d8c2b14dc2bad9d9650f7ec48f5732fcab196ba39b97904/llvmlite-0.46.0b1-cp314-cp314-win_amd64.whl", hash = "sha256:44dbad743b6e41e413085e7b56b82272f51d4994ba36c3633c8b8eb632db6990", size = 39118961, upload-time = "2025-10-02T15:29:44.325Z" }, +] + +[[package]] +name = "mako" +version = "1.3.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload-time = "2025-04-10T12:44:31.16Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload-time = "2025-04-10T12:50:53.297Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", size = 8260453, upload-time = "2025-12-10T22:55:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", size = 8148321, upload-time = "2025-12-10T22:55:33.265Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", size = 8716944, upload-time = "2025-12-10T22:55:34.922Z" }, + { url = "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", size = 9550099, upload-time = "2025-12-10T22:55:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", size = 9613040, upload-time = "2025-12-10T22:55:38.715Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/c10f171b6e2f44d9e3a2b96efa38b1677439d79c99357600a62cc1e9594e/matplotlib-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:dd80ecb295460a5d9d260df63c43f4afbdd832d725a531f008dad1664f458adf", size = 8142717, upload-time = "2025-12-10T22:55:41.103Z" }, + { url = "https://files.pythonhosted.org/packages/f1/76/934db220026b5fef85f45d51a738b91dea7d70207581063cd9bd8fafcf74/matplotlib-3.10.8-cp312-cp312-win_arm64.whl", hash = "sha256:3c624e43ed56313651bc18a47f838b60d7b8032ed348911c54906b130b20071b", size = 8012751, upload-time = "2025-12-10T22:55:42.684Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, + { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, + { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, + { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, + { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, + { 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 = "mlflow" +version = "3.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "alembic" }, + { name = "cryptography" }, + { name = "docker" }, + { name = "flask" }, + { name = "flask-cors" }, + { name = "graphene" }, + { name = "gunicorn", marker = "sys_platform != 'win32'" }, + { name = "huey" }, + { name = "matplotlib" }, + { name = "mlflow-skinny" }, + { name = "mlflow-tracing" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "sqlalchemy" }, + { name = "waitress", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/f8/10ccb111ed53732dfceae0369073023f96acd6b00f92fb3c24473938702d/mlflow-3.8.1.tar.gz", hash = "sha256:0823377bedff4d530b0d560bf394daf9f7e9fbba53453add04eadad34de962cc", size = 8550037, upload-time = "2025-12-26T16:46:49.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/d5/a20b87c6cd99395fee04d6034686512305530c71ceaabe3a151eeaa25ed7/mlflow-3.8.1-py3-none-any.whl", hash = "sha256:42f26b52438fdb615588e150407c6516d0f64d417436dfc75599c525a464f210", size = 9062281, upload-time = "2025-12-26T16:46:46.528Z" }, +] + +[[package]] +name = "mlflow-skinny" +version = "3.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "click" }, + { name = "cloudpickle" }, + { name = "databricks-sdk" }, + { name = "fastapi" }, + { name = "gitpython" }, + { name = "importlib-metadata" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlparse" }, + { name = "typing-extensions" }, + { name = "uvicorn" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7e/00/18486d9072739e63471c1e441e78cdb6a10c641312d98f6699715406451e/mlflow_skinny-3.8.1.tar.gz", hash = "sha256:0c0aade08187030a4653e267bcd63de2f12cbfebf4c6737832cba45d6fb3594d", size = 2082226, upload-time = "2025-12-26T16:30:11.171Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/24/42e52320636fcbabeaf50704f9269a328acc995e1b8a44df6fea33130a0a/mlflow_skinny-3.8.1-py3-none-any.whl", hash = "sha256:3a6ee27f5ac1e67c1d565fa0e12c070b27129b03e669dcaf88ff841176429142", size = 2506002, upload-time = "2025-12-26T16:30:09.357Z" }, +] + +[[package]] +name = "mlflow-tracing" +version = "3.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "databricks-sdk" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/e5/9cdca5a91afd71e15943f3dbe00e788bd36479637e9b2e0625224027ff01/mlflow_tracing-3.8.1.tar.gz", hash = "sha256:c032ba715994a4580323f3045fa2700a6323033d87e564bbcbda37e6ab993071", size = 1130700, upload-time = "2025-12-26T16:31:39.314Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/e3/ddbe3e2d1219fa9235559ab88ebf98e1e4f48c62672f0dfb8f1eb07276dc/mlflow_tracing-3.8.1-py3-none-any.whl", hash = "sha256:12d9b5b7177b4152979d003e0d967b280c4252758639aebdfd672734283b17bf", size = 1359007, upload-time = "2025-12-26T16:31:37.514Z" }, +] + +[[package]] +name = "mypy" +version = "1.19.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload-time = "2025-12-15T05:03:46.622Z" }, + { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload-time = "2025-12-15T05:03:24.367Z" }, + { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload-time = "2025-12-15T05:02:44.725Z" }, + { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload-time = "2025-12-15T05:03:39.633Z" }, + { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload-time = "2025-12-15T05:03:08.786Z" }, + { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload-time = "2025-12-15T05:03:10.834Z" }, + { url = "https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", size = 13201927, upload-time = "2025-12-15T05:02:29.138Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload-time = "2025-12-15T05:03:01.325Z" }, + { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload-time = "2025-12-15T05:03:20.087Z" }, + { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload-time = "2025-12-15T05:02:49.036Z" }, + { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, + { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, + { url = "https://files.pythonhosted.org/packages/de/eb/b83e75f4c820c4247a58580ef86fcd35165028f191e7e1ba57128c52782d/mypy-1.19.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06e6170bd5836770e8104c8fdd58e5e725cfeb309f0a6c681a811f557e97eac1", size = 13199744, upload-time = "2025-12-15T05:03:30.823Z" }, + { url = "https://files.pythonhosted.org/packages/94/28/52785ab7bfa165f87fcbb61547a93f98bb20e7f82f90f165a1f69bce7b3d/mypy-1.19.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:804bd67b8054a85447c8954215a906d6eff9cabeabe493fb6334b24f4bfff718", size = 12215815, upload-time = "2025-12-15T05:02:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c6/bdd60774a0dbfb05122e3e925f2e9e846c009e479dcec4821dad881f5b52/mypy-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21761006a7f497cb0d4de3d8ef4ca70532256688b0523eee02baf9eec895e27b", size = 12740047, upload-time = "2025-12-15T05:03:33.168Z" }, + { url = "https://files.pythonhosted.org/packages/32/2a/66ba933fe6c76bd40d1fe916a83f04fed253152f451a877520b3c4a5e41e/mypy-1.19.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28902ee51f12e0f19e1e16fbe2f8f06b6637f482c459dd393efddd0ec7f82045", size = 13601998, upload-time = "2025-12-15T05:03:13.056Z" }, + { url = "https://files.pythonhosted.org/packages/e3/da/5055c63e377c5c2418760411fd6a63ee2b96cf95397259038756c042574f/mypy-1.19.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:481daf36a4c443332e2ae9c137dfee878fcea781a2e3f895d54bd3002a900957", size = 13807476, upload-time = "2025-12-15T05:03:17.977Z" }, + { url = "https://files.pythonhosted.org/packages/cd/09/4ebd873390a063176f06b0dbf1f7783dd87bd120eae7727fa4ae4179b685/mypy-1.19.1-cp314-cp314-win_amd64.whl", hash = "sha256:8bb5c6f6d043655e055be9b542aa5f3bdd30e4f3589163e85f93f3640060509f", size = 10281872, upload-time = "2025-12-15T05:03:05.549Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "narwhals" +version = "2.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/6d/b57c64e5038a8cf071bce391bb11551657a74558877ac961e7fa905ece27/narwhals-2.15.0.tar.gz", hash = "sha256:a9585975b99d95084268445a1fdd881311fa26ef1caa18020d959d5b2ff9a965", size = 603479, upload-time = "2026-01-06T08:10:13.27Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/2e/cf2ffeb386ac3763526151163ad7da9f1b586aac96d2b4f7de1eaebf0c61/narwhals-2.15.0-py3-none-any.whl", hash = "sha256:cbfe21ca19d260d9fd67f995ec75c44592d1f106933b03ddd375df7ac841f9d6", size = 432856, upload-time = "2026-01-06T08:10:11.511Z" }, +] + +[[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.16.6" +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/a3/59/f28e15fc47ffb73af68a8d9b47367a8630d76e97ae85ad18271b9db96fdf/nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582", size = 857715, upload-time = "2025-01-28T09:29:14.724Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/9a/cd673b2f773a12c992f41309ef81b99da1690426bd2f96957a7ade0d3ed7/nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b", size = 258525, upload-time = "2025-01-28T09:29:12.551Z" }, +] + +[[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 = "notebook" +version = "7.5.2" +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/3b/b6/6b2c653570b02e4ec2a94c0646a4a25132be0749617776d0b72a2bcedb9b/notebook-7.5.2.tar.gz", hash = "sha256:83e82f93c199ca730313bea1bb24bc279ea96f74816d038a92d26b6b9d5f3e4a", size = 14059605, upload-time = "2026-01-12T14:56:53.483Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/55/b754cd51c6011d90ef03e3f06136f1ebd44658b9529dbcf0c15fc0d6a0b7/notebook-7.5.2-py3-none-any.whl", hash = "sha256:17d078a98603d70d62b6b4b3fcb67e87d7a68c398a7ae9b447eb2d7d9aec9979", size = 14468915, upload-time = "2026-01-12T14:56:47.87Z" }, +] + +[[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 = "numba" +version = "0.63.0b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/ce/efb2667849b0abac22d1499bc855f67b97c3d23bb4f43c1d854ec2a0c716/numba-0.63.0b1.tar.gz", hash = "sha256:66b7a0052e2cfe8befa273e5af3eae75e102ac9c3da7d2ca361b7b72cf5051c8", size = 2755553, upload-time = "2025-10-06T10:29:04.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/d1/e15373eefa75a2da14e62b6330bf3ad553a6fe6644cc5cb2e36a8b6775f3/numba-0.63.0b1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a6b7b0ade69599531889b54337705e95f900c462f2f515cc9ef22068658b3f29", size = 2811537, upload-time = "2025-10-06T10:23:39.08Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2e/ee42a6db7d7b77fa621e4c301401c9e98f6ac79cb9f6ce28df0559f04703/numba-0.63.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a5e3fb46924cf7aafd9577689fd54694568f1437e3b1cb628860779a6eb09964", size = 3800783, upload-time = "2025-10-06T10:22:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/79/73/19e3bc1bfd105314a331c66a474b44452466b137566fc73c1e74c2214fe6/numba-0.63.0b1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83c5de17c325c59c148e59dfe7a285eb49d9ec372c986f6390b217c33e08ba79", size = 3500761, upload-time = "2025-10-06T10:23:18.07Z" }, + { url = "https://files.pythonhosted.org/packages/8c/7c/ced377671768136bb2b4f0ff86910b047875266a078f583ef653d006f7c7/numba-0.63.0b1-cp312-cp312-win_amd64.whl", hash = "sha256:d3e2982172bcc4a68b5daab131c856369c21d748721bd7ad0ea1df987637a4d2", size = 2749833, upload-time = "2025-10-06T10:28:00.281Z" }, + { url = "https://files.pythonhosted.org/packages/cb/11/6d7d32f66aa81db675202921fde1a9c65117c3dad57c3989487824628596/numba-0.63.0b1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:51f6b4dd5f5779527f8dcc4210aea9f3d4f3567f44b86c7fd39260f7ad7be604", size = 2811531, upload-time = "2025-10-06T10:23:43.613Z" }, + { url = "https://files.pythonhosted.org/packages/b2/33/cb4f8ad3a61c6659a4fc346b57b626efd4d483178dcd6b5c0c4670cc1245/numba-0.63.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:43718e20370b11e72c384dea7c4ce0cd6680df1413f61bbacda8bb9cccc2df4c", size = 3808893, upload-time = "2025-10-06T10:22:59.349Z" }, + { url = "https://files.pythonhosted.org/packages/6b/6d/17ec0afb01ad6f2b8f4972b87192fb7ff8f51617841d5a150d048d6cd61c/numba-0.63.0b1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:756f65a628bf37cb1c9be29324573d46675ff582a34417a18f928ffd375f2e80", size = 3507680, upload-time = "2025-10-06T10:23:21.877Z" }, + { url = "https://files.pythonhosted.org/packages/52/14/c11668d73ae4a573c130803d3e9c046c712d2b432c5e32ab8212eb1a5ac8/numba-0.63.0b1-cp313-cp313-win_amd64.whl", hash = "sha256:82c2f724146591ab9877fec9c572032496c186fd7e1b2b0819b7f1deda7d81c4", size = 2749774, upload-time = "2025-10-06T10:28:07.873Z" }, + { url = "https://files.pythonhosted.org/packages/71/da/42dea01f6cba91b9024985e2a2db60841032aaede2ecf8f12c61b9c287fa/numba-0.63.0b1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:3422b88341c5fab6476942eeab49cff8f99959c5ec3073af174b31e0d97e73f9", size = 2812140, upload-time = "2025-10-06T10:23:47.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/00/6878b75d79b93c1e37d5dca66524918a5b910c6190cbec282ebccada015a/numba-0.63.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:686b78ed62141098bca3f485484f07926854f57b418dc1f8a1dcec29b211f495", size = 3777824, upload-time = "2025-10-06T10:23:04.287Z" }, + { url = "https://files.pythonhosted.org/packages/01/5a/6315ec8e40037cb515dc9ad8c7c1890ed7f79585c9fa8a86447b3ae9358c/numba-0.63.0b1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44988b34bab1291d4f999d0ed449a0c9e904cf5f92c9ff3f5537f31580ae5507", size = 3477536, upload-time = "2025-10-06T10:23:26.834Z" }, + { url = "https://files.pythonhosted.org/packages/7a/d1/0b0321717d71d24f326224128639c115bb7cdf8a1bb957472419dd2e42e4/numba-0.63.0b1-cp314-cp314-win_amd64.whl", hash = "sha256:a54b9c32a4d4b652df57d539ecf1cd8e5f860b40655fd36b6f8d391e95a7ae41", size = 2751721, upload-time = "2025-10-06T10:28:15.62Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/62/ae72ff66c0f1fd959925b4c11f8c2dea61f47f6acaea75a08512cdfe3fed/numpy-2.4.1.tar.gz", hash = "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690", size = 20721320, upload-time = "2026-01-10T06:44:59.619Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/7f/ec53e32bf10c813604edf07a3682616bd931d026fcde7b6d13195dfb684a/numpy-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2", size = 16656888, upload-time = "2026-01-10T06:42:40.913Z" }, + { url = "https://files.pythonhosted.org/packages/b8/e0/1f9585d7dae8f14864e948fd7fa86c6cb72dee2676ca2748e63b1c5acfe0/numpy-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8", size = 12373956, upload-time = "2026-01-10T06:42:43.091Z" }, + { url = "https://files.pythonhosted.org/packages/8e/43/9762e88909ff2326f5e7536fa8cb3c49fb03a7d92705f23e6e7f553d9cb3/numpy-2.4.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a", size = 5202567, upload-time = "2026-01-10T06:42:45.107Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ee/34b7930eb61e79feb4478800a4b95b46566969d837546aa7c034c742ef98/numpy-2.4.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0", size = 6549459, upload-time = "2026-01-10T06:42:48.152Z" }, + { url = "https://files.pythonhosted.org/packages/79/e3/5f115fae982565771be994867c89bcd8d7208dbfe9469185497d70de5ddf/numpy-2.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c", size = 14404859, upload-time = "2026-01-10T06:42:49.947Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7d/9c8a781c88933725445a859cac5d01b5871588a15969ee6aeb618ba99eee/numpy-2.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02", size = 16371419, upload-time = "2026-01-10T06:42:52.409Z" }, + { url = "https://files.pythonhosted.org/packages/a6/d2/8aa084818554543f17cf4162c42f162acbd3bb42688aefdba6628a859f77/numpy-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162", size = 16182131, upload-time = "2026-01-10T06:42:54.694Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/0425216684297c58a8df35f3284ef56ec4a043e6d283f8a59c53562caf1b/numpy-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9", size = 18295342, upload-time = "2026-01-10T06:42:56.991Z" }, + { url = "https://files.pythonhosted.org/packages/31/4c/14cb9d86240bd8c386c881bafbe43f001284b7cce3bc01623ac9475da163/numpy-2.4.1-cp312-cp312-win32.whl", hash = "sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f", size = 5959015, upload-time = "2026-01-10T06:42:59.631Z" }, + { url = "https://files.pythonhosted.org/packages/51/cf/52a703dbeb0c65807540d29699fef5fda073434ff61846a564d5c296420f/numpy-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87", size = 12310730, upload-time = "2026-01-10T06:43:01.627Z" }, + { url = "https://files.pythonhosted.org/packages/69/80/a828b2d0ade5e74a9fe0f4e0a17c30fdc26232ad2bc8c9f8b3197cf7cf18/numpy-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8", size = 10312166, upload-time = "2026-01-10T06:43:03.673Z" }, + { url = "https://files.pythonhosted.org/packages/04/68/732d4b7811c00775f3bd522a21e8dd5a23f77eb11acdeb663e4a4ebf0ef4/numpy-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b", size = 16652495, upload-time = "2026-01-10T06:43:06.283Z" }, + { url = "https://files.pythonhosted.org/packages/20/ca/857722353421a27f1465652b2c66813eeeccea9d76d5f7b74b99f298e60e/numpy-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f", size = 12368657, upload-time = "2026-01-10T06:43:09.094Z" }, + { url = "https://files.pythonhosted.org/packages/81/0d/2377c917513449cc6240031a79d30eb9a163d32a91e79e0da47c43f2c0c8/numpy-2.4.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9", size = 5197256, upload-time = "2026-01-10T06:43:13.634Z" }, + { url = "https://files.pythonhosted.org/packages/17/39/569452228de3f5de9064ac75137082c6214be1f5c532016549a7923ab4b5/numpy-2.4.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e", size = 6545212, upload-time = "2026-01-10T06:43:15.661Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a4/77333f4d1e4dac4395385482557aeecf4826e6ff517e32ca48e1dafbe42a/numpy-2.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5", size = 14402871, upload-time = "2026-01-10T06:43:17.324Z" }, + { url = "https://files.pythonhosted.org/packages/ba/87/d341e519956273b39d8d47969dd1eaa1af740615394fe67d06f1efa68773/numpy-2.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8", size = 16359305, upload-time = "2026-01-10T06:43:19.376Z" }, + { url = "https://files.pythonhosted.org/packages/32/91/789132c6666288eaa20ae8066bb99eba1939362e8f1a534949a215246e97/numpy-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c", size = 16181909, upload-time = "2026-01-10T06:43:21.808Z" }, + { url = "https://files.pythonhosted.org/packages/cf/b8/090b8bd27b82a844bb22ff8fdf7935cb1980b48d6e439ae116f53cdc2143/numpy-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2", size = 18284380, upload-time = "2026-01-10T06:43:23.957Z" }, + { url = "https://files.pythonhosted.org/packages/67/78/722b62bd31842ff029412271556a1a27a98f45359dea78b1548a3a9996aa/numpy-2.4.1-cp313-cp313-win32.whl", hash = "sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d", size = 5957089, upload-time = "2026-01-10T06:43:27.535Z" }, + { url = "https://files.pythonhosted.org/packages/da/a6/cf32198b0b6e18d4fbfa9a21a992a7fca535b9bb2b0cdd217d4a3445b5ca/numpy-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb", size = 12307230, upload-time = "2026-01-10T06:43:29.298Z" }, + { url = "https://files.pythonhosted.org/packages/44/6c/534d692bfb7d0afe30611320c5fb713659dcb5104d7cc182aff2aea092f5/numpy-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5", size = 10313125, upload-time = "2026-01-10T06:43:31.782Z" }, + { url = "https://files.pythonhosted.org/packages/da/a1/354583ac5c4caa566de6ddfbc42744409b515039e085fab6e0ff942e0df5/numpy-2.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7", size = 12496156, upload-time = "2026-01-10T06:43:34.237Z" }, + { url = "https://files.pythonhosted.org/packages/51/b0/42807c6e8cce58c00127b1dc24d365305189991f2a7917aa694a109c8d7d/numpy-2.4.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d", size = 5324663, upload-time = "2026-01-10T06:43:36.211Z" }, + { url = "https://files.pythonhosted.org/packages/fe/55/7a621694010d92375ed82f312b2f28017694ed784775269115323e37f5e2/numpy-2.4.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15", size = 6645224, upload-time = "2026-01-10T06:43:37.884Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/9fa8635ed9d7c847d87e30c834f7109fac5e88549d79ef3324ab5c20919f/numpy-2.4.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9", size = 14462352, upload-time = "2026-01-10T06:43:39.479Z" }, + { url = "https://files.pythonhosted.org/packages/03/d1/8cf62d8bb2062da4fb82dd5d49e47c923f9c0738032f054e0a75342faba7/numpy-2.4.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2", size = 16407279, upload-time = "2026-01-10T06:43:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/86/1c/95c86e17c6b0b31ce6ef219da00f71113b220bcb14938c8d9a05cee0ff53/numpy-2.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505", size = 16248316, upload-time = "2026-01-10T06:43:44.121Z" }, + { url = "https://files.pythonhosted.org/packages/30/b4/e7f5ff8697274c9d0fa82398b6a372a27e5cef069b37df6355ccb1f1db1a/numpy-2.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2", size = 18329884, upload-time = "2026-01-10T06:43:46.613Z" }, + { url = "https://files.pythonhosted.org/packages/37/a4/b073f3e9d77f9aec8debe8ca7f9f6a09e888ad1ba7488f0c3b36a94c03ac/numpy-2.4.1-cp313-cp313t-win32.whl", hash = "sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4", size = 6081138, upload-time = "2026-01-10T06:43:48.854Z" }, + { url = "https://files.pythonhosted.org/packages/16/16/af42337b53844e67752a092481ab869c0523bc95c4e5c98e4dac4e9581ac/numpy-2.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510", size = 12447478, upload-time = "2026-01-10T06:43:50.476Z" }, + { url = "https://files.pythonhosted.org/packages/6c/f8/fa85b2eac68ec631d0b631abc448552cb17d39afd17ec53dcbcc3537681a/numpy-2.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261", size = 10382981, upload-time = "2026-01-10T06:43:52.575Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a7/ef08d25698e0e4b4efbad8d55251d20fe2a15f6d9aa7c9b30cd03c165e6f/numpy-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc", size = 16652046, upload-time = "2026-01-10T06:43:54.797Z" }, + { url = "https://files.pythonhosted.org/packages/8f/39/e378b3e3ca13477e5ac70293ec027c438d1927f18637e396fe90b1addd72/numpy-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3", size = 12378858, upload-time = "2026-01-10T06:43:57.099Z" }, + { url = "https://files.pythonhosted.org/packages/c3/74/7ec6154f0006910ed1fdbb7591cf4432307033102b8a22041599935f8969/numpy-2.4.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220", size = 5207417, upload-time = "2026-01-10T06:43:59.037Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b7/053ac11820d84e42f8feea5cb81cc4fcd1091499b45b1ed8c7415b1bf831/numpy-2.4.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee", size = 6542643, upload-time = "2026-01-10T06:44:01.852Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c4/2e7908915c0e32ca636b92e4e4a3bdec4cb1e7eb0f8aedf1ed3c68a0d8cd/numpy-2.4.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556", size = 14418963, upload-time = "2026-01-10T06:44:04.047Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c0/3ed5083d94e7ffd7c404e54619c088e11f2e1939a9544f5397f4adb1b8ba/numpy-2.4.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844", size = 16363811, upload-time = "2026-01-10T06:44:06.207Z" }, + { url = "https://files.pythonhosted.org/packages/0e/68/42b66f1852bf525050a67315a4fb94586ab7e9eaa541b1bef530fab0c5dd/numpy-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3", size = 16197643, upload-time = "2026-01-10T06:44:08.33Z" }, + { url = "https://files.pythonhosted.org/packages/d2/40/e8714fc933d85f82c6bfc7b998a0649ad9769a32f3494ba86598aaf18a48/numpy-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205", size = 18289601, upload-time = "2026-01-10T06:44:10.841Z" }, + { url = "https://files.pythonhosted.org/packages/80/9a/0d44b468cad50315127e884802351723daca7cf1c98d102929468c81d439/numpy-2.4.1-cp314-cp314-win32.whl", hash = "sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745", size = 6005722, upload-time = "2026-01-10T06:44:13.332Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bb/c6513edcce5a831810e2dddc0d3452ce84d208af92405a0c2e58fd8e7881/numpy-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d", size = 12438590, upload-time = "2026-01-10T06:44:15.006Z" }, + { url = "https://files.pythonhosted.org/packages/e9/da/a598d5cb260780cf4d255102deba35c1d072dc028c4547832f45dd3323a8/numpy-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df", size = 10596180, upload-time = "2026-01-10T06:44:17.386Z" }, + { url = "https://files.pythonhosted.org/packages/de/bc/ea3f2c96fcb382311827231f911723aeff596364eb6e1b6d1d91128aa29b/numpy-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f", size = 12498774, upload-time = "2026-01-10T06:44:19.467Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ab/ef9d939fe4a812648c7a712610b2ca6140b0853c5efea361301006c02ae5/numpy-2.4.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0", size = 5327274, upload-time = "2026-01-10T06:44:23.189Z" }, + { url = "https://files.pythonhosted.org/packages/bd/31/d381368e2a95c3b08b8cf7faac6004849e960f4a042d920337f71cef0cae/numpy-2.4.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c", size = 6648306, upload-time = "2026-01-10T06:44:25.012Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e5/0989b44ade47430be6323d05c23207636d67d7362a1796ccbccac6773dd2/numpy-2.4.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93", size = 14464653, upload-time = "2026-01-10T06:44:26.706Z" }, + { url = "https://files.pythonhosted.org/packages/10/a7/cfbe475c35371cae1358e61f20c5f075badc18c4797ab4354140e1d283cf/numpy-2.4.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42", size = 16405144, upload-time = "2026-01-10T06:44:29.378Z" }, + { url = "https://files.pythonhosted.org/packages/f8/a3/0c63fe66b534888fa5177cc7cef061541064dbe2b4b60dcc60ffaf0d2157/numpy-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01", size = 16247425, upload-time = "2026-01-10T06:44:31.721Z" }, + { url = "https://files.pythonhosted.org/packages/6b/2b/55d980cfa2c93bd40ff4c290bf824d792bd41d2fe3487b07707559071760/numpy-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b", size = 18330053, upload-time = "2026-01-10T06:44:34.617Z" }, + { url = "https://files.pythonhosted.org/packages/23/12/8b5fc6b9c487a09a7957188e0943c9ff08432c65e34567cabc1623b03a51/numpy-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a", size = 6152482, upload-time = "2026-01-10T06:44:36.798Z" }, + { url = "https://files.pythonhosted.org/packages/00/a5/9f8ca5856b8940492fc24fbe13c1bc34d65ddf4079097cf9e53164d094e1/numpy-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2", size = 12627117, upload-time = "2026-01-10T06:44:38.828Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0d/eca3d962f9eef265f01a8e0d20085c6dd1f443cbffc11b6dede81fd82356/numpy-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295", size = 10667121, upload-time = "2026-01-10T06:44:41.644Z" }, +] + +[[package]] +name = "nvidia-nccl-cu12" +version = "2.29.2" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/b2/e4dc7b33020645746710040cb2a6ac0de8332687d3ce902156dd3d7c351a/nvidia_nccl_cu12-2.29.2-py3-none-manylinux_2_18_aarch64.whl", hash = "sha256:0712e55c067965c6093cc793a9bbcc5f37b5b47248e9ebf8ae3af06867757587", size = 289707761, upload-time = "2026-01-07T00:21:30.514Z" }, + { url = "https://files.pythonhosted.org/packages/23/2d/609d0392d992259c6dc39881688a7fc13b1397a668bc360fbd68d1396f85/nvidia_nccl_cu12-2.29.2-py3-none-manylinux_2_18_x86_64.whl", hash = "sha256:3a9a0bf4142126e0d0ed99ec202579bef8d007601f9fab75af60b10324666b12", size = 289762233, upload-time = "2026-01-07T00:21:56.124Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload-time = "2025-12-11T13:32:39.182Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, +] + +[[package]] +name = "opentelemetry-proto" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/1d/f25d76d8260c156c40c97c9ed4511ec0f9ce353f8108ca6e7561f82a06b2/opentelemetry_proto-1.39.1.tar.gz", hash = "sha256:6c8e05144fc0d3ed4d22c2289c6b126e03bcd0e6a7da0f16cedd2e1c2772e2c8", size = 46152, upload-time = "2025-12-11T13:32:48.681Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/95/b40c96a7b5203005a0b03d8ce8cd212ff23f1793d5ba289c87a097571b18/opentelemetry_proto-1.39.1-py3-none-any.whl", hash = "sha256:22cdc78efd3b3765d09e68bfbd010d4fc254c9818afd0b6b423387d9dee46007", size = 72535, upload-time = "2025-12-11T13:32:33.866Z" }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, +] + +[[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.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/de/53e0bcf53d13e005bd8c92e7855142494f41171b34c2536b86187474184d/parso-0.8.5.tar.gz", hash = "sha256:034d7354a9a018bdce352f48b2a8a450f05e9d6ee85db84764e9b6bd96dafe5a", size = 401205, upload-time = "2025-08-23T15:15:28.028Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/32/f8e3c85d1d5250232a5d3477a2a28cc291968ff175caeadaf3cc19ce0e4a/parso-0.8.5-py2.py3-none-any.whl", hash = "sha256:646204b5ee239c396d040b90f9e272e9a8017c630092bf59980beb62fd033887", size = 106668, upload-time = "2025-08-23T15:15:25.663Z" }, +] + +[[package]] +name = "pathspec" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/b2/bb8e495d5262bfec41ab5cb18f522f1012933347fb5d9e62452d446baca2/pathspec-1.0.3.tar.gz", hash = "sha256:bac5cf97ae2c2876e2d25ebb15078eb04d76e4b98921ee31c6f85ade8b59444d", size = 130841, upload-time = "2026-01-09T15:46:46.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/2b/121e912bd60eebd623f873fd090de0e84f322972ab25a7f9044c056804ed/pathspec-1.0.3-py3-none-any.whl", hash = "sha256:e80767021c1cc524aa3fb14bedda9c34406591343cc42797b386ce7b9354fb6c", size = 55021, upload-time = "2026-01-09T15:46:44.652Z" }, +] + +[[package]] +name = "patsy" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/44/ed13eccdd0519eff265f44b670d46fbb0ec813e2274932dc1c0e48520f7d/patsy-1.0.2.tar.gz", hash = "sha256:cdc995455f6233e90e22de72c37fcadb344e7586fb83f06696f54d92f8ce74c0", size = 399942, upload-time = "2025-10-20T16:17:37.535Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/70/ba4b949bdc0490ab78d545459acd7702b211dfccf7eb89bbc1060f52818d/patsy-1.0.2-py2.py3-none-any.whl", hash = "sha256:37bfddbc58fcf0362febb5f54f10743f8b21dd2aa73dec7e7ef59d1b02ae668a", size = 233301, upload-time = "2025-10-20T16:17:36.563Z" }, +] + +[[package]] +name = "payshield-ml" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "category-encoders" }, + { name = "fastapi" }, + { name = "hiredis" }, + { name = "joblib" }, + { name = "matplotlib" }, + { name = "mlflow" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "plotly" }, + { name = "pyarrow" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "redis" }, + { name = "requests" }, + { name = "scikit-learn" }, + { name = "seaborn" }, + { name = "shap" }, + { name = "streamlit" }, + { name = "typing-extensions" }, + { name = "uvicorn", extra = ["standard"] }, + { name = "xgboost" }, +] + +[package.optional-dependencies] +dev = [ + { name = "ipykernel" }, + { name = "jupyter" }, + { name = "mypy" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "ruff" }, +] + +[package.dev-dependencies] +dev = [ + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "category-encoders", specifier = ">=2.6.0" }, + { name = "fastapi", specifier = ">=0.109.0" }, + { name = "hiredis", specifier = ">=2.3.0" }, + { name = "ipykernel", marker = "extra == 'dev'", specifier = ">=6.29.0" }, + { name = "joblib", specifier = ">=1.5.0" }, + { name = "jupyter", marker = "extra == 'dev'", specifier = ">=1.0.0" }, + { name = "matplotlib", specifier = ">=3.10.8" }, + { name = "mlflow", specifier = ">=2.10.0" }, + { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.8.0" }, + { name = "numpy", specifier = ">=2.0.0" }, + { name = "pandas", specifier = ">=2.2.0" }, + { name = "plotly", specifier = ">=6.5.2" }, + { name = "pyarrow", specifier = ">=15.0.0" }, + { name = "pydantic", specifier = ">=2.5.0" }, + { name = "pydantic-settings", specifier = ">=2.12.0" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" }, + { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=4.1.0" }, + { name = "python-dotenv", specifier = ">=1.0.0" }, + { name = "pyyaml", specifier = ">=6.0.1" }, + { name = "redis", specifier = ">=5.0.0" }, + { name = "requests", specifier = ">=2.32.5" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.1.0" }, + { name = "scikit-learn", specifier = ">=1.4.0" }, + { name = "seaborn", specifier = ">=0.13.2" }, + { name = "shap", specifier = ">=0.50.0" }, + { name = "streamlit", specifier = ">=1.53.0" }, + { name = "typing-extensions", specifier = ">=4.15.0" }, + { name = "uvicorn", extras = ["standard"], specifier = ">=0.27.0" }, + { name = "xgboost", specifier = ">=2.0.0" }, +] +provides-extras = ["dev"] + +[package.metadata.requires-dev] +dev = [{ name = "ruff", specifier = ">=0.14.13" }] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +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.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9", size = 46977283, upload-time = "2026-01-02T09:13:29.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/31/dc53fe21a2f2996e1b7d92bf671cdb157079385183ef7c1ae08b485db510/pillow-12.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a332ac4ccb84b6dde65dbace8431f3af08874bf9770719d32a635c4ef411b18b", size = 5262642, upload-time = "2026-01-02T09:11:10.138Z" }, + { url = "https://files.pythonhosted.org/packages/ab/c1/10e45ac9cc79419cedf5121b42dcca5a50ad2b601fa080f58c22fb27626e/pillow-12.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:907bfa8a9cb790748a9aa4513e37c88c59660da3bcfffbd24a7d9e6abf224551", size = 4657464, upload-time = "2026-01-02T09:11:12.319Z" }, + { url = "https://files.pythonhosted.org/packages/ad/26/7b82c0ab7ef40ebede7a97c72d473bda5950f609f8e0c77b04af574a0ddb/pillow-12.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efdc140e7b63b8f739d09a99033aa430accce485ff78e6d311973a67b6bf3208", size = 6234878, upload-time = "2026-01-02T09:11:14.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/25/27abc9792615b5e886ca9411ba6637b675f1b77af3104710ac7353fe5605/pillow-12.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef9768cab184e7ae6e559c032e95ba8d07b3023c289f79a2bd36e8bf85605a5", size = 8044868, upload-time = "2026-01-02T09:11:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ea/f200a4c36d836100e7bc738fc48cd963d3ba6372ebc8298a889e0cfc3359/pillow-12.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:742aea052cf5ab5034a53c3846165bc3ce88d7c38e954120db0ab867ca242661", size = 6349468, upload-time = "2026-01-02T09:11:17.631Z" }, + { url = "https://files.pythonhosted.org/packages/11/8f/48d0b77ab2200374c66d344459b8958c86693be99526450e7aee714e03e4/pillow-12.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6dfc2af5b082b635af6e08e0d1f9f1c4e04d17d4e2ca0ef96131e85eda6eb17", size = 7041518, upload-time = "2026-01-02T09:11:19.389Z" }, + { url = "https://files.pythonhosted.org/packages/1d/23/c281182eb986b5d31f0a76d2a2c8cd41722d6fb8ed07521e802f9bba52de/pillow-12.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:609e89d9f90b581c8d16358c9087df76024cf058fa693dd3e1e1620823f39670", size = 6462829, upload-time = "2026-01-02T09:11:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ef/7018273e0faac099d7b00982abdcc39142ae6f3bd9ceb06de09779c4a9d6/pillow-12.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43b4899cfd091a9693a1278c4982f3e50f7fb7cff5153b05174b4afc9593b616", size = 7166756, upload-time = "2026-01-02T09:11:23.559Z" }, + { url = "https://files.pythonhosted.org/packages/8f/c8/993d4b7ab2e341fe02ceef9576afcf5830cdec640be2ac5bee1820d693d4/pillow-12.1.0-cp312-cp312-win32.whl", hash = "sha256:aa0c9cc0b82b14766a99fbe6084409972266e82f459821cd26997a488a7261a7", size = 6328770, upload-time = "2026-01-02T09:11:25.661Z" }, + { url = "https://files.pythonhosted.org/packages/a7/87/90b358775a3f02765d87655237229ba64a997b87efa8ccaca7dd3e36e7a7/pillow-12.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:d70534cea9e7966169ad29a903b99fc507e932069a881d0965a1a84bb57f6c6d", size = 7033406, upload-time = "2026-01-02T09:11:27.474Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cf/881b457eccacac9e5b2ddd97d5071fb6d668307c57cbf4e3b5278e06e536/pillow-12.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:65b80c1ee7e14a87d6a068dd3b0aea268ffcabfe0498d38661b00c5b4b22e74c", size = 2452612, upload-time = "2026-01-02T09:11:29.309Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c7/2530a4aa28248623e9d7f27316b42e27c32ec410f695929696f2e0e4a778/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1", size = 4062543, upload-time = "2026-01-02T09:11:31.566Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1f/40b8eae823dc1519b87d53c30ed9ef085506b05281d313031755c1705f73/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179", size = 4138373, upload-time = "2026-01-02T09:11:33.367Z" }, + { url = "https://files.pythonhosted.org/packages/d4/77/6fa60634cf06e52139fd0e89e5bbf055e8166c691c42fb162818b7fda31d/pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0", size = 3601241, upload-time = "2026-01-02T09:11:35.011Z" }, + { url = "https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587", size = 5262410, upload-time = "2026-01-02T09:11:36.682Z" }, + { url = "https://files.pythonhosted.org/packages/1c/34/583420a1b55e715937a85bd48c5c0991598247a1fd2eb5423188e765ea02/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac", size = 4657312, upload-time = "2026-01-02T09:11:38.535Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fd/f5a0896839762885b3376ff04878f86ab2b097c2f9a9cdccf4eda8ba8dc0/pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b", size = 6232605, upload-time = "2026-01-02T09:11:40.602Z" }, + { url = "https://files.pythonhosted.org/packages/98/aa/938a09d127ac1e70e6ed467bd03834350b33ef646b31edb7452d5de43792/pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea", size = 8041617, upload-time = "2026-01-02T09:11:42.721Z" }, + { url = "https://files.pythonhosted.org/packages/17/e8/538b24cb426ac0186e03f80f78bc8dc7246c667f58b540bdd57c71c9f79d/pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c", size = 6346509, upload-time = "2026-01-02T09:11:44.955Z" }, + { url = "https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc", size = 7038117, upload-time = "2026-01-02T09:11:46.736Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a2/d40308cf86eada842ca1f3ffa45d0ca0df7e4ab33c83f81e73f5eaed136d/pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644", size = 6460151, upload-time = "2026-01-02T09:11:48.625Z" }, + { url = "https://files.pythonhosted.org/packages/f1/88/f5b058ad6453a085c5266660a1417bdad590199da1b32fb4efcff9d33b05/pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c", size = 7164534, upload-time = "2026-01-02T09:11:50.445Z" }, + { url = "https://files.pythonhosted.org/packages/19/ce/c17334caea1db789163b5d855a5735e47995b0b5dc8745e9a3605d5f24c0/pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171", size = 6332551, upload-time = "2026-01-02T09:11:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/e5/07/74a9d941fa45c90a0d9465098fe1ec85de3e2afbdc15cc4766622d516056/pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a", size = 7040087, upload-time = "2026-01-02T09:11:54.822Z" }, + { url = "https://files.pythonhosted.org/packages/88/09/c99950c075a0e9053d8e880595926302575bc742b1b47fe1bbcc8d388d50/pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45", size = 2452470, upload-time = "2026-01-02T09:11:56.522Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ba/970b7d85ba01f348dee4d65412476321d40ee04dcb51cd3735b9dc94eb58/pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d", size = 5264816, upload-time = "2026-01-02T09:11:58.227Z" }, + { url = "https://files.pythonhosted.org/packages/10/60/650f2fb55fdba7a510d836202aa52f0baac633e50ab1cf18415d332188fb/pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0", size = 4660472, upload-time = "2026-01-02T09:12:00.798Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/5273a99478956a099d533c4f46cbaa19fd69d606624f4334b85e50987a08/pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554", size = 6268974, upload-time = "2026-01-02T09:12:02.572Z" }, + { url = "https://files.pythonhosted.org/packages/b4/26/0bf714bc2e73d5267887d47931d53c4ceeceea6978148ed2ab2a4e6463c4/pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e", size = 8073070, upload-time = "2026-01-02T09:12:04.75Z" }, + { url = "https://files.pythonhosted.org/packages/43/cf/1ea826200de111a9d65724c54f927f3111dc5ae297f294b370a670c17786/pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82", size = 6380176, upload-time = "2026-01-02T09:12:06.626Z" }, + { url = "https://files.pythonhosted.org/packages/03/e0/7938dd2b2013373fd85d96e0f38d62b7a5a262af21ac274250c7ca7847c9/pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4", size = 7067061, upload-time = "2026-01-02T09:12:08.624Z" }, + { url = "https://files.pythonhosted.org/packages/86/ad/a2aa97d37272a929a98437a8c0ac37b3cf012f4f8721e1bd5154699b2518/pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0", size = 6491824, upload-time = "2026-01-02T09:12:10.488Z" }, + { url = "https://files.pythonhosted.org/packages/a4/44/80e46611b288d51b115826f136fb3465653c28f491068a72d3da49b54cd4/pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b", size = 7190911, upload-time = "2026-01-02T09:12:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/86/77/eacc62356b4cf81abe99ff9dbc7402750044aed02cfd6a503f7c6fc11f3e/pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65", size = 6336445, upload-time = "2026-01-02T09:12:14.775Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3c/57d81d0b74d218706dafccb87a87ea44262c43eef98eb3b164fd000e0491/pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0", size = 7045354, upload-time = "2026-01-02T09:12:16.599Z" }, + { url = "https://files.pythonhosted.org/packages/ac/82/8b9b97bba2e3576a340f93b044a3a3a09841170ab4c1eb0d5c93469fd32f/pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8", size = 2454547, upload-time = "2026-01-02T09:12:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/8c/87/bdf971d8bbcf80a348cc3bacfcb239f5882100fe80534b0ce67a784181d8/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91", size = 4062533, upload-time = "2026-01-02T09:12:20.791Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/5eb37a681c68d605eb7034c004875c81f86ec9ef51f5be4a63eadd58859a/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796", size = 4138546, upload-time = "2026-01-02T09:12:23.664Z" }, + { url = "https://files.pythonhosted.org/packages/11/6d/19a95acb2edbace40dcd582d077b991646b7083c41b98da4ed7555b59733/pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd", size = 3601163, upload-time = "2026-01-02T09:12:26.338Z" }, + { url = "https://files.pythonhosted.org/packages/fc/36/2b8138e51cb42e4cc39c3297713455548be855a50558c3ac2beebdc251dd/pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13", size = 5266086, upload-time = "2026-01-02T09:12:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/649056e4d22e1caa90816bf99cef0884aed607ed38075bd75f091a607a38/pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e", size = 4657344, upload-time = "2026-01-02T09:12:31.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/6b/c5742cea0f1ade0cd61485dc3d81f05261fc2276f537fbdc00802de56779/pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643", size = 6232114, upload-time = "2026-01-02T09:12:32.936Z" }, + { url = "https://files.pythonhosted.org/packages/bf/8f/9f521268ce22d63991601aafd3d48d5ff7280a246a1ef62d626d67b44064/pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5", size = 8042708, upload-time = "2026-01-02T09:12:34.78Z" }, + { url = "https://files.pythonhosted.org/packages/1a/eb/257f38542893f021502a1bbe0c2e883c90b5cff26cc33b1584a841a06d30/pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de", size = 6347762, upload-time = "2026-01-02T09:12:36.748Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9", size = 7039265, upload-time = "2026-01-02T09:12:39.082Z" }, + { url = "https://files.pythonhosted.org/packages/cf/dc/cf5e4cdb3db533f539e88a7bbf9f190c64ab8a08a9bc7a4ccf55067872e4/pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a", size = 6462341, upload-time = "2026-01-02T09:12:40.946Z" }, + { url = "https://files.pythonhosted.org/packages/d0/47/0291a25ac9550677e22eda48510cfc4fa4b2ef0396448b7fbdc0a6946309/pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a", size = 7165395, upload-time = "2026-01-02T09:12:42.706Z" }, + { url = "https://files.pythonhosted.org/packages/4f/4c/e005a59393ec4d9416be06e6b45820403bb946a778e39ecec62f5b2b991e/pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030", size = 6431413, upload-time = "2026-01-02T09:12:44.944Z" }, + { url = "https://files.pythonhosted.org/packages/1c/af/f23697f587ac5f9095d67e31b81c95c0249cd461a9798a061ed6709b09b5/pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94", size = 7176779, upload-time = "2026-01-02T09:12:46.727Z" }, + { url = "https://files.pythonhosted.org/packages/b3/36/6a51abf8599232f3e9afbd16d52829376a68909fe14efe29084445db4b73/pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4", size = 2543105, upload-time = "2026-01-02T09:12:49.243Z" }, + { url = "https://files.pythonhosted.org/packages/82/54/2e1dd20c8749ff225080d6ba465a0cab4387f5db0d1c5fb1439e2d99923f/pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2", size = 5268571, upload-time = "2026-01-02T09:12:51.11Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/571163a5ef86ec0cf30d265ac2a70ae6fc9e28413d1dc94fa37fae6bda89/pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61", size = 4660426, upload-time = "2026-01-02T09:12:52.865Z" }, + { url = "https://files.pythonhosted.org/packages/5e/e1/53ee5163f794aef1bf84243f755ee6897a92c708505350dd1923f4afec48/pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51", size = 6269908, upload-time = "2026-01-02T09:12:54.884Z" }, + { url = "https://files.pythonhosted.org/packages/bc/0b/b4b4106ff0ee1afa1dc599fde6ab230417f800279745124f6c50bcffed8e/pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc", size = 8074733, upload-time = "2026-01-02T09:12:56.802Z" }, + { url = "https://files.pythonhosted.org/packages/19/9f/80b411cbac4a732439e629a26ad3ef11907a8c7fc5377b7602f04f6fe4e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14", size = 6381431, upload-time = "2026-01-02T09:12:58.823Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b7/d65c45db463b66ecb6abc17c6ba6917a911202a07662247e1355ce1789e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8", size = 7068529, upload-time = "2026-01-02T09:13:00.885Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/dfd4cd726b4a45ae6e3c669fc9e49deb2241312605d33aba50499e9d9bd1/pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924", size = 6492981, upload-time = "2026-01-02T09:13:03.314Z" }, + { url = "https://files.pythonhosted.org/packages/4d/1c/b5dc52cf713ae46033359c5ca920444f18a6359ce1020dd3e9c553ea5bc6/pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef", size = 7191878, upload-time = "2026-01-02T09:13:05.276Z" }, + { url = "https://files.pythonhosted.org/packages/53/26/c4188248bd5edaf543864fe4834aebe9c9cb4968b6f573ce014cc42d0720/pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988", size = 6438703, upload-time = "2026-01-02T09:13:07.491Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0e/69ed296de8ea05cb03ee139cee600f424ca166e632567b2d66727f08c7ed/pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6", size = 7182927, upload-time = "2026-01-02T09:13:09.841Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f5/68334c015eed9b5cff77814258717dec591ded209ab5b6fb70e2ae873d1d/pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831", size = 2545104, upload-time = "2026-01-02T09:13:12.068Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + +[[package]] +name = "plotly" +version = "6.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "narwhals" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/4f/8a10a9b9f5192cb6fdef62f1d77fa7d834190b2c50c0cd256bd62879212b/plotly-6.5.2.tar.gz", hash = "sha256:7478555be0198562d1435dee4c308268187553cc15516a2f4dd034453699e393", size = 7015695, upload-time = "2026-01-14T21:26:51.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/67/f95b5460f127840310d2187f916cf0023b5875c0717fdf893f71e1325e87/plotly-6.5.2-py3-none-any.whl", hash = "sha256:91757653bd9c550eeea2fa2404dba6b85d1e366d54804c340b2c874e5a7eb4a4", size = 9895973, upload-time = "2026-01-14T21:26:47.135Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +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.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/b8/cda15d9d46d03d4aa3a67cb6bffe05173440ccf86a9541afaf7ac59a1b6b/protobuf-6.33.4.tar.gz", hash = "sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91", size = 444346, upload-time = "2026-01-12T18:33:40.109Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/be/24ef9f3095bacdf95b458543334d0c4908ccdaee5130420bf064492c325f/protobuf-6.33.4-cp310-abi3-win32.whl", hash = "sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d", size = 425612, upload-time = "2026-01-12T18:33:29.656Z" }, + { url = "https://files.pythonhosted.org/packages/31/ad/e5693e1974a28869e7cd244302911955c1cebc0161eb32dfa2b25b6e96f0/protobuf-6.33.4-cp310-abi3-win_amd64.whl", hash = "sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc", size = 436962, upload-time = "2026-01-12T18:33:31.345Z" }, + { url = "https://files.pythonhosted.org/packages/66/15/6ee23553b6bfd82670207ead921f4d8ef14c107e5e11443b04caeb5ab5ec/protobuf-6.33.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0", size = 427612, upload-time = "2026-01-12T18:33:32.646Z" }, + { url = "https://files.pythonhosted.org/packages/2b/48/d301907ce6d0db75f959ca74f44b475a9caa8fcba102d098d3c3dd0f2d3f/protobuf-6.33.4-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e", size = 324484, upload-time = "2026-01-12T18:33:33.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/1c/e53078d3f7fe710572ab2dcffd993e1e3b438ae71cfc031b71bae44fcb2d/protobuf-6.33.4-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6", size = 339256, upload-time = "2026-01-12T18:33:35.231Z" }, + { url = "https://files.pythonhosted.org/packages/e8/8e/971c0edd084914f7ee7c23aa70ba89e8903918adca179319ee94403701d5/protobuf-6.33.4-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9", size = 323311, upload-time = "2026-01-12T18:33:36.305Z" }, + { url = "https://files.pythonhosted.org/packages/75/b1/1dc83c2c661b4c62d56cc081706ee33a4fc2835bd90f965baa2663ef7676/protobuf-6.33.4-py3-none-any.whl", hash = "sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc", size = 170532, upload-time = "2026-01-12T18:33:39.199Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/73/cb/09e5184fb5fc0358d110fc3ca7f6b1d033800734d34cac10f4136cfac10e/psutil-7.2.1.tar.gz", hash = "sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3", size = 490253, upload-time = "2025-12-29T08:26:00.169Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/8e/f0c242053a368c2aa89584ecd1b054a18683f13d6e5a318fc9ec36582c94/psutil-7.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d", size = 129624, upload-time = "2025-12-29T08:26:04.255Z" }, + { url = "https://files.pythonhosted.org/packages/26/97/a58a4968f8990617decee234258a2b4fc7cd9e35668387646c1963e69f26/psutil-7.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49", size = 130132, upload-time = "2025-12-29T08:26:06.228Z" }, + { url = "https://files.pythonhosted.org/packages/db/6d/ed44901e830739af5f72a85fa7ec5ff1edea7f81bfbf4875e409007149bd/psutil-7.2.1-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc", size = 180612, upload-time = "2025-12-29T08:26:08.276Z" }, + { url = "https://files.pythonhosted.org/packages/c7/65/b628f8459bca4efbfae50d4bf3feaab803de9a160b9d5f3bd9295a33f0c2/psutil-7.2.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf", size = 183201, upload-time = "2025-12-29T08:26:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/fb/23/851cadc9764edcc18f0effe7d0bf69f727d4cf2442deb4a9f78d4e4f30f2/psutil-7.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f", size = 139081, upload-time = "2025-12-29T08:26:12.483Z" }, + { url = "https://files.pythonhosted.org/packages/59/82/d63e8494ec5758029f31c6cb06d7d161175d8281e91d011a4a441c8a43b5/psutil-7.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672", size = 134767, upload-time = "2025-12-29T08:26:14.528Z" }, + { url = "https://files.pythonhosted.org/packages/05/c2/5fb764bd61e40e1fe756a44bd4c21827228394c17414ade348e28f83cd79/psutil-7.2.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679", size = 129716, upload-time = "2025-12-29T08:26:16.017Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d2/935039c20e06f615d9ca6ca0ab756cf8408a19d298ffaa08666bc18dc805/psutil-7.2.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f", size = 130133, upload-time = "2025-12-29T08:26:18.009Z" }, + { url = "https://files.pythonhosted.org/packages/77/69/19f1eb0e01d24c2b3eacbc2f78d3b5add8a89bf0bb69465bc8d563cc33de/psutil-7.2.1-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129", size = 181518, upload-time = "2025-12-29T08:26:20.241Z" }, + { url = "https://files.pythonhosted.org/packages/e1/6d/7e18b1b4fa13ad370787626c95887b027656ad4829c156bb6569d02f3262/psutil-7.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a", size = 184348, upload-time = "2025-12-29T08:26:22.215Z" }, + { url = "https://files.pythonhosted.org/packages/98/60/1672114392dd879586d60dd97896325df47d9a130ac7401318005aab28ec/psutil-7.2.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79", size = 140400, upload-time = "2025-12-29T08:26:23.993Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7b/d0e9d4513c46e46897b46bcfc410d51fc65735837ea57a25170f298326e6/psutil-7.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266", size = 135430, upload-time = "2025-12-29T08:26:25.999Z" }, + { url = "https://files.pythonhosted.org/packages/c5/cf/5180eb8c8bdf6a503c6919f1da28328bd1e6b3b1b5b9d5b01ae64f019616/psutil-7.2.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42", size = 128137, upload-time = "2025-12-29T08:26:27.759Z" }, + { url = "https://files.pythonhosted.org/packages/c5/2c/78e4a789306a92ade5000da4f5de3255202c534acdadc3aac7b5458fadef/psutil-7.2.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1", size = 128947, upload-time = "2025-12-29T08:26:29.548Z" }, + { url = "https://files.pythonhosted.org/packages/29/f8/40e01c350ad9a2b3cb4e6adbcc8a83b17ee50dd5792102b6142385937db5/psutil-7.2.1-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8", size = 154694, upload-time = "2025-12-29T08:26:32.147Z" }, + { url = "https://files.pythonhosted.org/packages/06/e4/b751cdf839c011a9714a783f120e6a86b7494eb70044d7d81a25a5cd295f/psutil-7.2.1-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6", size = 156136, upload-time = "2025-12-29T08:26:34.079Z" }, + { url = "https://files.pythonhosted.org/packages/44/ad/bbf6595a8134ee1e94a4487af3f132cef7fce43aef4a93b49912a48c3af7/psutil-7.2.1-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8", size = 148108, upload-time = "2025-12-29T08:26:36.225Z" }, + { url = "https://files.pythonhosted.org/packages/1c/15/dd6fd869753ce82ff64dcbc18356093471a5a5adf4f77ed1f805d473d859/psutil-7.2.1-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67", size = 147402, upload-time = "2025-12-29T08:26:39.21Z" }, + { url = "https://files.pythonhosted.org/packages/34/68/d9317542e3f2b180c4306e3f45d3c922d7e86d8ce39f941bb9e2e9d8599e/psutil-7.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17", size = 136938, upload-time = "2025-12-29T08:26:41.036Z" }, + { url = "https://files.pythonhosted.org/packages/3e/73/2ce007f4198c80fcf2cb24c169884f833fe93fbc03d55d302627b094ee91/psutil-7.2.1-cp37-abi3-win_arm64.whl", hash = "sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442", size = 133836, upload-time = "2025-12-29T08:26:43.086Z" }, +] + +[[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 = "pyarrow" +version = "22.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/53/04a7fdc63e6056116c9ddc8b43bc28c12cdd181b85cbeadb79278475f3ae/pyarrow-22.0.0.tar.gz", hash = "sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9", size = 1151151, upload-time = "2025-10-24T12:30:00.762Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/63/ba23862d69652f85b615ca14ad14f3bcfc5bf1b99ef3f0cd04ff93fdad5a/pyarrow-22.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d", size = 34211578, upload-time = "2025-10-24T10:05:21.583Z" }, + { url = "https://files.pythonhosted.org/packages/b1/d0/f9ad86fe809efd2bcc8be32032fa72e8b0d112b01ae56a053006376c5930/pyarrow-22.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8", size = 35989906, upload-time = "2025-10-24T10:05:29.485Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a8/f910afcb14630e64d673f15904ec27dd31f1e009b77033c365c84e8c1e1d/pyarrow-22.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5", size = 45021677, upload-time = "2025-10-24T10:05:38.274Z" }, + { url = "https://files.pythonhosted.org/packages/13/95/aec81f781c75cd10554dc17a25849c720d54feafb6f7847690478dcf5ef8/pyarrow-22.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe", size = 47726315, upload-time = "2025-10-24T10:05:47.314Z" }, + { url = "https://files.pythonhosted.org/packages/bb/d4/74ac9f7a54cfde12ee42734ea25d5a3c9a45db78f9def949307a92720d37/pyarrow-22.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e", size = 47990906, upload-time = "2025-10-24T10:05:58.254Z" }, + { url = "https://files.pythonhosted.org/packages/2e/71/fedf2499bf7a95062eafc989ace56572f3343432570e1c54e6599d5b88da/pyarrow-22.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9", size = 50306783, upload-time = "2025-10-24T10:06:08.08Z" }, + { url = "https://files.pythonhosted.org/packages/68/ed/b202abd5a5b78f519722f3d29063dda03c114711093c1995a33b8e2e0f4b/pyarrow-22.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d", size = 27972883, upload-time = "2025-10-24T10:06:14.204Z" }, + { url = "https://files.pythonhosted.org/packages/a6/d6/d0fac16a2963002fc22c8fa75180a838737203d558f0ed3b564c4a54eef5/pyarrow-22.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a", size = 34204629, upload-time = "2025-10-24T10:06:20.274Z" }, + { url = "https://files.pythonhosted.org/packages/c6/9c/1d6357347fbae062ad3f17082f9ebc29cc733321e892c0d2085f42a2212b/pyarrow-22.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901", size = 35985783, upload-time = "2025-10-24T10:06:27.301Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c0/782344c2ce58afbea010150df07e3a2f5fdad299cd631697ae7bd3bac6e3/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691", size = 45020999, upload-time = "2025-10-24T10:06:35.387Z" }, + { url = "https://files.pythonhosted.org/packages/1b/8b/5362443737a5307a7b67c1017c42cd104213189b4970bf607e05faf9c525/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a", size = 47724601, upload-time = "2025-10-24T10:06:43.551Z" }, + { url = "https://files.pythonhosted.org/packages/69/4d/76e567a4fc2e190ee6072967cb4672b7d9249ac59ae65af2d7e3047afa3b/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6", size = 48001050, upload-time = "2025-10-24T10:06:52.284Z" }, + { url = "https://files.pythonhosted.org/packages/01/5e/5653f0535d2a1aef8223cee9d92944cb6bccfee5cf1cd3f462d7cb022790/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941", size = 50307877, upload-time = "2025-10-24T10:07:02.405Z" }, + { url = "https://files.pythonhosted.org/packages/2d/f8/1d0bd75bf9328a3b826e24a16e5517cd7f9fbf8d34a3184a4566ef5a7f29/pyarrow-22.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145", size = 27977099, upload-time = "2025-10-24T10:08:07.259Z" }, + { url = "https://files.pythonhosted.org/packages/90/81/db56870c997805bf2b0f6eeeb2d68458bf4654652dccdcf1bf7a42d80903/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1", size = 34336685, upload-time = "2025-10-24T10:07:11.47Z" }, + { url = "https://files.pythonhosted.org/packages/1c/98/0727947f199aba8a120f47dfc229eeb05df15bcd7a6f1b669e9f882afc58/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f", size = 36032158, upload-time = "2025-10-24T10:07:18.626Z" }, + { url = "https://files.pythonhosted.org/packages/96/b4/9babdef9c01720a0785945c7cf550e4acd0ebcd7bdd2e6f0aa7981fa85e2/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d", size = 44892060, upload-time = "2025-10-24T10:07:26.002Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ca/2f8804edd6279f78a37062d813de3f16f29183874447ef6d1aadbb4efa0f/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f", size = 47504395, upload-time = "2025-10-24T10:07:34.09Z" }, + { url = "https://files.pythonhosted.org/packages/b9/f0/77aa5198fd3943682b2e4faaf179a674f0edea0d55d326d83cb2277d9363/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746", size = 48066216, upload-time = "2025-10-24T10:07:43.528Z" }, + { url = "https://files.pythonhosted.org/packages/79/87/a1937b6e78b2aff18b706d738c9e46ade5bfcf11b294e39c87706a0089ac/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95", size = 50288552, upload-time = "2025-10-24T10:07:53.519Z" }, + { url = "https://files.pythonhosted.org/packages/60/ae/b5a5811e11f25788ccfdaa8f26b6791c9807119dffcf80514505527c384c/pyarrow-22.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc", size = 28262504, upload-time = "2025-10-24T10:08:00.932Z" }, + { url = "https://files.pythonhosted.org/packages/bd/b0/0fa4d28a8edb42b0a7144edd20befd04173ac79819547216f8a9f36f9e50/pyarrow-22.0.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d", size = 34224062, upload-time = "2025-10-24T10:08:14.101Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a8/7a719076b3c1be0acef56a07220c586f25cd24de0e3f3102b438d18ae5df/pyarrow-22.0.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9", size = 35990057, upload-time = "2025-10-24T10:08:21.842Z" }, + { url = "https://files.pythonhosted.org/packages/89/3c/359ed54c93b47fb6fe30ed16cdf50e3f0e8b9ccfb11b86218c3619ae50a8/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7", size = 45068002, upload-time = "2025-10-24T10:08:29.034Z" }, + { url = "https://files.pythonhosted.org/packages/55/fc/4945896cc8638536ee787a3bd6ce7cec8ec9acf452d78ec39ab328efa0a1/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde", size = 47737765, upload-time = "2025-10-24T10:08:38.559Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5e/7cb7edeb2abfaa1f79b5d5eb89432356155c8426f75d3753cbcb9592c0fd/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc", size = 48048139, upload-time = "2025-10-24T10:08:46.784Z" }, + { url = "https://files.pythonhosted.org/packages/88/c6/546baa7c48185f5e9d6e59277c4b19f30f48c94d9dd938c2a80d4d6b067c/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0", size = 50314244, upload-time = "2025-10-24T10:08:55.771Z" }, + { url = "https://files.pythonhosted.org/packages/3c/79/755ff2d145aafec8d347bf18f95e4e81c00127f06d080135dfc86aea417c/pyarrow-22.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730", size = 28757501, upload-time = "2025-10-24T10:09:59.891Z" }, + { url = "https://files.pythonhosted.org/packages/0e/d2/237d75ac28ced3147912954e3c1a174df43a95f4f88e467809118a8165e0/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2", size = 34355506, upload-time = "2025-10-24T10:09:02.953Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/733dfffe6d3069740f98e57ff81007809067d68626c5faef293434d11bd6/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70", size = 36047312, upload-time = "2025-10-24T10:09:10.334Z" }, + { url = "https://files.pythonhosted.org/packages/7c/2b/29d6e3782dc1f299727462c1543af357a0f2c1d3c160ce199950d9ca51eb/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754", size = 45081609, upload-time = "2025-10-24T10:09:18.61Z" }, + { url = "https://files.pythonhosted.org/packages/8d/42/aa9355ecc05997915af1b7b947a7f66c02dcaa927f3203b87871c114ba10/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91", size = 47703663, upload-time = "2025-10-24T10:09:27.369Z" }, + { url = "https://files.pythonhosted.org/packages/ee/62/45abedde480168e83a1de005b7b7043fd553321c1e8c5a9a114425f64842/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c", size = 48066543, upload-time = "2025-10-24T10:09:34.908Z" }, + { url = "https://files.pythonhosted.org/packages/84/e9/7878940a5b072e4f3bf998770acafeae13b267f9893af5f6d4ab3904b67e/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80", size = 50288838, upload-time = "2025-10-24T10:09:44.394Z" }, + { url = "https://files.pythonhosted.org/packages/7b/03/f335d6c52b4a4761bcc83499789a1e2e16d9d201a58c327a9b5cc9a41bd9/pyarrow-22.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae", size = 29185594, upload-time = "2025-10-24T10:09:53.111Z" }, +] + +[[package]] +name = "pyasn1" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/b6/6e630dff89739fcd427e3f72b3d905ce0acb85a45d4ec3e2678718a3487f/pyasn1-0.6.2.tar.gz", hash = "sha256:9b59a2b25ba7e4f8197db7686c09fb33e658b98339fadb826e9512629017833b", size = 146586, upload-time = "2026-01-16T18:04:18.534Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/b5/a96872e5184f354da9c84ae119971a0a4c221fe9b27a4d94bd43f2596727/pyasn1-0.6.2-py3-none-any.whl", hash = "sha256:1eb26d860996a18e9b6ed05e7aae0e9fc21619fcee6af91cca9bad4fbea224bf", size = 83371, upload-time = "2026-01-16T18:04:17.174Z" }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892, upload-time = "2025-03-28T02:41:22.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259, upload-time = "2025-03-28T02:41:19.028Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/ac7e0aae12027748076d72a8764ff1c9d82ca75a7a52622e67ed3f765c54/pydantic_settings-2.12.0.tar.gz", hash = "sha256:005538ef951e3c2a68e1c08b292b5f2e71490def8589d4221b95dab00dafcfd0", size = 194184, upload-time = "2025-11-10T14:25:47.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/60/5d4751ba3f4a40a6891f24eec885f51afd78d208498268c734e256fb13c4/pydantic_settings-2.12.0-py3-none-any.whl", hash = "sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809", size = 51880, upload-time = "2025-11-10T14:25:45.546Z" }, +] + +[[package]] +name = "pydeck" +version = "0.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/ca/40e14e196864a0f61a92abb14d09b3d3da98f94ccb03b49cf51688140dab/pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605", size = 3832240, upload-time = "2024-05-10T15:36:21.153Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038", size = 6900403, upload-time = "2024-05-10T15:36:17.36Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/33/c1/1d9de9aeaa1b89b0186e5fe23294ff6517fce1bc69149185577cd31016b2/pyparsing-3.3.1.tar.gz", hash = "sha256:47fad0f17ac1e2cad3de3b458570fbc9b03560aa029ed5e16ee5554da9a2251c", size = 1550512, upload-time = "2025-12-23T03:14:04.391Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/40/2614036cdd416452f5bf98ec037f38a1afb17f327cb8e6b652d4729e0af8/pyparsing-3.3.1-py3-none-any.whl", hash = "sha256:023b5e7e5520ad96642e2c6db4cb683d3970bd640cdf7115049a6e9c3682df82", size = 121793, upload-time = "2025-12-23T03:14:02.103Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/2c/8af215c0f776415f3590cac4f9086ccefd6fd463befeae41cd4d3f193e5a/pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5", size = 50087, upload-time = "2025-11-10T16:07:47.256Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075, upload-time = "2025-11-10T16:07:45.537Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage" }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, +] + +[[package]] +name = "python-json-logger" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, +] + +[[package]] +name = "pywinpty" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/bb/a7cc2967c5c4eceb6cc49cfe39447d4bfc56e6c865e7c2249b6eb978935f/pywinpty-3.0.2.tar.gz", hash = "sha256:1505cc4cb248af42cb6285a65c9c2086ee9e7e574078ee60933d5d7fa86fb004", size = 30669, upload-time = "2025-10-03T21:16:29.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/4e/1098484e042c9485f56f16eb2b69b43b874bd526044ee401512234cf9e04/pywinpty-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:99fdd9b455f0ad6419aba6731a7a0d2f88ced83c3c94a80ff9533d95fa8d8a9e", size = 2050391, upload-time = "2025-10-03T21:19:01.642Z" }, + { url = "https://files.pythonhosted.org/packages/fc/19/b757fe28008236a4a713e813283721b8a40aa60cd7d3f83549f2e25a3155/pywinpty-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:18f78b81e4cfee6aabe7ea8688441d30247b73e52cd9657138015c5f4ee13a51", size = 2050057, upload-time = "2025-10-03T21:19:26.732Z" }, + { url = "https://files.pythonhosted.org/packages/cb/44/cbae12ecf6f4fa4129c36871fd09c6bef4f98d5f625ecefb5e2449765508/pywinpty-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:663383ecfab7fc382cc97ea5c4f7f0bb32c2f889259855df6ea34e5df42d305b", size = 2049874, upload-time = "2025-10-03T21:18:53.923Z" }, + { url = "https://files.pythonhosted.org/packages/ca/15/f12c6055e2d7a617d4d5820e8ac4ceaff849da4cb124640ef5116a230771/pywinpty-3.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:28297cecc37bee9f24d8889e47231972d6e9e84f7b668909de54f36ca785029a", size = 2050386, upload-time = "2025-10-03T21:18:50.477Z" }, + { url = "https://files.pythonhosted.org/packages/de/24/c6907c5bb06043df98ad6a0a0ff5db2e0affcecbc3b15c42404393a3f72a/pywinpty-3.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:34b55ae9a1b671fe3eae071d86618110538e8eaad18fcb1531c0830b91a82767", size = 2049834, upload-time = "2025-10-03T21:19:25.688Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { 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/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { 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 = "redis" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/c8/983d5c6579a411d8a99bc5823cc5712768859b5ce2c8afe1a65b37832c81/redis-7.1.0.tar.gz", hash = "sha256:b1cc3cfa5a2cb9c2ab3ba700864fb0ad75617b41f01352ce5779dabf6d5f9c3c", size = 4796669, upload-time = "2025-11-19T15:54:39.961Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/f0/8956f8a86b20d7bb9d6ac0187cf4cd54d8065bc9a1a09eb8011d4d326596/redis-7.1.0-py3-none-any.whl", hash = "sha256:23c52b208f92b56103e17c5d06bdc1a6c2c0b3106583985a76a18f83b265de2b", size = 354159, upload-time = "2025-11-19T15:54:38.064Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +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" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +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/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { 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 = "rsa" +version = "4.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/8a/22b7beea3ee0d44b1916c0c1cb0ee3af23b700b6da9f04991899d0c555d4/rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75", size = 29034, upload-time = "2025-04-16T09:51:18.218Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762", size = 34696, upload-time = "2025-04-16T09:51:17.142Z" }, +] + +[[package]] +name = "ruff" +version = "0.14.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/0a/1914efb7903174b381ee2ffeebb4253e729de57f114e63595114c8ca451f/ruff-0.14.13.tar.gz", hash = "sha256:83cd6c0763190784b99650a20fec7633c59f6ebe41c5cc9d45ee42749563ad47", size = 6059504, upload-time = "2026-01-15T20:15:16.918Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/ae/0deefbc65ca74b0ab1fd3917f94dc3b398233346a74b8bbb0a916a1a6bf6/ruff-0.14.13-py3-none-linux_armv6l.whl", hash = "sha256:76f62c62cd37c276cb03a275b198c7c15bd1d60c989f944db08a8c1c2dbec18b", size = 13062418, upload-time = "2026-01-15T20:14:50.779Z" }, + { url = "https://files.pythonhosted.org/packages/47/df/5916604faa530a97a3c154c62a81cb6b735c0cb05d1e26d5ad0f0c8ac48a/ruff-0.14.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:914a8023ece0528d5cc33f5a684f5f38199bbb566a04815c2c211d8f40b5d0ed", size = 13442344, upload-time = "2026-01-15T20:15:07.94Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f3/e0e694dd69163c3a1671e102aa574a50357536f18a33375050334d5cd517/ruff-0.14.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d24899478c35ebfa730597a4a775d430ad0d5631b8647a3ab368c29b7e7bd063", size = 12354720, upload-time = "2026-01-15T20:15:09.854Z" }, + { url = "https://files.pythonhosted.org/packages/c3/e8/67f5fcbbaee25e8fc3b56cc33e9892eca7ffe09f773c8e5907757a7e3bdb/ruff-0.14.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9aaf3870f14d925bbaf18b8a2347ee0ae7d95a2e490e4d4aea6813ed15ebc80e", size = 12774493, upload-time = "2026-01-15T20:15:20.908Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ce/d2e9cb510870b52a9565d885c0d7668cc050e30fa2c8ac3fb1fda15c083d/ruff-0.14.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac5b7f63dd3b27cc811850f5ffd8fff845b00ad70e60b043aabf8d6ecc304e09", size = 12815174, upload-time = "2026-01-15T20:15:05.74Z" }, + { url = "https://files.pythonhosted.org/packages/88/00/c38e5da58beebcf4fa32d0ddd993b63dfacefd02ab7922614231330845bf/ruff-0.14.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d2b1097750d90ba82ce4ba676e85230a0ed694178ca5e61aa9b459970b3eb9", size = 13680909, upload-time = "2026-01-15T20:15:14.537Z" }, + { url = "https://files.pythonhosted.org/packages/61/61/cd37c9dd5bd0a3099ba79b2a5899ad417d8f3b04038810b0501a80814fd7/ruff-0.14.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7d0bf87705acbbcb8d4c24b2d77fbb73d40210a95c3903b443cd9e30824a5032", size = 15144215, upload-time = "2026-01-15T20:15:22.886Z" }, + { url = "https://files.pythonhosted.org/packages/56/8a/85502d7edbf98c2df7b8876f316c0157359165e16cdf98507c65c8d07d3d/ruff-0.14.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3eb5da8e2c9e9f13431032fdcbe7681de9ceda5835efee3269417c13f1fed5c", size = 14706067, upload-time = "2026-01-15T20:14:48.271Z" }, + { url = "https://files.pythonhosted.org/packages/7e/2f/de0df127feb2ee8c1e54354dc1179b4a23798f0866019528c938ba439aca/ruff-0.14.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:642442b42957093811cd8d2140dfadd19c7417030a7a68cf8d51fcdd5f217427", size = 14133916, upload-time = "2026-01-15T20:14:57.357Z" }, + { url = "https://files.pythonhosted.org/packages/0d/77/9b99686bb9fe07a757c82f6f95e555c7a47801a9305576a9c67e0a31d280/ruff-0.14.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4acdf009f32b46f6e8864af19cbf6841eaaed8638e65c8dac845aea0d703c841", size = 13859207, upload-time = "2026-01-15T20:14:55.111Z" }, + { url = "https://files.pythonhosted.org/packages/7d/46/2bdcb34a87a179a4d23022d818c1c236cb40e477faf0d7c9afb6813e5876/ruff-0.14.13-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:591a7f68860ea4e003917d19b5c4f5ac39ff558f162dc753a2c5de897fd5502c", size = 14043686, upload-time = "2026-01-15T20:14:52.841Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a9/5c6a4f56a0512c691cf143371bcf60505ed0f0860f24a85da8bd123b2bf1/ruff-0.14.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:774c77e841cc6e046fc3e91623ce0903d1cd07e3a36b1a9fe79b81dab3de506b", size = 12663837, upload-time = "2026-01-15T20:15:18.921Z" }, + { url = "https://files.pythonhosted.org/packages/fe/bb/b920016ece7651fa7fcd335d9d199306665486694d4361547ccb19394c44/ruff-0.14.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:61f4e40077a1248436772bb6512db5fc4457fe4c49e7a94ea7c5088655dd21ae", size = 12805867, upload-time = "2026-01-15T20:14:59.272Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b3/0bd909851e5696cd21e32a8fc25727e5f58f1934b3596975503e6e85415c/ruff-0.14.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6d02f1428357fae9e98ac7aa94b7e966fd24151088510d32cf6f902d6c09235e", size = 13208528, upload-time = "2026-01-15T20:15:03.732Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3b/e2d94cb613f6bbd5155a75cbe072813756363eba46a3f2177a1fcd0cd670/ruff-0.14.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e399341472ce15237be0c0ae5fbceca4b04cd9bebab1a2b2c979e015455d8f0c", size = 13929242, upload-time = "2026-01-15T20:15:11.918Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c5/abd840d4132fd51a12f594934af5eba1d5d27298a6f5b5d6c3be45301caf/ruff-0.14.13-py3-none-win32.whl", hash = "sha256:ef720f529aec113968b45dfdb838ac8934e519711da53a0456038a0efecbd680", size = 12919024, upload-time = "2026-01-15T20:14:43.647Z" }, + { url = "https://files.pythonhosted.org/packages/c2/55/6384b0b8ce731b6e2ade2b5449bf07c0e4c31e8a2e68ea65b3bafadcecc5/ruff-0.14.13-py3-none-win_amd64.whl", hash = "sha256:6070bd026e409734b9257e03e3ef18c6e1a216f0435c6751d7a8ec69cb59abef", size = 14097887, upload-time = "2026-01-15T20:15:01.48Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/7348090988095e4e39560cfc2f7555b1b2a7357deba19167b600fdf5215d/ruff-0.14.13-py3-none-win_arm64.whl", hash = "sha256:7ab819e14f1ad9fe39f246cfcc435880ef7a9390d81a2b6ac7e01039083dd247", size = 13080224, upload-time = "2026-01-15T20:14:45.853Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload-time = "2025-12-10T07:07:51.568Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload-time = "2025-12-10T07:07:53.697Z" }, + { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload-time = "2025-12-10T07:07:55.574Z" }, + { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload-time = "2025-12-10T07:07:57.666Z" }, + { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload-time = "2025-12-10T07:07:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload-time = "2025-12-10T07:08:01.36Z" }, + { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload-time = "2025-12-10T07:08:03.251Z" }, + { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload-time = "2025-12-10T07:08:05.336Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload-time = "2025-12-10T07:08:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload-time = "2025-12-10T07:08:09.862Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload-time = "2025-12-10T07:08:12.028Z" }, + { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload-time = "2025-12-10T07:08:13.688Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload-time = "2025-12-10T07:08:15.215Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload-time = "2025-12-10T07:08:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload-time = "2025-12-10T07:08:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload-time = "2025-12-10T07:08:22.11Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload-time = "2025-12-10T07:08:23.943Z" }, + { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload-time = "2025-12-10T07:08:25.71Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/1af2c186174cc92dcab2233f327336058c077d38f6fe2aceb08e6ab4d509/scikit_learn-1.8.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c22a2da7a198c28dd1a6e1136f19c830beab7fdca5b3e5c8bba8394f8a5c45b3", size = 8528667, upload-time = "2025-12-10T07:08:27.541Z" }, + { url = "https://files.pythonhosted.org/packages/a8/25/01c0af38fe969473fb292bba9dc2b8f9b451f3112ff242c647fee3d0dfe7/scikit_learn-1.8.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:6b595b07a03069a2b1740dc08c2299993850ea81cce4fe19b2421e0c970de6b7", size = 8066524, upload-time = "2025-12-10T07:08:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/be/ce/a0623350aa0b68647333940ee46fe45086c6060ec604874e38e9ab7d8e6c/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:29ffc74089f3d5e87dfca4c2c8450f88bdc61b0fc6ed5d267f3988f19a1309f6", size = 8657133, upload-time = "2025-12-10T07:08:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/b8/cb/861b41341d6f1245e6ca80b1c1a8c4dfce43255b03df034429089ca2a2c5/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4", size = 8923223, upload-time = "2025-12-10T07:08:34.166Z" }, + { url = "https://files.pythonhosted.org/packages/76/18/a8def8f91b18cd1ba6e05dbe02540168cb24d47e8dcf69e8d00b7da42a08/scikit_learn-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:56079a99c20d230e873ea40753102102734c5953366972a71d5cb39a32bc40c6", size = 8096518, upload-time = "2025-12-10T07:08:36.339Z" }, + { url = "https://files.pythonhosted.org/packages/d1/77/482076a678458307f0deb44e29891d6022617b2a64c840c725495bee343f/scikit_learn-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:3bad7565bc9cf37ce19a7c0d107742b320c1285df7aab1a6e2d28780df167242", size = 7754546, upload-time = "2025-12-10T07:08:38.128Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d1/ef294ca754826daa043b2a104e59960abfab4cf653891037d19dd5b6f3cf/scikit_learn-1.8.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:4511be56637e46c25721e83d1a9cea9614e7badc7040c4d573d75fbe257d6fd7", size = 8848305, upload-time = "2025-12-10T07:08:41.013Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e2/b1f8b05138ee813b8e1a4149f2f0d289547e60851fd1bb268886915adbda/scikit_learn-1.8.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:a69525355a641bf8ef136a7fa447672fb54fe8d60cab5538d9eb7c6438543fb9", size = 8432257, upload-time = "2025-12-10T07:08:42.873Z" }, + { url = "https://files.pythonhosted.org/packages/26/11/c32b2138a85dcb0c99f6afd13a70a951bfdff8a6ab42d8160522542fb647/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2656924ec73e5939c76ac4c8b026fc203b83d8900362eb2599d8aee80e4880f", size = 8678673, upload-time = "2025-12-10T07:08:45.362Z" }, + { url = "https://files.pythonhosted.org/packages/c7/57/51f2384575bdec454f4fe4e7a919d696c9ebce914590abf3e52d47607ab8/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15fc3b5d19cc2be65404786857f2e13c70c83dd4782676dd6814e3b89dc8f5b9", size = 8922467, upload-time = "2025-12-10T07:08:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/35/4d/748c9e2872637a57981a04adc038dacaa16ba8ca887b23e34953f0b3f742/scikit_learn-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2", size = 8774395, upload-time = "2025-12-10T07:08:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/d7b2ebe4704a5e50790ba089d5c2ae308ab6bb852719e6c3bd4f04c3a363/scikit_learn-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f28dd15c6bb0b66ba09728cf09fd8736c304be29409bd8445a080c1280619e8c", size = 8002647, upload-time = "2025-12-10T07:08:51.601Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/11/7241a63e73ba5a516f1930ac8d5b44cbbfabd35ac73a2d08ca206df007c4/scipy-1.17.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57", size = 31364580, upload-time = "2026-01-10T21:25:25.717Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1d/5057f812d4f6adc91a20a2d6f2ebcdb517fdbc87ae3acc5633c9b97c8ba5/scipy-1.17.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e", size = 27969012, upload-time = "2026-01-10T21:25:30.921Z" }, + { url = "https://files.pythonhosted.org/packages/e3/21/f6ec556c1e3b6ec4e088da667d9987bb77cc3ab3026511f427dc8451187d/scipy-1.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8", size = 20140691, upload-time = "2026-01-10T21:25:34.802Z" }, + { url = "https://files.pythonhosted.org/packages/7a/fe/5e5ad04784964ba964a96f16c8d4676aa1b51357199014dce58ab7ec5670/scipy-1.17.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306", size = 22463015, upload-time = "2026-01-10T21:25:39.277Z" }, + { url = "https://files.pythonhosted.org/packages/4a/69/7c347e857224fcaf32a34a05183b9d8a7aca25f8f2d10b8a698b8388561a/scipy-1.17.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742", size = 32724197, upload-time = "2026-01-10T21:25:44.084Z" }, + { url = "https://files.pythonhosted.org/packages/d1/fe/66d73b76d378ba8cc2fe605920c0c75092e3a65ae746e1e767d9d020a75a/scipy-1.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b", size = 35009148, upload-time = "2026-01-10T21:25:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/07dec27d9dc41c18d8c43c69e9e413431d20c53a0339c388bcf72f353c4b/scipy-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d", size = 34798766, upload-time = "2026-01-10T21:25:59.41Z" }, + { url = "https://files.pythonhosted.org/packages/81/61/0470810c8a093cdacd4ba7504b8a218fd49ca070d79eca23a615f5d9a0b0/scipy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e", size = 37405953, upload-time = "2026-01-10T21:26:07.75Z" }, + { url = "https://files.pythonhosted.org/packages/92/ce/672ed546f96d5d41ae78c4b9b02006cedd0b3d6f2bf5bb76ea455c320c28/scipy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8", size = 36328121, upload-time = "2026-01-10T21:26:16.509Z" }, + { url = "https://files.pythonhosted.org/packages/9d/21/38165845392cae67b61843a52c6455d47d0cc2a40dd495c89f4362944654/scipy-1.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b", size = 24314368, upload-time = "2026-01-10T21:26:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/0c/51/3468fdfd49387ddefee1636f5cf6d03ce603b75205bf439bbf0e62069bfd/scipy-1.17.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6", size = 31344101, upload-time = "2026-01-10T21:26:30.25Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9a/9406aec58268d437636069419e6977af953d1e246df941d42d3720b7277b/scipy-1.17.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269", size = 27950385, upload-time = "2026-01-10T21:26:36.801Z" }, + { url = "https://files.pythonhosted.org/packages/4f/98/e7342709e17afdfd1b26b56ae499ef4939b45a23a00e471dfb5375eea205/scipy-1.17.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72", size = 20122115, upload-time = "2026-01-10T21:26:42.107Z" }, + { url = "https://files.pythonhosted.org/packages/fd/0e/9eeeb5357a64fd157cbe0302c213517c541cc16b8486d82de251f3c68ede/scipy-1.17.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61", size = 22442402, upload-time = "2026-01-10T21:26:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c9/10/be13397a0e434f98e0c79552b2b584ae5bb1c8b2be95db421533bbca5369/scipy-1.17.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6", size = 32696338, upload-time = "2026-01-10T21:26:55.521Z" }, + { url = "https://files.pythonhosted.org/packages/63/1e/12fbf2a3bb240161651c94bb5cdd0eae5d4e8cc6eaeceb74ab07b12a753d/scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752", size = 34977201, upload-time = "2026-01-10T21:27:03.501Z" }, + { url = "https://files.pythonhosted.org/packages/19/5b/1a63923e23ccd20bd32156d7dd708af5bbde410daa993aa2500c847ab2d2/scipy-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d", size = 34777384, upload-time = "2026-01-10T21:27:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/39/22/b5da95d74edcf81e540e467202a988c50fef41bd2011f46e05f72ba07df6/scipy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea", size = 37379586, upload-time = "2026-01-10T21:27:20.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b6/8ac583d6da79e7b9e520579f03007cb006f063642afd6b2eeb16b890bf93/scipy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812", size = 36287211, upload-time = "2026-01-10T21:28:43.122Z" }, + { url = "https://files.pythonhosted.org/packages/55/fb/7db19e0b3e52f882b420417644ec81dd57eeef1bd1705b6f689d8ff93541/scipy-1.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2", size = 24312646, upload-time = "2026-01-10T21:28:49.893Z" }, + { url = "https://files.pythonhosted.org/packages/20/b6/7feaa252c21cc7aff335c6c55e1b90ab3e3306da3f048109b8b639b94648/scipy-1.17.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3", size = 31693194, upload-time = "2026-01-10T21:27:27.454Z" }, + { url = "https://files.pythonhosted.org/packages/76/bb/bbb392005abce039fb7e672cb78ac7d158700e826b0515cab6b5b60c26fb/scipy-1.17.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97", size = 28365415, upload-time = "2026-01-10T21:27:34.26Z" }, + { url = "https://files.pythonhosted.org/packages/37/da/9d33196ecc99fba16a409c691ed464a3a283ac454a34a13a3a57c0d66f3a/scipy-1.17.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e", size = 20537232, upload-time = "2026-01-10T21:27:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/56/9d/f4b184f6ddb28e9a5caea36a6f98e8ecd2a524f9127354087ce780885d83/scipy-1.17.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07", size = 22791051, upload-time = "2026-01-10T21:27:46.539Z" }, + { url = "https://files.pythonhosted.org/packages/9b/9d/025cccdd738a72140efc582b1641d0dd4caf2e86c3fb127568dc80444e6e/scipy-1.17.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00", size = 32815098, upload-time = "2026-01-10T21:27:54.389Z" }, + { url = "https://files.pythonhosted.org/packages/48/5f/09b879619f8bca15ce392bfc1894bd9c54377e01d1b3f2f3b595a1b4d945/scipy-1.17.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45", size = 35031342, upload-time = "2026-01-10T21:28:03.012Z" }, + { url = "https://files.pythonhosted.org/packages/f2/9a/f0f0a9f0aa079d2f106555b984ff0fbb11a837df280f04f71f056ea9c6e4/scipy-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209", size = 34893199, upload-time = "2026-01-10T21:28:10.832Z" }, + { url = "https://files.pythonhosted.org/packages/90/b8/4f0f5cf0c5ea4d7548424e6533e6b17d164f34a6e2fb2e43ffebb6697b06/scipy-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04", size = 37438061, upload-time = "2026-01-10T21:28:19.684Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cc/2bd59140ed3b2fa2882fb15da0a9cb1b5a6443d67cfd0d98d4cec83a57ec/scipy-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0", size = 36328593, upload-time = "2026-01-10T21:28:28.007Z" }, + { url = "https://files.pythonhosted.org/packages/13/1b/c87cc44a0d2c7aaf0f003aef2904c3d097b422a96c7e7c07f5efd9073c1b/scipy-1.17.0-cp313-cp313t-win_arm64.whl", hash = "sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67", size = 24625083, upload-time = "2026-01-10T21:28:35.188Z" }, + { url = "https://files.pythonhosted.org/packages/1a/2d/51006cd369b8e7879e1c630999a19d1fbf6f8b5ed3e33374f29dc87e53b3/scipy-1.17.0-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:c17514d11b78be8f7e6331b983a65a7f5ca1fd037b95e27b280921fe5606286a", size = 31346803, upload-time = "2026-01-10T21:28:57.24Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2e/2349458c3ce445f53a6c93d4386b1c4c5c0c540917304c01222ff95ff317/scipy-1.17.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:4e00562e519c09da34c31685f6acc3aa384d4d50604db0f245c14e1b4488bfa2", size = 27967182, upload-time = "2026-01-10T21:29:04.107Z" }, + { url = "https://files.pythonhosted.org/packages/5e/7c/df525fbfa77b878d1cfe625249529514dc02f4fd5f45f0f6295676a76528/scipy-1.17.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f7df7941d71314e60a481e02d5ebcb3f0185b8d799c70d03d8258f6c80f3d467", size = 20139125, upload-time = "2026-01-10T21:29:10.179Z" }, + { url = "https://files.pythonhosted.org/packages/33/11/fcf9d43a7ed1234d31765ec643b0515a85a30b58eddccc5d5a4d12b5f194/scipy-1.17.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:aabf057c632798832f071a8dde013c2e26284043934f53b00489f1773b33527e", size = 22443554, upload-time = "2026-01-10T21:29:15.888Z" }, + { url = "https://files.pythonhosted.org/packages/80/5c/ea5d239cda2dd3d31399424967a24d556cf409fbea7b5b21412b0fd0a44f/scipy-1.17.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a38c3337e00be6fd8a95b4ed66b5d988bac4ec888fd922c2ea9fe5fb1603dd67", size = 32757834, upload-time = "2026-01-10T21:29:23.406Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7e/8c917cc573310e5dc91cbeead76f1b600d3fb17cf0969db02c9cf92e3cfa/scipy-1.17.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00fb5f8ec8398ad90215008d8b6009c9db9fa924fd4c7d6be307c6f945f9cd73", size = 34995775, upload-time = "2026-01-10T21:29:31.915Z" }, + { url = "https://files.pythonhosted.org/packages/c5/43/176c0c3c07b3f7df324e7cdd933d3e2c4898ca202b090bd5ba122f9fe270/scipy-1.17.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f2a4942b0f5f7c23c7cd641a0ca1955e2ae83dedcff537e3a0259096635e186b", size = 34841240, upload-time = "2026-01-10T21:29:39.995Z" }, + { url = "https://files.pythonhosted.org/packages/44/8c/d1f5f4b491160592e7f084d997de53a8e896a3ac01cd07e59f43ca222744/scipy-1.17.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf133ced83889583156566d2bdf7a07ff89228fe0c0cb727f777de92092ec6b", size = 37394463, upload-time = "2026-01-10T21:29:48.723Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ec/42a6657f8d2d087e750e9a5dde0b481fd135657f09eaf1cf5688bb23c338/scipy-1.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:3625c631a7acd7cfd929e4e31d2582cf00f42fcf06011f59281271746d77e061", size = 37053015, upload-time = "2026-01-10T21:30:51.418Z" }, + { url = "https://files.pythonhosted.org/packages/27/58/6b89a6afd132787d89a362d443a7bddd511b8f41336a1ae47f9e4f000dc4/scipy-1.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:9244608d27eafe02b20558523ba57f15c689357c85bdcfe920b1828750aa26eb", size = 24951312, upload-time = "2026-01-10T21:30:56.771Z" }, + { url = "https://files.pythonhosted.org/packages/e9/01/f58916b9d9ae0112b86d7c3b10b9e685625ce6e8248df139d0fcb17f7397/scipy-1.17.0-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:2b531f57e09c946f56ad0b4a3b2abee778789097871fc541e267d2eca081cff1", size = 31706502, upload-time = "2026-01-10T21:29:56.326Z" }, + { url = "https://files.pythonhosted.org/packages/59/8e/2912a87f94a7d1f8b38aabc0faf74b82d3b6c9e22be991c49979f0eceed8/scipy-1.17.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:13e861634a2c480bd237deb69333ac79ea1941b94568d4b0efa5db5e263d4fd1", size = 28380854, upload-time = "2026-01-10T21:30:01.554Z" }, + { url = "https://files.pythonhosted.org/packages/bd/1c/874137a52dddab7d5d595c1887089a2125d27d0601fce8c0026a24a92a0b/scipy-1.17.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:eb2651271135154aa24f6481cbae5cc8af1f0dd46e6533fb7b56aa9727b6a232", size = 20552752, upload-time = "2026-01-10T21:30:05.93Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f0/7518d171cb735f6400f4576cf70f756d5b419a07fe1867da34e2c2c9c11b/scipy-1.17.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:c5e8647f60679790c2f5c76be17e2e9247dc6b98ad0d3b065861e082c56e078d", size = 22803972, upload-time = "2026-01-10T21:30:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/7c/74/3498563a2c619e8a3ebb4d75457486c249b19b5b04a30600dfd9af06bea5/scipy-1.17.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5fb10d17e649e1446410895639f3385fd2bf4c3c7dfc9bea937bddcbc3d7b9ba", size = 32829770, upload-time = "2026-01-10T21:30:16.359Z" }, + { url = "https://files.pythonhosted.org/packages/48/d1/7b50cedd8c6c9d6f706b4b36fa8544d829c712a75e370f763b318e9638c1/scipy-1.17.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8547e7c57f932e7354a2319fab613981cde910631979f74c9b542bb167a8b9db", size = 35051093, upload-time = "2026-01-10T21:30:22.987Z" }, + { url = "https://files.pythonhosted.org/packages/e2/82/a2d684dfddb87ba1b3ea325df7c3293496ee9accb3a19abe9429bce94755/scipy-1.17.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33af70d040e8af9d5e7a38b5ed3b772adddd281e3062ff23fec49e49681c38cf", size = 34909905, upload-time = "2026-01-10T21:30:28.704Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5e/e565bd73991d42023eb82bb99e51c5b3d9e2c588ca9d4b3e2cc1d3ca62a6/scipy-1.17.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb55bb97d00f8b7ab95cb64f873eb0bf54d9446264d9f3609130381233483f", size = 37457743, upload-time = "2026-01-10T21:30:34.819Z" }, + { url = "https://files.pythonhosted.org/packages/58/a8/a66a75c3d8f1fb2b83f66007d6455a06a6f6cf5618c3dc35bc9b69dd096e/scipy-1.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1ff269abf702f6c7e67a4b7aad981d42871a11b9dd83c58d2d2ea624efbd1088", size = 37098574, upload-time = "2026-01-10T21:30:40.782Z" }, + { url = "https://files.pythonhosted.org/packages/56/a5/df8f46ef7da168f1bc52cd86e09a9de5c6f19cc1da04454d51b7d4f43408/scipy-1.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:031121914e295d9791319a1875444d55079885bbae5bdc9c5e0f2ee5f09d34ff", size = 25246266, upload-time = "2026-01-10T21:30:45.923Z" }, +] + +[[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 = "setuptools" +version = "80.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, +] + +[[package]] +name = "shap" +version = "0.50.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpickle" }, + { name = "llvmlite", marker = "python_full_version >= '3.14'" }, + { name = "numba" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "slicer" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2b/2c/9ccbfbdf5ceeb914317f9691ef1fca3118d4a997eb5e79bcd8992f56c938/shap-0.50.0.tar.gz", hash = "sha256:bdc559acf7f647bc3bb22c6a1fea9f50716ed357ad595bc357b43082ae4dc6b9", size = 4087800, upload-time = "2025-11-11T18:36:53.363Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/72/aa9623c2aa1eb70a3aa23c1a823851cab227232964ab91e3280afa290b31/shap-0.50.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:166eb4f14e6fb82e6b9b9a178ac18d5a2798f42f13e9b8b0565450977ae58e0a", size = 558926, upload-time = "2025-11-11T18:36:08.873Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6c/2d7d2c26fe48e8878429a8d23dd5faa6d1043b98657922276a9be71d70cb/shap-0.50.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:146bafd501d9061fce78e8d927504b0c2a7254a102a17a016c2141adcfeb6170", size = 555519, upload-time = "2025-11-11T18:36:10.38Z" }, + { url = "https://files.pythonhosted.org/packages/22/da/c2de2259c98444394b73d3582b1bbd8db999d529e674fdbcacea295f3a4c/shap-0.50.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5aa229dd3bccd779ae12cee35d68db3366ae2af693b174b446f877898d4cc9ce", size = 1044221, upload-time = "2025-11-11T18:36:11.825Z" }, + { url = "https://files.pythonhosted.org/packages/9c/03/aaa39d180a95edfb096e8c41b328d554d4c6e6069a1f76cde677ce516c1d/shap-0.50.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8419ff6515a1294bbf370d7f40853abe806046e0d102e405974bcf0821239d0", size = 1056224, upload-time = "2025-11-11T18:36:13.523Z" }, + { url = "https://files.pythonhosted.org/packages/91/bf/41c88a09204d77b0ca3ec1cd51efb9c87af24eb008e6e8d3c2df9a9048ed/shap-0.50.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:62cc66704db8c3439256089d2f3b29a42597d3c24bab1e245ed3800f7c4c4b2a", size = 2007878, upload-time = "2025-11-11T18:36:15.399Z" }, + { url = "https://files.pythonhosted.org/packages/06/79/2562d6c053e45e77d20d9f131fb637a6c38276e4ec6f21a5f9be5a6a392e/shap-0.50.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:404445e957d45ab9d35cbfaeea7184c95845e8a3caf92116ee702a218a34a124", size = 2083599, upload-time = "2025-11-11T18:36:17.072Z" }, + { url = "https://files.pythonhosted.org/packages/c1/29/021db5e35636aae199a40cfdbb87794432bbe9660c5bdbff0867d754e400/shap-0.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:1c9b534eb06d6b6d5f68257be2cc83be4e324aed89884876600ce86dcb6b1818", size = 549302, upload-time = "2025-11-11T18:36:18.627Z" }, + { url = "https://files.pythonhosted.org/packages/ca/de/40120047779e2b6da8838bbf94c58e15c345aa5b7f805418da558a588d73/shap-0.50.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0249b10142c1205e7de994c6135178faaaabb6b12528382db1f8e1f2b902d207", size = 558175, upload-time = "2025-11-11T18:36:20.001Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c7/20f79a21bc5b548d12c144ffce93e4afb4b6af8e1593b60ac6f1bf598383/shap-0.50.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e9908af8d22d2be05f303ca8fed70fd845bbbe33190abac24b6cb1a89e294e20", size = 554885, upload-time = "2025-11-11T18:36:21.801Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cd/5e309071aca6c177a24fd4ced99cce36069234b2431e70a0919cc837c2a4/shap-0.50.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f8e01228d780ad2efbc67d3ae6d3ba2a4afe02e9e1519c891f67d641f0e17d", size = 1044107, upload-time = "2025-11-11T18:36:23.301Z" }, + { url = "https://files.pythonhosted.org/packages/6b/6a/c006de5df0e0f4850aa94019df1f79bf6a5342fa851ca85e4728691fd0c4/shap-0.50.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a757c94cda0587edb727cbf08a4af819921ad42646b55833713c531ead75742d", size = 1056016, upload-time = "2025-11-11T18:36:24.954Z" }, + { url = "https://files.pythonhosted.org/packages/fa/00/92e91357c2ec3d8996e8a7d1f0592c6c2a69edd381087930cbb10dfa2807/shap-0.50.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b35200f21f3f67c96cf19a819a60470d052281c8f3df7da13fed40fdf64ea469", size = 2006035, upload-time = "2025-11-11T18:36:27.151Z" }, + { url = "https://files.pythonhosted.org/packages/de/04/ee0f84f405c7a0070f46224bf4449a4fd32dcd5e799f20818ecb70e4591a/shap-0.50.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cf267e854b0ce4b39c861f39d257f9dfb86704167eeb4db006c01f115dc37489", size = 2082743, upload-time = "2025-11-11T18:36:29.167Z" }, + { url = "https://files.pythonhosted.org/packages/02/48/5db93e86f3b77613ed2ef532f79bf8988d43e542444f3f59cad94fda853b/shap-0.50.0-cp313-cp313-win_amd64.whl", hash = "sha256:84b3c2791c68d1d3186cedb15bde98b8efda643034dd0ecf5fa1b0f4e1265cb5", size = 549110, upload-time = "2025-11-11T18:36:30.796Z" }, + { url = "https://files.pythonhosted.org/packages/5a/08/8a58cf6d43be07cc99e8c16385c2e10fb070def22f50bff864bef101498b/shap-0.50.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1fb30930986bda79ac3f2a4e4db5942d7874b2d917c717a2fdb9aa505e11dd20", size = 555585, upload-time = "2025-11-11T18:36:33.199Z" }, + { url = "https://files.pythonhosted.org/packages/58/22/68c831039e5798e994b46823a3a2d635d1d4e07ba9d9ebdff323a5c02f43/shap-0.50.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d82522fd5b050a261323021b4c17a1027296ec2dc3bf8550863fde3ddd0f9d68", size = 1043164, upload-time = "2025-11-11T18:36:34.827Z" }, + { url = "https://files.pythonhosted.org/packages/29/99/7253238d1e4c58628f0f985a75d4ce5c8de6022e25f709eba2e999d590bb/shap-0.50.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96b1efc72393533a64dd3a3d524b4b13ab4a2752cd63e8c74167f59aa081e230", size = 1051961, upload-time = "2025-11-11T18:36:36.55Z" }, + { url = "https://files.pythonhosted.org/packages/29/d4/deffc065a46600171f816b83a621cef81357ca8db579d031f569f681c7e0/shap-0.50.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:58d5aa9e802145ef21c596932ec28605d7ac4f879ac614c6106f4c7e31e60096", size = 2005489, upload-time = "2025-11-11T18:36:38.443Z" }, + { url = "https://files.pythonhosted.org/packages/69/d3/d295efc01cc091a504f2c2a2040f1e965bb670eca4dba1582150b6885321/shap-0.50.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2deb44e3fb8bce2c3c98be04617b1209c81f87d6e769f57c9b0cb1cea0761118", size = 2079076, upload-time = "2025-11-11T18:36:41.658Z" }, + { url = "https://files.pythonhosted.org/packages/40/b7/3d30baa1bd0473c0114a2de26f26fb3b55968290fc842242f787b0bc2b2a/shap-0.50.0-cp314-cp314-win_amd64.whl", hash = "sha256:8d05f0c0c8d4f7752ae29098e72589437b3576df3434b16c418e6e0cfa2571cd", size = 552278, upload-time = "2025-11-11T18:36:43.337Z" }, + { url = "https://files.pythonhosted.org/packages/7f/63/5c2f0b832c5cd0874cfcfd1f4d947cc6bded45a4242b62ee087589cf98c4/shap-0.50.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:49966fa3f41113c76045b2c5a3415020a1dc643559526cb993fdaaf3b6b37352", size = 562192, upload-time = "2025-11-11T18:36:44.99Z" }, + { url = "https://files.pythonhosted.org/packages/72/c9/c58ec4122e0d1fbcfafd5a06bbd477240ba7a46cafafca42b817d423b1c7/shap-0.50.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181a6cb1937ceab3da16e5bb43bc37c2556fffe58f783b12e0a9571172899cf7", size = 1076086, upload-time = "2025-11-11T18:36:46.9Z" }, + { url = "https://files.pythonhosted.org/packages/ed/49/811a7b95f0d3dd654308984f56b34c4ed1712f6f483128f729bace80c243/shap-0.50.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6b23684d3cd86cecbfc52a47cad780b83d45f8c028368d1d4c9373a8aca822f8", size = 2027950, upload-time = "2025-11-11T18:36:48.849Z" }, + { url = "https://files.pythonhosted.org/packages/d1/d1/a563b5fdc39b0c300a350d765f2133bafa9df0867061c1c8adda45cacd9f/shap-0.50.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:27d46d1001f74f6a28567992259150ec9d4ea895ff20b02db38c31d7f268a3c7", size = 2089909, upload-time = "2025-11-11T18:36:50.851Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "slicer" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/b4bce2825b39b57760b361e6131a3dacee3d8951c58cb97ad120abb90317/slicer-0.0.8.tar.gz", hash = "sha256:2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7", size = 14894, upload-time = "2024-03-09T23:35:26.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl", hash = "sha256:6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3", size = 15251, upload-time = "2024-03-09T07:03:07.708Z" }, +] + +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +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.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/89/23/adf3796d740536d63a6fbda113d07e60c734b6ed5d3058d1e47fc0495e47/soupsieve-2.8.1.tar.gz", hash = "sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350", size = 117856, upload-time = "2025-12-18T13:50:34.655Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/f3/b67d6ea49ca9154453b6d70b34ea22f3996b9fa55da105a79d8732227adc/soupsieve-2.8.1-py3-none-any.whl", hash = "sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434", size = 36710, upload-time = "2025-12-18T13:50:33.267Z" }, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.45" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/f9/5e4491e5ccf42f5d9cfc663741d261b3e6e1683ae7812114e7636409fcc6/sqlalchemy-2.0.45.tar.gz", hash = "sha256:1632a4bda8d2d25703fdad6363058d882541bdaaee0e5e3ddfa0cd3229efce88", size = 9869912, upload-time = "2025-12-09T21:05:16.737Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/c7/1900b56ce19bff1c26f39a4ce427faec7716c81ac792bfac8b6a9f3dca93/sqlalchemy-2.0.45-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3ee2aac15169fb0d45822983631466d60b762085bc4535cd39e66bea362df5f", size = 3333760, upload-time = "2025-12-09T22:11:02.66Z" }, + { url = "https://files.pythonhosted.org/packages/0a/93/3be94d96bb442d0d9a60e55a6bb6e0958dd3457751c6f8502e56ef95fed0/sqlalchemy-2.0.45-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba547ac0b361ab4f1608afbc8432db669bd0819b3e12e29fb5fa9529a8bba81d", size = 3348268, upload-time = "2025-12-09T22:13:49.054Z" }, + { url = "https://files.pythonhosted.org/packages/48/4b/f88ded696e61513595e4a9778f9d3f2bf7332cce4eb0c7cedaabddd6687b/sqlalchemy-2.0.45-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:215f0528b914e5c75ef2559f69dca86878a3beeb0c1be7279d77f18e8d180ed4", size = 3278144, upload-time = "2025-12-09T22:11:04.14Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6a/310ecb5657221f3e1bd5288ed83aa554923fb5da48d760a9f7622afeb065/sqlalchemy-2.0.45-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:107029bf4f43d076d4011f1afb74f7c3e2ea029ec82eb23d8527d5e909e97aa6", size = 3313907, upload-time = "2025-12-09T22:13:50.598Z" }, + { url = "https://files.pythonhosted.org/packages/5c/39/69c0b4051079addd57c84a5bfb34920d87456dd4c90cf7ee0df6efafc8ff/sqlalchemy-2.0.45-cp312-cp312-win32.whl", hash = "sha256:0c9f6ada57b58420a2c0277ff853abe40b9e9449f8d7d231763c6bc30f5c4953", size = 2112182, upload-time = "2025-12-09T21:39:30.824Z" }, + { url = "https://files.pythonhosted.org/packages/f7/4e/510db49dd89fc3a6e994bee51848c94c48c4a00dc905e8d0133c251f41a7/sqlalchemy-2.0.45-cp312-cp312-win_amd64.whl", hash = "sha256:8defe5737c6d2179c7997242d6473587c3beb52e557f5ef0187277009f73e5e1", size = 2139200, upload-time = "2025-12-09T21:39:32.321Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c8/7cc5221b47a54edc72a0140a1efa56e0a2730eefa4058d7ed0b4c4357ff8/sqlalchemy-2.0.45-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe187fc31a54d7fd90352f34e8c008cf3ad5d064d08fedd3de2e8df83eb4a1cf", size = 3277082, upload-time = "2025-12-09T22:11:06.167Z" }, + { url = "https://files.pythonhosted.org/packages/0e/50/80a8d080ac7d3d321e5e5d420c9a522b0aa770ec7013ea91f9a8b7d36e4a/sqlalchemy-2.0.45-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:672c45cae53ba88e0dad74b9027dddd09ef6f441e927786b05bec75d949fbb2e", size = 3293131, upload-time = "2025-12-09T22:13:52.626Z" }, + { url = "https://files.pythonhosted.org/packages/da/4c/13dab31266fc9904f7609a5dc308a2432a066141d65b857760c3bef97e69/sqlalchemy-2.0.45-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:470daea2c1ce73910f08caf10575676a37159a6d16c4da33d0033546bddebc9b", size = 3225389, upload-time = "2025-12-09T22:11:08.093Z" }, + { url = "https://files.pythonhosted.org/packages/74/04/891b5c2e9f83589de202e7abaf24cd4e4fa59e1837d64d528829ad6cc107/sqlalchemy-2.0.45-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9c6378449e0940476577047150fd09e242529b761dc887c9808a9a937fe990c8", size = 3266054, upload-time = "2025-12-09T22:13:54.262Z" }, + { url = "https://files.pythonhosted.org/packages/f1/24/fc59e7f71b0948cdd4cff7a286210e86b0443ef1d18a23b0d83b87e4b1f7/sqlalchemy-2.0.45-cp313-cp313-win32.whl", hash = "sha256:4b6bec67ca45bc166c8729910bd2a87f1c0407ee955df110d78948f5b5827e8a", size = 2110299, upload-time = "2025-12-09T21:39:33.486Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c5/d17113020b2d43073412aeca09b60d2009442420372123b8d49cc253f8b8/sqlalchemy-2.0.45-cp313-cp313-win_amd64.whl", hash = "sha256:afbf47dc4de31fa38fd491f3705cac5307d21d4bb828a4f020ee59af412744ee", size = 2136264, upload-time = "2025-12-09T21:39:36.801Z" }, + { url = "https://files.pythonhosted.org/packages/3d/8d/bb40a5d10e7a5f2195f235c0b2f2c79b0bf6e8f00c0c223130a4fbd2db09/sqlalchemy-2.0.45-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:83d7009f40ce619d483d26ac1b757dfe3167b39921379a8bd1b596cf02dab4a6", size = 3521998, upload-time = "2025-12-09T22:13:28.622Z" }, + { url = "https://files.pythonhosted.org/packages/75/a5/346128b0464886f036c039ea287b7332a410aa2d3fb0bb5d404cb8861635/sqlalchemy-2.0.45-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d8a2ca754e5415cde2b656c27900b19d50ba076aa05ce66e2207623d3fe41f5a", size = 3473434, upload-time = "2025-12-09T22:13:30.188Z" }, + { url = "https://files.pythonhosted.org/packages/cc/64/4e1913772646b060b025d3fc52ce91a58967fe58957df32b455de5a12b4f/sqlalchemy-2.0.45-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f46ec744e7f51275582e6a24326e10c49fbdd3fc99103e01376841213028774", size = 3272404, upload-time = "2025-12-09T22:11:09.662Z" }, + { url = "https://files.pythonhosted.org/packages/b3/27/caf606ee924282fe4747ee4fd454b335a72a6e018f97eab5ff7f28199e16/sqlalchemy-2.0.45-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:883c600c345123c033c2f6caca18def08f1f7f4c3ebeb591a63b6fceffc95cce", size = 3277057, upload-time = "2025-12-09T22:13:56.213Z" }, + { url = "https://files.pythonhosted.org/packages/85/d0/3d64218c9724e91f3d1574d12eb7ff8f19f937643815d8daf792046d88ab/sqlalchemy-2.0.45-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2c0b74aa79e2deade948fe8593654c8ef4228c44ba862bb7c9585c8e0db90f33", size = 3222279, upload-time = "2025-12-09T22:11:11.1Z" }, + { url = "https://files.pythonhosted.org/packages/24/10/dd7688a81c5bc7690c2a3764d55a238c524cd1a5a19487928844cb247695/sqlalchemy-2.0.45-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8a420169cef179d4c9064365f42d779f1e5895ad26ca0c8b4c0233920973db74", size = 3244508, upload-time = "2025-12-09T22:13:57.932Z" }, + { url = "https://files.pythonhosted.org/packages/aa/41/db75756ca49f777e029968d9c9fee338c7907c563267740c6d310a8e3f60/sqlalchemy-2.0.45-cp314-cp314-win32.whl", hash = "sha256:e50dcb81a5dfe4b7b4a4aa8f338116d127cb209559124f3694c70d6cd072b68f", size = 2113204, upload-time = "2025-12-09T21:39:38.365Z" }, + { url = "https://files.pythonhosted.org/packages/89/a2/0e1590e9adb292b1d576dbcf67ff7df8cf55e56e78d2c927686d01080f4b/sqlalchemy-2.0.45-cp314-cp314-win_amd64.whl", hash = "sha256:4748601c8ea959e37e03d13dcda4a44837afcd1b21338e637f7c935b8da06177", size = 2138785, upload-time = "2025-12-09T21:39:39.503Z" }, + { url = "https://files.pythonhosted.org/packages/42/39/f05f0ed54d451156bbed0e23eb0516bcad7cbb9f18b3bf219c786371b3f0/sqlalchemy-2.0.45-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd337d3526ec5298f67d6a30bbbe4ed7e5e68862f0bf6dd21d289f8d37b7d60b", size = 3522029, upload-time = "2025-12-09T22:13:32.09Z" }, + { url = "https://files.pythonhosted.org/packages/54/0f/d15398b98b65c2bce288d5ee3f7d0a81f77ab89d9456994d5c7cc8b2a9db/sqlalchemy-2.0.45-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9a62b446b7d86a3909abbcd1cd3cc550a832f99c2bc37c5b22e1925438b9367b", size = 3475142, upload-time = "2025-12-09T22:13:33.739Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e1/3ccb13c643399d22289c6a9786c1a91e3dcbb68bce4beb44926ac2c557bf/sqlalchemy-2.0.45-py3-none-any.whl", hash = "sha256:5225a288e4c8cc2308dbdd874edad6e7d0fd38eac1e9e5f23503425c8eee20d0", size = 1936672, upload-time = "2025-12-09T21:54:52.608Z" }, +] + +[[package]] +name = "sqlparse" +version = "0.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/76/437d71068094df0726366574cf3432a4ed754217b436eb7429415cf2d480/sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e", size = 120815, upload-time = "2025-12-19T07:17:45.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/4b/359f28a903c13438ef59ebeee215fb25da53066db67b305c125f1c6d2a25/sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba", size = 46138, upload-time = "2025-12-19T07:17:46.573Z" }, +] + +[[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 = "starlette" +version = "0.50.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/b8/73a0e6a6e079a9d9cfa64113d771e421640b6f679a52eeb9b32f72d871a1/starlette-0.50.0.tar.gz", hash = "sha256:a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca", size = 2646985, upload-time = "2025-11-01T15:25:27.516Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl", hash = "sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca", size = 74033, upload-time = "2025-11-01T15:25:25.461Z" }, +] + +[[package]] +name = "statsmodels" +version = "0.14.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "patsy" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/81/e8d74b34f85285f7335d30c5e3c2d7c0346997af9f3debf9a0a9a63de184/statsmodels-0.14.6.tar.gz", hash = "sha256:4d17873d3e607d398b85126cd4ed7aad89e4e9d89fc744cdab1af3189a996c2a", size = 20689085, upload-time = "2025-12-05T23:08:39.522Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/ce/308e5e5da57515dd7cab3ec37ea2d5b8ff50bef1fcc8e6d31456f9fae08e/statsmodels-0.14.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fe76140ae7adc5ff0e60a3f0d56f4fffef484efa803c3efebf2fcd734d72ecb5", size = 10091932, upload-time = "2025-12-05T19:28:55.446Z" }, + { url = "https://files.pythonhosted.org/packages/05/30/affbabf3c27fb501ec7b5808230c619d4d1a4525c07301074eb4bda92fa9/statsmodels-0.14.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26d4f0ed3b31f3c86f83a92f5c1f5cbe63fc992cd8915daf28ca49be14463a1c", size = 9997345, upload-time = "2025-12-05T19:29:10.278Z" }, + { url = "https://files.pythonhosted.org/packages/48/f5/3a73b51e6450c31652c53a8e12e24eac64e3824be816c0c2316e7dbdcb7d/statsmodels-0.14.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8c00a42863e4f4733ac9d078bbfad816249c01451740e6f5053ecc7db6d6368", size = 10058649, upload-time = "2025-12-05T23:10:12.775Z" }, + { url = "https://files.pythonhosted.org/packages/81/68/dddd76117df2ef14c943c6bbb6618be5c9401280046f4ddfc9fb4596a1b8/statsmodels-0.14.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19b58cf7474aa9e7e3b0771a66537148b2df9b5884fbf156096c0e6c1ff0469d", size = 10339446, upload-time = "2025-12-05T23:10:28.503Z" }, + { url = "https://files.pythonhosted.org/packages/56/4a/dce451c74c4050535fac1ec0c14b80706d8fc134c9da22db3c8a0ec62c33/statsmodels-0.14.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:81e7dcc5e9587f2567e52deaff5220b175bf2f648951549eae5fc9383b62bc37", size = 10368705, upload-time = "2025-12-05T23:10:44.339Z" }, + { url = "https://files.pythonhosted.org/packages/60/15/3daba2df40be8b8a9a027d7f54c8dedf24f0d81b96e54b52293f5f7e3418/statsmodels-0.14.6-cp312-cp312-win_amd64.whl", hash = "sha256:b5eb07acd115aa6208b4058211138393a7e6c2cf12b6f213ede10f658f6a714f", size = 9543991, upload-time = "2025-12-05T23:10:58.536Z" }, + { url = "https://files.pythonhosted.org/packages/81/59/a5aad5b0cc266f5be013db8cde563ac5d2a025e7efc0c328d83b50c72992/statsmodels-0.14.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:47ee7af083623d2091954fa71c7549b8443168f41b7c5dce66510274c50fd73e", size = 10072009, upload-time = "2025-12-05T23:11:14.021Z" }, + { url = "https://files.pythonhosted.org/packages/53/dd/d8cfa7922fc6dc3c56fa6c59b348ea7de829a94cd73208c6f8202dd33f17/statsmodels-0.14.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa60d82e29fcd0a736e86feb63a11d2380322d77a9369a54be8b0965a3985f71", size = 9980018, upload-time = "2025-12-05T23:11:30.907Z" }, + { url = "https://files.pythonhosted.org/packages/ee/77/0ec96803eba444efd75dba32f2ef88765ae3e8f567d276805391ec2c98c6/statsmodels-0.14.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:89ee7d595f5939cc20bf946faedcb5137d975f03ae080f300ebb4398f16a5bd4", size = 10060269, upload-time = "2025-12-05T23:11:46.338Z" }, + { url = "https://files.pythonhosted.org/packages/10/b9/fd41f1f6af13a1a1212a06bb377b17762feaa6d656947bf666f76300fc05/statsmodels-0.14.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:730f3297b26749b216a06e4327fe0be59b8d05f7d594fb6caff4287b69654589", size = 10324155, upload-time = "2025-12-05T23:12:01.805Z" }, + { url = "https://files.pythonhosted.org/packages/ee/0f/a6900e220abd2c69cd0a07e3ad26c71984be6061415a60e0f17b152ecf08/statsmodels-0.14.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f1c08befa85e93acc992b72a390ddb7bd876190f1360e61d10cf43833463bc9c", size = 10349765, upload-time = "2025-12-05T23:12:18.018Z" }, + { url = "https://files.pythonhosted.org/packages/98/08/b79f0c614f38e566eebbdcff90c0bcacf3c6ba7a5bbb12183c09c29ca400/statsmodels-0.14.6-cp313-cp313-win_amd64.whl", hash = "sha256:8021271a79f35b842c02a1794465a651a9d06ec2080f76ebc3b7adce77d08233", size = 9540043, upload-time = "2025-12-05T23:12:33.887Z" }, + { url = "https://files.pythonhosted.org/packages/71/de/09540e870318e0c7b58316561d417be45eff731263b4234fdd2eee3511a8/statsmodels-0.14.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:00781869991f8f02ad3610da6627fd26ebe262210287beb59761982a8fa88cae", size = 10069403, upload-time = "2025-12-05T23:12:48.424Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f0/63c1bfda75dc53cee858006e1f46bd6d6f883853bea1b97949d0087766ca/statsmodels-0.14.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:73f305fbf31607b35ce919fae636ab8b80d175328ed38fdc6f354e813b86ee37", size = 9989253, upload-time = "2025-12-05T23:13:05.274Z" }, + { url = "https://files.pythonhosted.org/packages/c1/98/b0dfb4f542b2033a3341aa5f1bdd97024230a4ad3670c5b0839d54e3dcab/statsmodels-0.14.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e443e7077a6e2d3faeea72f5a92c9f12c63722686eb80bb40a0f04e4a7e267ad", size = 10090802, upload-time = "2025-12-05T23:13:20.653Z" }, + { url = "https://files.pythonhosted.org/packages/34/0e/2408735aca9e764643196212f9069912100151414dd617d39ffc72d77eee/statsmodels-0.14.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3414e40c073d725007a6603a18247ab7af3467e1af4a5e5a24e4c27bc26673b4", size = 10337587, upload-time = "2025-12-05T23:13:37.597Z" }, + { url = "https://files.pythonhosted.org/packages/0f/36/4d44f7035ab3c0b2b6a4c4ebb98dedf36246ccbc1b3e2f51ebcd7ac83abb/statsmodels-0.14.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a518d3f9889ef920116f9fa56d0338069e110f823926356946dae83bc9e33e19", size = 10363350, upload-time = "2025-12-05T23:13:53.08Z" }, + { url = "https://files.pythonhosted.org/packages/26/33/f1652d0c59fa51de18492ee2345b65372550501ad061daa38f950be390b6/statsmodels-0.14.6-cp314-cp314-win_amd64.whl", hash = "sha256:151b73e29f01fe619dbce7f66d61a356e9d1fe5e906529b78807df9189c37721", size = 9588010, upload-time = "2025-12-05T23:14:07.28Z" }, +] + +[[package]] +name = "streamlit" +version = "1.53.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "altair" }, + { name = "blinker" }, + { name = "cachetools" }, + { name = "click" }, + { name = "gitpython" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "protobuf" }, + { name = "pyarrow" }, + { name = "pydeck" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "toml" }, + { name = "tornado" }, + { name = "typing-extensions" }, + { name = "watchdog", marker = "sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/b1/5e5fd38d4a5f97163ff071d76e8d6b3aa43e03f86bf94fd0265c43e43fa3/streamlit-1.53.0.tar.gz", hash = "sha256:0114116d34589f2e652bf4ac735a3aca69807e659f92f99c98e7b620d000838f", size = 8650270, upload-time = "2026-01-14T19:52:24.94Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/54/47ed40f34403205b2c9aab04472e864d1b496b4381b9bf408cf2c20e144c/streamlit-1.53.0-py3-none-any.whl", hash = "sha256:e8b65210bd1a785d121340b794a47c7c912d8da401af9e4403e16c84e3bc4410", size = 9110100, upload-time = "2026-01-14T19:52:22.589Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload-time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" }, +] + +[[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'" }, + { 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" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +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 = "toml" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f", size = 22253, upload-time = "2020-11-01T01:40:22.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" }, +] + +[[package]] +name = "tornado" +version = "6.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/1d/0a336abf618272d53f62ebe274f712e213f5a03c0b2339575430b8362ef2/tornado-6.5.4.tar.gz", hash = "sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7", size = 513632, upload-time = "2025-12-15T19:21:03.836Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/a9/e94a9d5224107d7ce3cc1fab8d5dc97f5ea351ccc6322ee4fb661da94e35/tornado-6.5.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9", size = 443909, upload-time = "2025-12-15T19:20:48.382Z" }, + { url = "https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843", size = 442163, upload-time = "2025-12-15T19:20:49.791Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b5/206f82d51e1bfa940ba366a8d2f83904b15942c45a78dd978b599870ab44/tornado-6.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17", size = 445746, upload-time = "2025-12-15T19:20:51.491Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9d/1a3338e0bd30ada6ad4356c13a0a6c35fbc859063fa7eddb309183364ac1/tornado-6.5.4-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335", size = 445083, upload-time = "2025-12-15T19:20:52.778Z" }, + { url = "https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f", size = 445315, upload-time = "2025-12-15T19:20:53.996Z" }, + { url = "https://files.pythonhosted.org/packages/27/07/2273972f69ca63dbc139694a3fc4684edec3ea3f9efabf77ed32483b875c/tornado-6.5.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84", size = 446003, upload-time = "2025-12-15T19:20:56.101Z" }, + { url = "https://files.pythonhosted.org/packages/d1/83/41c52e47502bf7260044413b6770d1a48dda2f0246f95ee1384a3cd9c44a/tornado-6.5.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f", size = 445412, upload-time = "2025-12-15T19:20:57.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/c7/bc96917f06cbee182d44735d4ecde9c432e25b84f4c2086143013e7b9e52/tornado-6.5.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8", size = 445392, upload-time = "2025-12-15T19:20:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1a/d7592328d037d36f2d2462f4bc1fbb383eec9278bc786c1b111cbbd44cfa/tornado-6.5.4-cp39-abi3-win32.whl", hash = "sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1", size = 446481, upload-time = "2025-12-15T19:21:00.008Z" }, + { url = "https://files.pythonhosted.org/packages/d6/6d/c69be695a0a64fd37a97db12355a035a6d90f79067a3cf936ec2b1dc38cd/tornado-6.5.4-cp39-abi3-win_amd64.whl", hash = "sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc", size = 446886, upload-time = "2025-12-15T19:21:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/50/49/8dc3fd90902f70084bd2cd059d576ddb4f8bb44c2c7c0e33a11422acb17e/tornado-6.5.4-cp39-abi3-win_arm64.whl", hash = "sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1", size = 445910, upload-time = "2025-12-15T19:21:02.571Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + +[[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 = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +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" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.40.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/d1/8f3c683c9561a4e6689dd3b1d345c815f10f86acd044ee1fb9a4dcd0b8c5/uvicorn-0.40.0.tar.gz", hash = "sha256:839676675e87e73694518b5574fd0f24c9d97b46bea16df7b8c05ea1a51071ea", size = 81761, upload-time = "2025-12-21T14:16:22.45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/d8/2083a1daa7439a66f3a48589a57d576aa117726762618f6bb09fe3798796/uvicorn-0.40.0-py3-none-any.whl", hash = "sha256:c6c8f55bc8bf13eb6fa9ff87ad62308bbbc33d0b67f84293151efe87e0d5f2ee", size = 68502, upload-time = "2025-12-21T14:16:21.041Z" }, +] + +[package.optional-dependencies] +standard = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "httptools" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "uvloop" +version = "0.22.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250, upload-time = "2025-10-16T22:17:19.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936, upload-time = "2025-10-16T22:16:29.436Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769, upload-time = "2025-10-16T22:16:30.493Z" }, + { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413, upload-time = "2025-10-16T22:16:31.644Z" }, + { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307, upload-time = "2025-10-16T22:16:32.917Z" }, + { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970, upload-time = "2025-10-16T22:16:34.015Z" }, + { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343, upload-time = "2025-10-16T22:16:35.149Z" }, + { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611, upload-time = "2025-10-16T22:16:36.833Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811, upload-time = "2025-10-16T22:16:38.275Z" }, + { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562, upload-time = "2025-10-16T22:16:39.375Z" }, + { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890, upload-time = "2025-10-16T22:16:40.547Z" }, + { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472, upload-time = "2025-10-16T22:16:41.694Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051, upload-time = "2025-10-16T22:16:43.224Z" }, + { url = "https://files.pythonhosted.org/packages/90/cd/b62bdeaa429758aee8de8b00ac0dd26593a9de93d302bff3d21439e9791d/uvloop-0.22.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142", size = 1362067, upload-time = "2025-10-16T22:16:44.503Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f8/a132124dfda0777e489ca86732e85e69afcd1ff7686647000050ba670689/uvloop-0.22.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74", size = 752423, upload-time = "2025-10-16T22:16:45.968Z" }, + { url = "https://files.pythonhosted.org/packages/a3/94/94af78c156f88da4b3a733773ad5ba0b164393e357cc4bd0ab2e2677a7d6/uvloop-0.22.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35", size = 4272437, upload-time = "2025-10-16T22:16:47.451Z" }, + { url = "https://files.pythonhosted.org/packages/b5/35/60249e9fd07b32c665192cec7af29e06c7cd96fa1d08b84f012a56a0b38e/uvloop-0.22.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25", size = 4292101, upload-time = "2025-10-16T22:16:49.318Z" }, + { url = "https://files.pythonhosted.org/packages/02/62/67d382dfcb25d0a98ce73c11ed1a6fba5037a1a1d533dcbb7cab033a2636/uvloop-0.22.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6", size = 4114158, upload-time = "2025-10-16T22:16:50.517Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/f1171b4a882a5d13c8b7576f348acfe6074d72eaf52cccef752f748d4a9f/uvloop-0.22.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079", size = 4177360, upload-time = "2025-10-16T22:16:52.646Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/b01414f31546caf0919da80ad57cbfe24c56b151d12af68cee1b04922ca8/uvloop-0.22.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289", size = 1454790, upload-time = "2025-10-16T22:16:54.355Z" }, + { url = "https://files.pythonhosted.org/packages/d4/31/0bb232318dd838cad3fa8fb0c68c8b40e1145b32025581975e18b11fab40/uvloop-0.22.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3", size = 796783, upload-time = "2025-10-16T22:16:55.906Z" }, + { url = "https://files.pythonhosted.org/packages/42/38/c9b09f3271a7a723a5de69f8e237ab8e7803183131bc57c890db0b6bb872/uvloop-0.22.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c", size = 4647548, upload-time = "2025-10-16T22:16:57.008Z" }, + { url = "https://files.pythonhosted.org/packages/c1/37/945b4ca0ac27e3dc4952642d4c900edd030b3da6c9634875af6e13ae80e5/uvloop-0.22.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21", size = 4467065, upload-time = "2025-10-16T22:16:58.206Z" }, + { url = "https://files.pythonhosted.org/packages/97/cc/48d232f33d60e2e2e0b42f4e73455b146b76ebe216487e862700457fbf3c/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88", size = 4328384, upload-time = "2025-10-16T22:16:59.36Z" }, + { url = "https://files.pythonhosted.org/packages/e4/16/c1fd27e9549f3c4baf1dc9c20c456cd2f822dbf8de9f463824b0c0357e06/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e", size = 4296730, upload-time = "2025-10-16T22:17:00.744Z" }, +] + +[[package]] +name = "waitress" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/cb/04ddb054f45faa306a230769e868c28b8065ea196891f09004ebace5b184/waitress-3.0.2.tar.gz", hash = "sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f", size = 179901, upload-time = "2024-11-16T20:02:35.195Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/57/a27182528c90ef38d82b636a11f606b0cbb0e17588ed205435f8affe3368/waitress-3.0.2-py3-none-any.whl", hash = "sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e", size = 56232, upload-time = "2024-11-16T20:02:33.858Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440, upload-time = "2025-10-14T15:06:21.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745, upload-time = "2025-10-14T15:04:46.731Z" }, + { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769, upload-time = "2025-10-14T15:04:48.003Z" }, + { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374, upload-time = "2025-10-14T15:04:49.179Z" }, + { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485, upload-time = "2025-10-14T15:04:50.155Z" }, + { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813, upload-time = "2025-10-14T15:04:51.059Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816, upload-time = "2025-10-14T15:04:52.031Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186, upload-time = "2025-10-14T15:04:53.064Z" }, + { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812, upload-time = "2025-10-14T15:04:55.174Z" }, + { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196, upload-time = "2025-10-14T15:04:56.22Z" }, + { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657, upload-time = "2025-10-14T15:04:57.521Z" }, + { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042, upload-time = "2025-10-14T15:04:59.046Z" }, + { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410, upload-time = "2025-10-14T15:05:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209, upload-time = "2025-10-14T15:05:01.168Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321, upload-time = "2025-10-14T15:05:02.063Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783, upload-time = "2025-10-14T15:05:03.052Z" }, + { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279, upload-time = "2025-10-14T15:05:04.004Z" }, + { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405, upload-time = "2025-10-14T15:05:04.942Z" }, + { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976, upload-time = "2025-10-14T15:05:05.905Z" }, + { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506, upload-time = "2025-10-14T15:05:06.906Z" }, + { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936, upload-time = "2025-10-14T15:05:07.906Z" }, + { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147, upload-time = "2025-10-14T15:05:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007, upload-time = "2025-10-14T15:05:10.117Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280, upload-time = "2025-10-14T15:05:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056, upload-time = "2025-10-14T15:05:12.156Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162, upload-time = "2025-10-14T15:05:13.208Z" }, + { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909, upload-time = "2025-10-14T15:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389, upload-time = "2025-10-14T15:05:15.777Z" }, + { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964, upload-time = "2025-10-14T15:05:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114, upload-time = "2025-10-14T15:05:17.876Z" }, + { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264, upload-time = "2025-10-14T15:05:18.962Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877, upload-time = "2025-10-14T15:05:20.094Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176, upload-time = "2025-10-14T15:05:21.134Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577, upload-time = "2025-10-14T15:05:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425, upload-time = "2025-10-14T15:05:23.348Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826, upload-time = "2025-10-14T15:05:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208, upload-time = "2025-10-14T15:05:25.45Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5", size = 404315, upload-time = "2025-10-14T15:05:26.501Z" }, + { url = "https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd", size = 390869, upload-time = "2025-10-14T15:05:27.649Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7e/5643bfff5acb6539b18483128fdc0ef2cccc94a5b8fbda130c823e8ed636/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb", size = 449919, upload-time = "2025-10-14T15:05:28.701Z" }, + { url = "https://files.pythonhosted.org/packages/51/2e/c410993ba5025a9f9357c376f48976ef0e1b1aefb73b97a5ae01a5972755/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5", size = 460845, upload-time = "2025-10-14T15:05:30.064Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a4/2df3b404469122e8680f0fcd06079317e48db58a2da2950fb45020947734/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3", size = 489027, upload-time = "2025-10-14T15:05:31.064Z" }, + { url = "https://files.pythonhosted.org/packages/ea/84/4587ba5b1f267167ee715b7f66e6382cca6938e0a4b870adad93e44747e6/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33", size = 595615, upload-time = "2025-10-14T15:05:32.074Z" }, + { url = "https://files.pythonhosted.org/packages/6a/0f/c6988c91d06e93cd0bb3d4a808bcf32375ca1904609835c3031799e3ecae/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510", size = 474836, upload-time = "2025-10-14T15:05:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05", size = 455099, upload-time = "2025-10-14T15:05:34.189Z" }, + { url = "https://files.pythonhosted.org/packages/98/e0/8c9bdba88af756a2fce230dd365fab2baf927ba42cd47521ee7498fd5211/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6", size = 630626, upload-time = "2025-10-14T15:05:35.216Z" }, + { url = "https://files.pythonhosted.org/packages/2a/84/a95db05354bf2d19e438520d92a8ca475e578c647f78f53197f5a2f17aaf/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81", size = 622519, upload-time = "2025-10-14T15:05:36.259Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ce/d8acdc8de545de995c339be67711e474c77d643555a9bb74a9334252bd55/watchfiles-1.1.1-cp314-cp314-win32.whl", hash = "sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b", size = 272078, upload-time = "2025-10-14T15:05:37.63Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c9/a74487f72d0451524be827e8edec251da0cc1fcf111646a511ae752e1a3d/watchfiles-1.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a", size = 287664, upload-time = "2025-10-14T15:05:38.95Z" }, + { url = "https://files.pythonhosted.org/packages/df/b8/8ac000702cdd496cdce998c6f4ee0ca1f15977bba51bdf07d872ebdfc34c/watchfiles-1.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02", size = 277154, upload-time = "2025-10-14T15:05:39.954Z" }, + { url = "https://files.pythonhosted.org/packages/47/a8/e3af2184707c29f0f14b1963c0aace6529f9d1b8582d5b99f31bbf42f59e/watchfiles-1.1.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21", size = 403820, upload-time = "2025-10-14T15:05:40.932Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ec/e47e307c2f4bd75f9f9e8afbe3876679b18e1bcec449beca132a1c5ffb2d/watchfiles-1.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5", size = 390510, upload-time = "2025-10-14T15:05:41.945Z" }, + { url = "https://files.pythonhosted.org/packages/d5/a0/ad235642118090f66e7b2f18fd5c42082418404a79205cdfca50b6309c13/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7", size = 448408, upload-time = "2025-10-14T15:05:43.385Z" }, + { url = "https://files.pythonhosted.org/packages/df/85/97fa10fd5ff3332ae17e7e40e20784e419e28521549780869f1413742e9d/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101", size = 458968, upload-time = "2025-10-14T15:05:44.404Z" }, + { url = "https://files.pythonhosted.org/packages/47/c2/9059c2e8966ea5ce678166617a7f75ecba6164375f3b288e50a40dc6d489/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44", size = 488096, upload-time = "2025-10-14T15:05:45.398Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/d90a9ec8ac309bc26db808a13e7bfc0e4e78b6fc051078a554e132e80160/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c", size = 596040, upload-time = "2025-10-14T15:05:46.502Z" }, + { url = "https://files.pythonhosted.org/packages/95/68/4e3479b20ca305cfc561db3ed207a8a1c745ee32bf24f2026a129d0ddb6e/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc", size = 473847, upload-time = "2025-10-14T15:05:47.484Z" }, + { url = "https://files.pythonhosted.org/packages/4f/55/2af26693fd15165c4ff7857e38330e1b61ab8c37d15dc79118cdba115b7a/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c", size = 455072, upload-time = "2025-10-14T15:05:48.928Z" }, + { url = "https://files.pythonhosted.org/packages/66/1d/d0d200b10c9311ec25d2273f8aad8c3ef7cc7ea11808022501811208a750/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099", size = 629104, upload-time = "2025-10-14T15:05:49.908Z" }, + { url = "https://files.pythonhosted.org/packages/e3/bd/fa9bb053192491b3867ba07d2343d9f2252e00811567d30ae8d0f78136fe/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01", size = 622112, upload-time = "2025-10-14T15:05:50.941Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.2.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload-time = "2025-09-22T16:29:53.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload-time = "2025-09-22T16:29:51.641Z" }, +] + +[[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 = "websockets" +version = "16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload-time = "2026-01-10T09:23:47.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365, upload-time = "2026-01-10T09:22:46.787Z" }, + { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038, upload-time = "2026-01-10T09:22:47.999Z" }, + { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328, upload-time = "2026-01-10T09:22:49.809Z" }, + { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915, upload-time = "2026-01-10T09:22:51.071Z" }, + { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152, upload-time = "2026-01-10T09:22:52.224Z" }, + { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583, upload-time = "2026-01-10T09:22:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880, upload-time = "2026-01-10T09:22:55.033Z" }, + { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261, upload-time = "2026-01-10T09:22:56.251Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693, upload-time = "2026-01-10T09:22:57.478Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload-time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload-time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload-time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload-time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload-time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload-time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload-time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload-time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload-time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload-time = "2026-01-10T09:23:12.178Z" }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload-time = "2026-01-10T09:23:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload-time = "2026-01-10T09:23:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload-time = "2026-01-10T09:23:15.939Z" }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload-time = "2026-01-10T09:23:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload-time = "2026-01-10T09:23:18.372Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload-time = "2026-01-10T09:23:19.652Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload-time = "2026-01-10T09:23:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload-time = "2026-01-10T09:23:22.715Z" }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload-time = "2026-01-10T09:23:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload-time = "2026-01-10T09:23:25.781Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload-time = "2026-01-10T09:23:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload-time = "2026-01-10T09:23:28.259Z" }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload-time = "2026-01-10T09:23:29.449Z" }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload-time = "2026-01-10T09:23:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload-time = "2026-01-10T09:23:32.627Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload-time = "2026-01-10T09:23:33.816Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload-time = "2026-01-10T09:23:35.016Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/70/1469ef1d3542ae7c2c7b72bd5e3a4e6ee69d7978fa8a3af05a38eca5becf/werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67", size = 864754, upload-time = "2026-01-08T17:49:23.247Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/f4/c67440c7fb409a71b7404b7aefcd7569a9c0d6bd071299bf4198ae7a5d95/widgetsnbextension-4.0.15.tar.gz", hash = "sha256:de8610639996f1567952d763a5a41af8af37f2575a41f9852a38f947eb82a3b9", size = 1097402, upload-time = "2025-11-01T21:15:55.178Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl", hash = "sha256:8156704e4346a571d9ce73b84bee86a29906c9abfd7223b7228a28899ccf3366", size = 2196503, upload-time = "2025-11-01T21:15:53.565Z" }, +] + +[[package]] +name = "xgboost" +version = "3.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "nvidia-nccl-cu12", marker = "sys_platform == 'linux'" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/db/ff3eb8ff8cdf87a57cbb0f484234b4353178587236c4c84c1d307165c1f8/xgboost-3.1.3.tar.gz", hash = "sha256:0aeaa59d7ba09221a6fa75f70406751cfafdf3f149d0a91b197a1360404a28f3", size = 1237662, upload-time = "2026-01-10T00:20:13.458Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/a9/8668a5662c497c32ab127b7ca57d91153f499b31c725969a1e4147782e64/xgboost-3.1.3-py3-none-macosx_10_15_x86_64.whl", hash = "sha256:e16a6c352ee1a4c19372a7b2bb75129e10e63adeeabd3d11f21b7787378e5a50", size = 2378032, upload-time = "2026-01-10T00:18:14.103Z" }, + { url = "https://files.pythonhosted.org/packages/52/39/ec5c53228b091387e934d3d419e8e3a5ce98c1650d458987d6e254a15304/xgboost-3.1.3-py3-none-macosx_12_0_arm64.whl", hash = "sha256:a7a1d59f3529de0ad9089c59b6cc595cd7b4424feabcc06463c4bde41f202f74", size = 2211477, upload-time = "2026-01-10T00:18:34.409Z" }, + { url = "https://files.pythonhosted.org/packages/99/f7/ceb06e6b959e5a8b303883482ecad346495641947679e3f735ae8ac1caa7/xgboost-3.1.3-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:2e31482633883b2e95fda6055db654bbfac82e10d91ad3d9929086ebd28eb1c4", size = 115346575, upload-time = "2026-01-10T00:19:11.44Z" }, + { url = "https://files.pythonhosted.org/packages/6c/9c/9d4ad7f586698bad52a570d2bf81138e500a5d9f32723c2b4ed1dd9252d8/xgboost-3.1.3-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:687504d1d76dc797df08b0dbe8b83d58629cdc06df52378f617164d16142bf2c", size = 115926894, upload-time = "2026-01-10T00:19:49.123Z" }, + { url = "https://files.pythonhosted.org/packages/3a/d8/4d4ae25452577f2dfabc66b60e712e7c01f9fe6c389fa88c546c2f427c4d/xgboost-3.1.3-py3-none-win_amd64.whl", hash = "sha256:3fe349b4c6030f0d66e166a3a6b7d470e776d530ea240d77335e36144cbe132a", size = 72011993, upload-time = "2026-01-10T00:17:42.98Z" }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, +]