diff --git a/404jobnotfound-remi-ai/.env.example b/404jobnotfound-remi-ai/.env.example
new file mode 100644
index 0000000..9d9f695
--- /dev/null
+++ b/404jobnotfound-remi-ai/.env.example
@@ -0,0 +1,11 @@
+HRFLOW_API_KEY=
+HRFLOW_BASE_URL=
+HRFLOW_SOURCE_KEY=
+HRFLOW_BOARD_KEY=
+
+OPEN_SOURCE_LLM_API_KEY=
+OPEN_SOURCE_LLM_BASE_URL=
+OPEN_SOURCE_LLM_MODEL=
+
+GRADIUM_API_KEY=
+GRADIUM_VOICE_ID=
\ No newline at end of file
diff --git a/404jobnotfound-remi-ai/README.md b/404jobnotfound-remi-ai/README.md
new file mode 100644
index 0000000..bf65c9b
--- /dev/null
+++ b/404jobnotfound-remi-ai/README.md
@@ -0,0 +1,245 @@
+# HRFlow AI Interview MVP
+
+This project is an AI interview app built around HRFlow data.
+
+It fetches a candidate profile and a job offer from HRFlow, creates a short interview session, generates exactly 3 questions tailored to both the candidate and the job, scores the answers, and produces a final report that shows:
+
+- the interview score computed by the app
+- the HRFlow profile-vs-job match score
+- strengths and concerns
+- a hiring recommendation
+
+## What the app does
+
+The app has two parts:
+
+- `frontend/`
+ - React + Vite UI
+ - fetches the candidate profile and the job from HRFlow
+ - runs the interview flow (with client-side gaze tracking via MediaPipe)
+ - displays the final report
+
+- `backend/`
+ - FastAPI API
+ - creates sessions from `profile + job_offer`
+ - parses CVs via HRFlow to bootstrap sessions
+ - generates 3 interview questions
+ - scores each answer
+ - builds the final report
+ - fetches the HRFlow profile/job grading score
+ - persists completed interviews to a local SQLite database (`backend/interviews.db`) for HR review
+
+The backend also uses the local `agent/` package for:
+
+- question generation
+- scoring
+- report building
+
+## Repository structure
+
+```text
+.
+├── agent/
+├── backend/
+├── frontend/
+├── .env.example
+├── pyproject.toml
+└── README.md
+```
+
+## How to install dependencies
+
+### Backend
+
+This repo uses a `uv` workspace.
+
+From the repository root:
+
+```bash
+uv sync
+```
+
+If you prefer using the existing virtual environment manually:
+
+```bash
+python3 -m venv .venv
+source .venv/bin/activate
+pip install -e ./agent -e ./backend
+```
+
+### Frontend
+
+```bash
+cd frontend
+npm install
+```
+
+## How to configure environment variables
+
+There are two env files to configure:
+
+- root `.env` for the backend
+- `frontend/.env` for the frontend
+
+### 1. Backend env
+
+Create a root `.env` file from `.env.example`:
+
+```bash
+cp .env.example .env
+```
+
+Set the following variables:
+
+```env
+HRFLOW_API_KEY=
+HRFLOW_BASE_URL=https://api.hrflow.ai/v1
+HRFLOW_SOURCE_KEY=
+HRFLOW_BOARD_KEY=
+
+OPEN_SOURCE_LLM_API_KEY=
+OPEN_SOURCE_LLM_BASE_URL=
+OPEN_SOURCE_LLM_MODEL=
+
+GRADIUM_API_KEY=
+GRADIUM_VOICE_ID=
+```
+
+What they are used for:
+
+- `HRFLOW_API_KEY`
+ - HRFlow API key used by the backend wrapper
+- `HRFLOW_BASE_URL`
+ - HRFlow API base URL
+- `HRFLOW_SOURCE_KEY`
+ - default HRFlow source key for profiles
+- `HRFLOW_BOARD_KEY`
+ - default HRFlow board key for jobs
+- `OPEN_SOURCE_LLM_API_KEY`
+ - optional key for an OpenAI-compatible LLM provider
+- `OPEN_SOURCE_LLM_BASE_URL`
+ - optional OpenAI-compatible base URL
+- `OPEN_SOURCE_LLM_MODEL`
+ - optional model name used for question generation
+- `GRADIUM_API_KEY`
+ - optional key for Gradium text-to-speech
+- `GRADIUM_VOICE_ID`
+ - optional Gradium voice id
+
+Notes:
+
+- If the LLM env vars are missing, question generation falls back to deterministic logic.
+- If Gradium env vars are missing, the app still works without TTS.
+- Speech-to-text runs locally via Whisper (`mlx-whisper`), which requires `ffmpeg` on the host. It is Apple Silicon optimized.
+
+### 2. Frontend env
+
+Create `frontend/.env` and set:
+
+```env
+VITE_HRFLOW_API_KEY=
+VITE_HRFLOW_USER_EMAIL=
+VITE_HRFLOW_SOURCE_KEY=
+```
+
+What they are used for:
+
+- `VITE_HRFLOW_API_KEY`
+ - used by the frontend to fetch profile/job data directly from HRFlow via the Vite proxy
+- `VITE_HRFLOW_USER_EMAIL`
+ - sent by the frontend in HRFlow requests
+- `VITE_HRFLOW_SOURCE_KEY`
+ - default source key used in the landing page
+
+## How to run the app
+
+### Run the backend
+
+From the repository root:
+
+```bash
+uv run --package backend uvicorn backend.main:app --reload --port 8000
+```
+
+If port `8000` is already used:
+
+```bash
+uv run --package backend uvicorn backend.main:app --reload --port 8001
+```
+
+### Run the frontend
+
+In a separate terminal:
+
+```bash
+cd frontend
+npm run dev
+```
+
+Then open the Vite URL shown in the terminal, usually:
+
+- `http://localhost:3000`
+
+## Typical app flow
+
+1. Frontend fetches the candidate profile from HRFlow (or uploads a CV via `POST /profile/parse-cv`)
+2. Frontend fetches the job offer from HRFlow
+3. Frontend sends both to `POST /sessions`
+4. Backend creates a session and builds the candidate brief
+5. Backend generates exactly 3 interview questions
+6. Candidate answers each question (audio can be transcribed locally via `POST /stt`)
+7. Backend scores each answer
+8. Backend builds the final report
+9. Backend calls HRFlow grading to fetch the profile-vs-job match score
+10. Frontend displays both the interview score and the HRFlow score
+11. The completed report is persisted to SQLite and is available via `/hr/interviews`
+
+## What HrFlow.ai APIs it uses
+
+The app uses these HRFlow endpoints:
+
+- `GET /v1/profile/indexing`
+ - fetch the candidate profile
+
+- `GET /v1/job/indexing`
+ - fetch the job offer
+
+- `GET /v1/jobs/searching`
+ - list job offers from the configured board
+
+- `POST /v1/profile/parsing/file`
+ - parse an uploaded CV into a HRFlow profile
+
+- `GET /v1/profile/grading`
+ - fetch the HRFlow profile-vs-job match score
+
+Docs:
+
+- Profile grading:
+ - [https://developers.hrflow.ai/reference/grade-profiles-indexed-in-a-source-for-a-job](https://developers.hrflow.ai/reference/grade-profiles-indexed-in-a-source-for-a-job)
+
+## Main backend endpoints
+
+The backend exposes:
+
+- `GET /health`
+- `POST /sessions`
+- `POST /sessions/{session_id}/start`
+- `POST /sessions/{session_id}/answer`
+- `POST /sessions/{session_id}/gaze`
+- `GET /sessions/{session_id}/report`
+- `GET /jobs`
+- `POST /profile/parse-cv`
+- `POST /tts`
+- `POST /stt`
+- `GET /hr/interviews`
+- `GET /hr/interviews/{session_id}`
+
+Swagger is available at:
+
+- `http://localhost:8000/docs`
+
+## Notes
+
+- The HRFlow match score will only be returned if the submitted profile and job actually exist in HRFlow and the configured credentials are valid.
+- The interview still works even when optional external services are unavailable.
diff --git a/404jobnotfound-remi-ai/agent/.gitignore b/404jobnotfound-remi-ai/agent/.gitignore
new file mode 100644
index 0000000..47fe0fa
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/.gitignore
@@ -0,0 +1,4 @@
+.venv/
+__pycache__/
+.env
+*.pyc
diff --git a/404jobnotfound-remi-ai/agent/__init__.py b/404jobnotfound-remi-ai/agent/__init__.py
new file mode 100644
index 0000000..20b1abb
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/__init__.py
@@ -0,0 +1 @@
+"""Agent package for interview generation, scoring, and reporting."""
diff --git a/404jobnotfound-remi-ai/agent/interview_agent.py b/404jobnotfound-remi-ai/agent/interview_agent.py
new file mode 100644
index 0000000..8ccd3ac
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/interview_agent.py
@@ -0,0 +1,232 @@
+"""Interview question generation with deterministic fallback and optional LLM support."""
+
+from __future__ import annotations
+
+import json
+import logging
+import os
+import re
+from typing import Any
+
+logger = logging.getLogger(__name__)
+
+import httpx
+
+from agent.prompts import QUESTION_GENERATION_SYSTEM_PROMPT, build_question_generation_prompt
+
+
+def _tokenize(text: str) -> list[str]:
+ return re.findall(r"[A-Za-z][A-Za-z0-9+#.\-]{1,}", text or "")
+
+
+def _infer_seniority(years_of_experience: float) -> str:
+ if years_of_experience >= 7:
+ return "senior"
+ if years_of_experience >= 3:
+ return "mid"
+ return "junior"
+
+
+def _extract_top_skills(normalized_profile: dict[str, Any]) -> list[str]:
+ skills = normalized_profile.get("top_skills") or []
+ if skills:
+ return [str(skill) for skill in skills[:5]]
+
+ text = normalized_profile.get("profile_text", "")
+ frequency: dict[str, int] = {}
+ stopwords = {
+ "with",
+ "from",
+ "that",
+ "this",
+ "have",
+ "worked",
+ "experience",
+ "candidate",
+ "engineer",
+ "developer",
+ "manager",
+ }
+ for token in _tokenize(text):
+ lowered = token.lower()
+ if lowered not in stopwords and len(token) > 2:
+ frequency[token] = frequency.get(token, 0) + 1
+ return [item for item, _ in sorted(frequency.items(), key=lambda pair: (-pair[1], pair[0]))[:5]]
+
+
+def _extract_job_signals(normalized_job_offer: dict[str, Any] | None) -> dict[str, Any]:
+ job = normalized_job_offer or {}
+ top_skills = [str(skill) for skill in job.get("top_skills") or []][:5]
+ requirements = [str(item) for item in job.get("requirements") or []][:5]
+ return {
+ "target_role": job.get("title") or "Unknown Role",
+ "target_company": job.get("company"),
+ "target_skills": top_skills,
+ "key_requirements": requirements,
+ "job_text": job.get("job_text") or job.get("description_text") or "",
+ }
+
+
+def build_candidate_brief(
+ normalized_profile: dict[str, Any], normalized_job_offer: dict[str, Any] | None = None
+) -> dict[str, Any]:
+ """Create a compact candidate brief from a normalized profile and optional target job."""
+ experiences = normalized_profile.get("experiences") or []
+ strongest_experiences = sorted(
+ experiences,
+ key=lambda item: (
+ float(item.get("duration_years") or 0),
+ len(str(item.get("summary") or "")),
+ len(str(item.get("title") or "")),
+ ),
+ reverse=True,
+ )[:2]
+ years = float(normalized_profile.get("years_of_experience") or 0.0)
+ profile_text = normalized_profile.get("profile_text") or normalized_profile.get("name") or "Candidate profile unavailable."
+
+ job_signals = _extract_job_signals(normalized_job_offer)
+ combined_focus = job_signals["target_skills"] or _extract_top_skills(normalized_profile)
+
+ return {
+ "profile_key": normalized_profile.get("profile_key"),
+ "candidate_name": normalized_profile.get("name") or "Unknown Candidate",
+ "current_title": normalized_profile.get("title") or "Unknown Title",
+ "years_of_experience": years,
+ "seniority": _infer_seniority(years),
+ "top_skills": _extract_top_skills(normalized_profile),
+ "strongest_experiences": strongest_experiences,
+ "certifications": normalized_profile.get("certifications") or [],
+ "profile_text": profile_text,
+ "target_job": job_signals,
+ "fit_focus_skills": combined_focus[:5],
+ }
+
+
+class InterviewAgent:
+ """Generate interview questions from a candidate brief."""
+
+ def __init__(
+ self,
+ api_key: str | None = None,
+ base_url: str | None = None,
+ model: str | None = None,
+ timeout: float = 30.0,
+ ) -> None:
+ self.api_key = api_key or os.getenv("OPEN_SOURCE_LLM_API_KEY")
+ self.base_url = (base_url or os.getenv("OPEN_SOURCE_LLM_BASE_URL") or "").rstrip("/")
+ self.model = model or os.getenv("OPEN_SOURCE_LLM_MODEL") or ""
+ self.timeout = timeout
+
+ @property
+ def llm_configured(self) -> bool:
+ """Return whether an OpenAI-compatible LLM endpoint is configured."""
+ return bool(self.api_key and self.base_url and self.model)
+
+ async def generate_questions(self, candidate_brief: dict[str, Any]) -> list[dict[str, Any]]:
+ """Generate exactly five interview questions with safe fallback."""
+ if self.llm_configured:
+ llm_questions = await self._generate_questions_with_llm(candidate_brief)
+ if llm_questions:
+ return llm_questions
+ return self._generate_questions_deterministic(candidate_brief)
+
+ async def _generate_questions_with_llm(self, candidate_brief: dict[str, Any]) -> list[dict[str, Any]] | None:
+ payload = {
+ "model": self.model,
+ "temperature": 0.2,
+ "response_format": {"type": "json_object"},
+ "messages": [
+ {"role": "system", "content": QUESTION_GENERATION_SYSTEM_PROMPT},
+ {"role": "user", "content": build_question_generation_prompt(candidate_brief)},
+ ],
+ }
+ headers = {"Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json"}
+ try:
+ async with httpx.AsyncClient(timeout=self.timeout) as client:
+ response = await client.post(f"{self.base_url}/chat/completions", headers=headers, json=payload)
+ response.raise_for_status()
+ data = response.json()
+ content = data["choices"][0]["message"]["content"].strip()
+ # Strip markdown code fences the LLM sometimes wraps around JSON
+ if "```" in content:
+ # Extract content between first ``` and last ```
+ parts = content.split("```")
+ inner = parts[1] if len(parts) >= 3 else parts[-1]
+ # Remove optional language tag (e.g. "json\n")
+ if inner.startswith(("json", "JSON")):
+ inner = inner.split("\n", 1)[1] if "\n" in inner else inner[4:]
+ content = inner.strip()
+ parsed = json.loads(content)
+ questions = parsed.get("questions")
+ if isinstance(questions, list):
+ for i, q in enumerate(questions):
+ if isinstance(q, dict):
+ q["id"] = f"q{i + 1}"
+ if self._valid_question_set(questions):
+ return questions
+ except (httpx.HTTPError, KeyError, ValueError, TypeError) as exc:
+ logger.error("LLM question generation failed: %s", exc)
+ return None
+ return None
+
+ def _generate_questions_deterministic(self, candidate_brief: dict[str, Any]) -> list[dict[str, Any]]:
+ name = candidate_brief.get("candidate_name") or "the candidate"
+ title = candidate_brief.get("current_title") or "your recent role"
+ top_skills = candidate_brief.get("top_skills") or ["your core skills"]
+ target_job = candidate_brief.get("target_job") or {}
+ target_role = target_job.get("target_role") or "this role"
+ target_company = target_job.get("target_company") or "the hiring team"
+ target_skills = target_job.get("target_skills") or []
+ target_requirements = target_job.get("key_requirements") or []
+ strongest_experiences = candidate_brief.get("strongest_experiences") or []
+ main_experience = strongest_experiences[0] if strongest_experiences else {}
+ secondary_experience = strongest_experiences[1] if len(strongest_experiences) > 1 else {}
+ primary_skill = target_skills[0] if target_skills else top_skills[0]
+ secondary_skill = target_skills[1] if len(target_skills) > 1 else (top_skills[1] if len(top_skills) > 1 else primary_skill)
+ company = main_experience.get("company") or "your recent team"
+ project = main_experience.get("title") or title
+ secondary_context = secondary_experience.get("title") or secondary_experience.get("company") or "another relevant project"
+ raw_requirement = target_requirements[0] if target_requirements else ""
+ # Truncate to keep the deterministic question concise
+ target_requirement = (raw_requirement[:120].rsplit(" ", 1)[0] + "…") if len(raw_requirement) > 120 else raw_requirement
+ target_requirement = target_requirement or f"réussir dans le poste de {target_role}"
+
+ questions = [
+ {
+ "id": "q1",
+ "category": "intro_synthesis",
+ "question": f"Bonjour {name}, bienvenue dans cet entretien ! Pouvez-vous me présenter votre parcours et m'expliquer en quoi il fait de vous un bon candidat pour le poste de {target_role} chez {target_company} ?",
+ "why_it_matters": f"Vérifie si {name} sait relier son parcours au poste cible plutôt que de simplement résumer ses expériences passées.",
+ "expected_signals": ["synthèse claire", "progression de carrière", "adéquation au poste", "points forts pertinents"],
+ "scoring_criteria": ["réponse structurée", "alignement profil", "alignement poste", "synthèse concise"],
+ "priority": 1,
+ },
+ {
+ "id": "q2",
+ "category": "language_proficiency",
+ "question": f"This question is in English to assess your language skills. Can you describe your experience working on {project} at {company} and explain which aspects are most relevant to the {target_role} position? Please answer in English.",
+ "why_it_matters": "Tests the candidate's ability to communicate professionally in English while validating a real experience.",
+ "expected_signals": ["English fluency", "clear structure", "relevant experience", "professional vocabulary"],
+ "scoring_criteria": ["English proficiency", "specificity", "consistency with profile", "job relevance"],
+ "priority": 1,
+ },
+ {
+ "id": "q3",
+ "category": "skill_validation",
+ "question": f"Le poste met l'accent sur {primary_skill} et {secondary_skill}. Comment avez-vous utilisé ces compétences dans des projets concrets, et dans quelle mesure êtes-vous prêt à les appliquer dans ce rôle ?",
+ "why_it_matters": "Teste si les preuves du profil du candidat soutiennent réellement les compétences les plus importantes pour le poste cible.",
+ "expected_signals": ["utilisation concrète", "profondeur de compétence", "conscience des compromis", "préparation au poste"],
+ "scoring_criteria": ["pertinence", "spécificité", "clarté technique", "alignement poste"],
+ "priority": 2,
+ },
+ ]
+ return questions
+
+ def _valid_question_set(self, questions: Any) -> bool:
+ if not isinstance(questions, list) or len(questions) != 3:
+ return False
+ required = {"id", "category", "question", "why_it_matters", "expected_signals", "scoring_criteria", "priority"}
+ for question in questions:
+ if not isinstance(question, dict) or not required.issubset(question.keys()):
+ return False
+ return True
diff --git a/404jobnotfound-remi-ai/agent/prompts.py b/404jobnotfound-remi-ai/agent/prompts.py
new file mode 100644
index 0000000..40b5e5a
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/prompts.py
@@ -0,0 +1,110 @@
+"""Prompt helpers for optional LLM-backed interview generation and synthesis."""
+
+from __future__ import annotations
+
+import json
+from typing import Any
+
+
+QUESTION_GENERATION_SYSTEM_PROMPT = """
+Tu es un recruteur expert qui prépare un entretien de présélection de 15 minutes à partir du profil d'un candidat et d'une offre d'emploi cible.
+Retourne uniquement du JSON valide.
+Génère exactement 3 questions courtes, de 2-3 lignes maximum.
+Adresse toi directement au candidat, comme si tu les questions à poser lors de l'entretien.
+Chaque question doit être ancrée à la fois dans le profil et dans le poste.
+Ne pose pas de questions génériques ou de remplissage.
+Priorise l'évaluation de l'adéquation, des preuves, de la préparation et des lacunes probables pour le poste.
+Toutes les questions doivent être rédigées en français, SAUF la question 2 (id "q2") qui doit être une question de niveau de langue : elle doit être entièrement rédigée en anglais et le candidat doit y répondre en anglais. La catégorie de cette question doit être "language_proficiency".
+Les 3 questions doivent couvrir : 1) intro/synthèse du parcours, 2) niveau d'anglais, 3) validation des compétences clés.
+IMPORTANT : La question 1 (id "q1") doit obligatoirement commencer par une salutation chaleureuse et personnalisée adressée au candidat par son prénom (ex: "Bonjour [Prénom], ..."), avant d'enchaîner sur la question d'intro/synthèse.
+""".strip()
+
+
+def build_candidate_brief_prompt(normalized_profile: dict[str, Any], normalized_job_offer: dict[str, Any] | None) -> str:
+ """Build a prompt asking an LLM to summarize a profile into a compact brief."""
+ return (
+ "Build a recruiter-ready candidate brief from this normalized profile and target job. "
+ "Return valid JSON with keys: profile_key, candidate_name, current_title, years_of_experience, "
+ "seniority, top_skills, strongest_experiences, certifications, profile_text, target_job, fit_focus_skills. "
+ "The target_job must summarize the role title, company, target skills, key requirements, and job text. "
+ "The fit_focus_skills list should prioritize the overlap between the profile and the target job.\n"
+ f"Profile: {json.dumps(normalized_profile, ensure_ascii=True)}\n"
+ f"Job: {json.dumps(normalized_job_offer or {}, ensure_ascii=True)}"
+ )
+
+
+def build_question_generation_prompt(candidate_brief: dict[str, Any]) -> str:
+ """Build a strict JSON prompt for five grounded interview questions."""
+ return (
+ "À partir du résumé candidat ci-dessous, génère exactement 3 questions d'entretien concises et adaptées au recruteur. "
+ "Chaque question doit être concise et prête à être posée, idéalement une phrase et jamais plus de 2-3 lignes. "
+ "Retourne du JSON valide sous la forme {\"questions\": [...]} où chaque question contient : "
+ "id, category, question, why_it_matters, expected_signals, scoring_criteria, priority. "
+ "Les questions doivent couvrir intro/synthèse, test de langue anglaise (q2), validation de compétences, mise en situation ou technique, "
+ "et projection/motivation. La question 2 (id q2, catégorie language_proficiency) DOIT être entièrement rédigée en anglais pour tester le niveau d'anglais du candidat. "
+ "Toutes les autres questions doivent être en français. "
+ "Évite les formulations génériques. Chaque question doit tester l'adéquation du candidat au poste cible, pas seulement au profil. "
+ "Quand le résumé contient des compétences cibles ou des exigences du poste, ancre explicitement les questions dessus.\n"
+ f"{json.dumps(candidate_brief, ensure_ascii=True)}"
+ )
+
+
+ANSWER_EVALUATION_SYSTEM_PROMPT = """
+Tu es un recruteur bienveillant qui évalue les réponses d'un candidat lors d'un entretien de présélection.
+Tu valorises l'effort, la sincérité et le potentiel, pas seulement la perfection formelle.
+Rappelle-toi que le candidat répond à l'oral, en temps réel, sans préparation écrite : quelques imprécisions ou hésitations sont normales et ne doivent pas pénaliser.
+
+Règles de scoring (normalized_score sur 100) :
+- 0-20 : réponse vide, hors-sujet total, ou factice (ex: "test", "je ne sais pas", quelques mots sans contenu)
+- 21-60 : réponse très vague, aucun exemple, aucun lien avec le poste
+- 60 - 80 : Bonne réponse, avec des exemples ou des preuves, mais qui pourrait être plus précise, plus claire, ou mieux alignée avec le poste
+- 81-100 : réponse exceptionnelle, rare
+
+Biais positif : en cas de doute entre deux paliers, choisis le plus favorable. Une réponse honnête et sincère même courte mérite au moins 45. Ne sanctionne pas le manque de vocabulaire RH si le fond est bon.
+
+Cas particulier : si la catégorie de la question est "language_proficiency", évalue la qualité de l'anglais.
+Une réponse entièrement en français à une question en anglais ne doit pas dépasser 20/100. Pour le reste, sois indulgent sur l'accent ou les petites fautes grammaticales si la communication reste claire.
+
+Retourne uniquement du JSON valide avec les clés : normalized_score, subscores, strengths, concerns, rationale.
+Les subscores doivent inclure : relevance, specificity, consistency_with_profile, job_alignment, clarity, et technical_accuracy (si applicable, sinon null).
+Chaque subscore est sur 100 et suit la même logique bienveillante.
+Les strengths, concerns et rationale doivent être rédigés en français. Mets au moins un point fort même pour les réponses faibles.
+""".strip()
+
+
+def build_answer_evaluation_prompt(candidate_brief: dict[str, Any], question: dict[str, Any], answer: str) -> str:
+ """Build an LLM prompt for answer evaluation."""
+ category = question.get("category", "")
+ language_instruction = ""
+ if category == "language_proficiency":
+ language_instruction = (
+ "\n\nATTENTION : cette question est un TEST DE NIVEAU D'ANGLAIS. "
+ "Le candidat DOIT répondre en anglais. "
+ "Si la réponse est en français ou dans une autre langue que l'anglais, le score ne doit PAS dépasser 15/100 "
+ "et tu dois le mentionner clairement dans les concerns. "
+ "Évalue aussi la grammaire, le vocabulaire professionnel et la fluidité en anglais."
+ )
+ return (
+ "Évalue cette réponse d'entretien en la comparant au profil du candidat, au poste cible et à la question posée. "
+ "Sois bienveillant : valorise l'effort et le potentiel, pas seulement la perfection. En cas de doute, arrondis vers le haut. "
+ f"Retourne uniquement du JSON valide.{language_instruction}\n"
+ f"Résumé candidat : {json.dumps(candidate_brief, ensure_ascii=True)}\n"
+ f"Question : {json.dumps(question, ensure_ascii=True)}\n"
+ f"Réponse du candidat : {json.dumps(answer, ensure_ascii=True)}"
+ )
+
+
+def build_final_report_prompt(
+ candidate_brief: dict[str, Any], evaluations: list[dict[str, Any]], overall_metrics: dict[str, Any]
+) -> str:
+ """Build an optional prompt for final report synthesis."""
+ return (
+ "Synthétise un rapport final JSON prêt pour le recruteur à partir des résultats d'entretien. "
+ "Retourne uniquement du JSON valide et fonde chaque affirmation sur les preuves concrètes. "
+ "Le résumé doit évaluer le candidat spécifiquement par rapport au poste cible, pas de manière isolée. "
+ "Reflète à la fois les points forts et les risques par rapport aux exigences du poste. "
+ "Tous les textes (résumé, points forts, points d'attention, justifications) doivent être rédigés en français.\n"
+ f"Résumé candidat : {json.dumps(candidate_brief, ensure_ascii=True)}\n"
+ f"Évaluations : {json.dumps(evaluations, ensure_ascii=True)}\n"
+ f"Métriques : {json.dumps(overall_metrics, ensure_ascii=True)}"
+ )
diff --git a/404jobnotfound-remi-ai/agent/pyproject.toml b/404jobnotfound-remi-ai/agent/pyproject.toml
new file mode 100644
index 0000000..5c4c8c7
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/pyproject.toml
@@ -0,0 +1,13 @@
+[project]
+name = "agent"
+version = "0.1.0"
+requires-python = ">=3.11"
+dependencies = ["httpx"]
+
+[build-system]
+requires = ["setuptools>=61"]
+build-backend = "setuptools.build_meta"
+
+[tool.setuptools.packages.find]
+where = [".."]
+include = ["agent*"]
diff --git a/404jobnotfound-remi-ai/agent/report_builder.py b/404jobnotfound-remi-ai/agent/report_builder.py
new file mode 100644
index 0000000..27725ed
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/report_builder.py
@@ -0,0 +1,109 @@
+"""Final interview report builder."""
+
+from __future__ import annotations
+
+from statistics import mean
+from typing import Any
+
+
+class ReportBuilder:
+ """Aggregate evaluations into a recruiter-friendly final JSON report."""
+
+ def build_report(
+ self,
+ session_id: str,
+ candidate_brief: dict[str, Any],
+ evaluations: list[dict[str, Any]],
+ ) -> dict[str, Any]:
+ """Build the final report JSON."""
+ if not evaluations:
+ return {
+ "session_id": session_id,
+ "candidate_summary": candidate_brief,
+ "per_question_evaluations": [],
+ "overall_score": 0.0,
+ "communication_score": 0.0,
+ "technical_score": 0.0,
+ "profile_consistency_score": 0.0,
+ "job_alignment_score": 0.0,
+ "recommendation": "insufficient_data",
+ "strengths": [],
+ "concerns": ["Aucune réponse d'entretien n'a été enregistrée."],
+ "final_summary": "La session d'entretien n'a pas capturé suffisamment de réponses pour produire une recommandation de recrutement.",
+ }
+
+ overall_score = round(mean(item["normalized_score"] for item in evaluations), 1)
+ communication_score = round(mean(item["subscores"]["clarity"] for item in evaluations), 1)
+ consistency_score = round(mean(item["subscores"]["consistency_with_profile"] for item in evaluations), 1)
+ job_alignment_score = round(mean(item["subscores"]["job_alignment"] for item in evaluations), 1)
+ technical_scores = [
+ item["subscores"]["technical_accuracy"]
+ for item in evaluations
+ if item["subscores"].get("technical_accuracy") is not None
+ ]
+ technical_score = round(mean(technical_scores), 1) if technical_scores else overall_score
+
+ strengths = self._aggregate_unique(evaluations, "strengths", limit=5)
+ concerns = self._aggregate_unique(evaluations, "concerns", limit=5)
+ recommendation = self._recommendation(overall_score, concerns)
+ final_summary = self._summary(candidate_brief, overall_score, strengths, concerns, recommendation)
+
+ return {
+ "session_id": session_id,
+ "candidate_summary": candidate_brief,
+ "per_question_evaluations": evaluations,
+ "overall_score": overall_score,
+ "communication_score": communication_score,
+ "technical_score": technical_score,
+ "profile_consistency_score": consistency_score,
+ "job_alignment_score": job_alignment_score,
+ "recommendation": recommendation,
+ "strengths": strengths,
+ "concerns": concerns,
+ "final_summary": final_summary,
+ }
+
+ def _aggregate_unique(self, evaluations: list[dict[str, Any]], key: str, limit: int) -> list[str]:
+ items: list[str] = []
+ seen: set[str] = set()
+ for evaluation in evaluations:
+ for entry in evaluation.get(key, []):
+ if entry not in seen:
+ seen.add(entry)
+ items.append(entry)
+ return items[:limit]
+
+ def _recommendation(self, overall_score: float, concerns: list[str]) -> str:
+ if overall_score >= 80 and len(concerns) <= 2:
+ return "strong_yes"
+ if overall_score >= 68:
+ return "yes"
+ if overall_score >= 55:
+ return "mixed"
+ return "no"
+
+ def _summary(
+ self,
+ candidate_brief: dict[str, Any],
+ overall_score: float,
+ strengths: list[str],
+ concerns: list[str],
+ recommendation: str,
+ ) -> str:
+ name = candidate_brief.get("candidate_name") or "Le candidat"
+ title = candidate_brief.get("current_title") or "son poste actuel"
+ target_role = (candidate_brief.get("target_job") or {}).get("target_role") or "le poste cible"
+ strengths_text = "; ".join(strengths[:2]) if strengths else "peu d'éléments probants recueillis"
+ concerns_text = "; ".join(concerns[:2]) if concerns else "aucun point d'attention majeur"
+ rec_labels = {
+ "strong_yes": "Vivement recommandé",
+ "yes": "Recommandé",
+ "mixed": "Mitigé",
+ "no": "Non recommandé",
+ }
+ rec_label = rec_labels.get(recommendation, recommendation)
+ return (
+ f"{name} a passé un entretien depuis un profil de {title} pour le poste de {target_role} "
+ f"et a obtenu un score global de {overall_score}/100. "
+ f"Recommandation : {rec_label}. Points forts : {strengths_text}. Points d'attention : {concerns_text}."
+ )
diff --git a/404jobnotfound-remi-ai/agent/scorer.py b/404jobnotfound-remi-ai/agent/scorer.py
new file mode 100644
index 0000000..3821fee
--- /dev/null
+++ b/404jobnotfound-remi-ai/agent/scorer.py
@@ -0,0 +1,305 @@
+"""Interview answer scoring with LLM-as-a-judge and deterministic fallback."""
+
+from __future__ import annotations
+
+import json
+import logging
+import os
+import re
+from typing import Any
+
+import httpx
+
+from agent.prompts import ANSWER_EVALUATION_SYSTEM_PROMPT, build_answer_evaluation_prompt
+
+logger = logging.getLogger(__name__)
+
+
+def _tokenize(text: str) -> list[str]:
+ return re.findall(r"[A-Za-z\u00C0-\u024F][A-Za-z\u00C0-\u024F0-9+#.\-]{1,}", text.lower())
+
+
+def _bounded(value: float, low: float = 0.0, high: float = 100.0) -> float:
+ return max(low, min(high, value))
+
+
+class InterviewScorer:
+ """Score answers via LLM-as-a-judge with deterministic fallback."""
+
+ def __init__(
+ self,
+ api_key: str | None = None,
+ base_url: str | None = None,
+ model: str | None = None,
+ timeout: float = 15.0,
+ ) -> None:
+ self.api_key = api_key or os.getenv("OPEN_SOURCE_LLM_API_KEY")
+ self.base_url = (base_url or os.getenv("OPEN_SOURCE_LLM_BASE_URL") or "").rstrip("/")
+ self.model = model or os.getenv("OPEN_SOURCE_LLM_MODEL") or ""
+ self.timeout = timeout
+
+ @property
+ def llm_configured(self) -> bool:
+ return bool(self.api_key and self.base_url and self.model)
+
+ async def evaluate_answer(
+ self,
+ candidate_brief: dict[str, Any],
+ question: dict[str, Any],
+ transcript: str,
+ ) -> dict[str, Any]:
+ """Evaluate one answer, trying LLM first then falling back to heuristics."""
+ if self.llm_configured:
+ result = await self._evaluate_with_llm(candidate_brief, question, transcript)
+ if result:
+ result["question_id"] = question.get("id")
+ self._enforce_language_check(question, transcript, result)
+ return result
+ result = self._evaluate_deterministic(candidate_brief, question, transcript)
+ self._enforce_language_check(question, transcript, result)
+ return result
+
+ async def _evaluate_with_llm(
+ self,
+ candidate_brief: dict[str, Any],
+ question: dict[str, Any],
+ transcript: str,
+ ) -> dict[str, Any] | None:
+ payload = {
+ "model": self.model,
+ "temperature": 0.1,
+ "response_format": {"type": "json_object"},
+ "messages": [
+ {"role": "system", "content": ANSWER_EVALUATION_SYSTEM_PROMPT},
+ {"role": "user", "content": build_answer_evaluation_prompt(candidate_brief, question, transcript)},
+ ],
+ }
+ headers = {"Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json"}
+ try:
+ async with httpx.AsyncClient(timeout=self.timeout) as client:
+ response = await client.post(f"{self.base_url}/chat/completions", headers=headers, json=payload)
+ response.raise_for_status()
+ data = response.json()
+ content = data["choices"][0]["message"]["content"].strip()
+ if "```" in content:
+ parts = content.split("```")
+ inner = parts[1] if len(parts) >= 3 else parts[-1]
+ if inner.startswith(("json", "JSON")):
+ inner = inner.split("\n", 1)[1] if "\n" in inner else inner[4:]
+ content = inner.strip()
+ parsed = json.loads(content)
+ if self._valid_evaluation(parsed):
+ self._normalize_evaluation(parsed)
+ return parsed
+ logger.error("LLM evaluation invalid structure: %s", list(parsed.keys()))
+ except (httpx.HTTPError, KeyError, ValueError, TypeError) as exc:
+ logger.error("LLM answer evaluation failed: %s", exc)
+ return None
+
+ def _enforce_language_check(self, question: dict[str, Any], transcript: str, result: dict[str, Any]) -> None:
+ """For language_proficiency questions, cap the score if the answer is not in English."""
+ logger.warning("Language check: question_id=%s category=%s", question.get("id"), question.get("category"))
+ if question.get("category") != "language_proficiency":
+ return
+ answer = (transcript or "").strip().lower()
+ if not answer:
+ return
+ # Detect French by checking for common French words
+ french_markers = {"je", "le", "la", "les", "de", "du", "des", "un", "une", "est", "et", "en", "que", "qui", "dans", "pour", "avec", "sur", "mon", "mes", "son", "ses", "nous", "vous", "ils", "elle", "ce", "cette", "pas", "aussi", "mais", "donc", "car", "ai", "été", "avoir", "être", "fait", "très"}
+ words = set(re.findall(r"[a-zàâäéèêëïîôùûüÿç]+", answer))
+ french_count = len(words & french_markers)
+ french_ratio = french_count / max(len(words), 1)
+ logger.warning("Language detection: words=%d french_count=%d ratio=%.2f answer=%s", len(words), french_count, french_ratio, answer[:100])
+ if french_ratio > 0.15:
+ result["normalized_score"] = min(result.get("normalized_score", 0), 10)
+ subscores = result.get("subscores") or {}
+ for key in subscores:
+ if isinstance(subscores[key], (int, float)):
+ subscores[key] = min(subscores[key], 15)
+ penalty = "Le candidat a répondu en français alors que la question exigeait une réponse en anglais."
+ concerns = result.get("concerns") or []
+ if isinstance(concerns, list):
+ concerns.insert(0, penalty)
+ else:
+ concerns = [penalty]
+ result["concerns"] = concerns
+ result["rationale"] = penalty
+
+ def _normalize_evaluation(self, result: dict[str, Any]) -> None:
+ """Ensure LLM output matches the expected types for the frontend."""
+ # strengths/concerns must be lists of strings
+ for key in ("strengths", "concerns"):
+ val = result.get(key)
+ if isinstance(val, str):
+ result[key] = [val] if val else []
+ elif not isinstance(val, list):
+ result[key] = []
+ # normalized_score must be a rounded number
+ result["normalized_score"] = round(float(result.get("normalized_score", 0)), 1)
+ # subscores: ensure all expected keys exist with correct types
+ subscores = result.get("subscores") or {}
+ for sub_key in ("relevance", "specificity", "consistency_with_profile", "job_alignment", "clarity"):
+ val = subscores.get(sub_key)
+ subscores[sub_key] = round(float(val), 1) if isinstance(val, (int, float)) else 0.0
+ tech = subscores.get("technical_accuracy")
+ subscores["technical_accuracy"] = round(float(tech), 1) if isinstance(tech, (int, float)) else None
+ result["subscores"] = subscores
+ # rationale must be a string
+ if not isinstance(result.get("rationale"), str):
+ result["rationale"] = ""
+
+ def _valid_evaluation(self, result: Any) -> bool:
+ if not isinstance(result, dict):
+ return False
+ required = {"normalized_score", "subscores", "strengths", "concerns", "rationale"}
+ if not required.issubset(result.keys()):
+ return False
+ score = result.get("normalized_score")
+ if not isinstance(score, (int, float)) or score < 0 or score > 100:
+ return False
+ return True
+
+ # ── Deterministic fallback ──
+
+ def _evaluate_deterministic(
+ self,
+ candidate_brief: dict[str, Any],
+ question: dict[str, Any],
+ transcript: str,
+ ) -> dict[str, Any]:
+ answer = (transcript or "").strip()
+ answer_tokens = _tokenize(answer)
+ question_tokens = set(_tokenize(question.get("question", "")))
+ profile_terms = set(_tokenize(candidate_brief.get("profile_text", "")))
+ skill_terms = {token.lower() for token in candidate_brief.get("top_skills", [])}
+ target_job = candidate_brief.get("target_job") or {}
+ job_terms = set(_tokenize(target_job.get("job_text", "")))
+ target_skill_terms = {token.lower() for token in target_job.get("target_skills", [])}
+ expected_signals = {token.lower() for token in question.get("expected_signals", [])}
+ word_count = len(answer_tokens)
+
+ relevance = self._score_relevance(answer_tokens, question_tokens, expected_signals)
+ specificity = self._score_specificity(answer, word_count)
+ consistency = self._score_consistency(answer_tokens, profile_terms, skill_terms)
+ job_alignment = self._score_job_alignment(answer_tokens, job_terms, target_skill_terms)
+ clarity = self._score_clarity(answer, word_count)
+ technical = self._score_technical_accuracy(question, answer)
+
+ active_scores = [relevance, specificity, consistency, job_alignment, clarity]
+ if technical is not None:
+ active_scores.append(technical)
+ normalized_score = round(sum(active_scores) / len(active_scores), 1)
+
+ strengths: list[str] = []
+ concerns: list[str] = []
+ if relevance >= 60:
+ strengths.append("La réponse reste proche de la question posée.")
+ if specificity >= 60:
+ strengths.append("La réponse inclut des détails concrets.")
+ if consistency >= 60:
+ strengths.append("La réponse est cohérente avec le profil du candidat.")
+ if job_alignment >= 60:
+ strengths.append("La réponse montre un lien clair avec le poste cible.")
+ if clarity >= 60:
+ strengths.append("L'explication est structurée et facile à suivre.")
+
+ if relevance < 40:
+ concerns.append("La réponse ne répond que partiellement à la question.")
+ if specificity < 40:
+ concerns.append("La réponse manque d'exemples concrets.")
+ if consistency < 40:
+ concerns.append("La réponse ne fait pas de lien avec le profil.")
+ if job_alignment < 40:
+ concerns.append("La réponse n'explique pas l'adéquation avec le poste.")
+ if clarity < 40:
+ concerns.append("L'explication est trop brève ou difficile à suivre.")
+
+ if not answer:
+ concerns = ["Aucune réponse fournie."]
+ strengths = []
+
+ rationale = (
+ f"Pertinence {int(relevance)}/100, spécificité {int(specificity)}/100, "
+ f"cohérence profil {int(consistency)}/100, alignement poste {int(job_alignment)}/100, "
+ f"clarté {int(clarity)}/100"
+ + (f", précision technique {int(technical)}/100" if technical is not None else "")
+ + "."
+ )
+ subscores = {
+ "relevance": relevance,
+ "specificity": specificity,
+ "consistency_with_profile": consistency,
+ "job_alignment": job_alignment,
+ "clarity": clarity,
+ "technical_accuracy": technical,
+ }
+ return {
+ "question_id": question.get("id"),
+ "normalized_score": normalized_score,
+ "subscores": subscores,
+ "strengths": strengths[:3],
+ "concerns": concerns[:3],
+ "rationale": rationale,
+ }
+
+ def _score_relevance(self, answer_tokens: list[str], question_tokens: set[str], expected_signals: set[str]) -> float:
+ if not answer_tokens:
+ return 0.0
+ overlap = len(set(answer_tokens) & question_tokens)
+ signal_overlap = len(set(answer_tokens) & expected_signals)
+ raw = 10 + overlap * 8 + signal_overlap * 12
+ return round(_bounded(raw))
+
+ def _score_specificity(self, answer: str, word_count: int) -> float:
+ if not answer.strip():
+ return 0.0
+ if word_count < 5:
+ return 5.0
+ digits = len(re.findall(r"\d", answer))
+ action_words = len(re.findall(
+ r"\b(construit|dirigé|amélioré|conçu|livré|réduit|augmenté|migré|optimisé|développé|implémenté|géré|créé|built|led|improved|designed|delivered|reduced|increased|migrated|optimized)\b",
+ answer.lower(),
+ ))
+ raw = 10 + min(word_count, 150) * 0.4 + digits * 4 + action_words * 8
+ return round(_bounded(raw))
+
+ def _score_consistency(self, answer_tokens: list[str], profile_terms: set[str], skill_terms: set[str]) -> float:
+ if not answer_tokens:
+ return 0.0
+ profile_overlap = len(set(answer_tokens) & profile_terms)
+ skill_overlap = len(set(answer_tokens) & skill_terms)
+ raw = 8 + profile_overlap * 5 + skill_overlap * 10
+ return round(_bounded(raw))
+
+ def _score_job_alignment(self, answer_tokens: list[str], job_terms: set[str], target_skill_terms: set[str]) -> float:
+ if not answer_tokens:
+ return 0.0
+ job_overlap = len(set(answer_tokens) & job_terms)
+ target_skill_overlap = len(set(answer_tokens) & target_skill_terms)
+ raw = 8 + job_overlap * 5 + target_skill_overlap * 12
+ return round(_bounded(raw))
+
+ def _score_clarity(self, answer: str, word_count: int) -> float:
+ if not answer.strip():
+ return 0.0
+ if word_count < 5:
+ return 5.0
+ sentence_count = max(1, len(re.findall(r"[.!?]+", answer)))
+ avg_sentence_length = word_count / sentence_count
+ length_component = 70 if 35 <= word_count <= 180 else max(15, 80 - abs(word_count - 90) * 0.6)
+ sentence_component = max(20, 85 - abs(avg_sentence_length - 18) * 2)
+ return round(_bounded((length_component + sentence_component) / 2))
+
+ def _score_technical_accuracy(self, question: dict[str, Any], answer: str) -> float | None:
+ category = str(question.get("category", ""))
+ if category not in {"skill_validation", "situational_or_technical"}:
+ return None
+ answer_tokens = set(_tokenize(answer))
+ technical_terms = {
+ "api", "system", "architecture", "testing", "deployment", "debugging",
+ "database", "performance", "security", "scalability", "tradeoff", "monitoring",
+ "données", "modèle", "algorithme", "pipeline", "infrastructure", "serveur",
+ }
+ matches = len(answer_tokens & technical_terms)
+ raw = 10 + matches * 10 + min(len(answer_tokens), 80) * 0.3
+ return round(_bounded(raw))
diff --git a/404jobnotfound-remi-ai/app.json b/404jobnotfound-remi-ai/app.json
new file mode 100644
index 0000000..b9e0fdc
--- /dev/null
+++ b/404jobnotfound-remi-ai/app.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://github.com/hrflow/AppStore-public/schemas/app.schema.json",
+ "name": "Remi AI",
+ "description": "An HRFlow hackathon app that fetches a candidate profile and a job, runs a 5-question AI interview, and produces a final report with both interview scoring and HRFlow profile-job matching.",
+ "credentials": {
+ "source_keys": [
+ "da13ffd3b3fe72839848d91144b4e39d5cba2819"
+ ],
+ "board_keys": [
+ "c99d70c3a062c2f99ca78fce23b89fb4f53119ef"
+ ]
+ },
+ "settings": {
+ "team_name": "404-job-not-found",
+ "theme_color": "#4F46E5"
+ }
+}
diff --git a/404jobnotfound-remi-ai/assets/.gitkeep b/404jobnotfound-remi-ai/assets/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/404jobnotfound-remi-ai/assets/preview.png b/404jobnotfound-remi-ai/assets/preview.png
new file mode 100644
index 0000000..6f8e3a5
Binary files /dev/null and b/404jobnotfound-remi-ai/assets/preview.png differ
diff --git a/404jobnotfound-remi-ai/backend/.gitignore b/404jobnotfound-remi-ai/backend/.gitignore
new file mode 100644
index 0000000..47fe0fa
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/.gitignore
@@ -0,0 +1,4 @@
+.venv/
+__pycache__/
+.env
+*.pyc
diff --git a/404jobnotfound-remi-ai/backend/__init__.py b/404jobnotfound-remi-ai/backend/__init__.py
new file mode 100644
index 0000000..3c8f508
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/__init__.py
@@ -0,0 +1 @@
+"""Backend package for the AI interview MVP."""
diff --git a/404jobnotfound-remi-ai/backend/database.py b/404jobnotfound-remi-ai/backend/database.py
new file mode 100644
index 0000000..23dd03e
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/database.py
@@ -0,0 +1,80 @@
+"""SQLite persistence for completed interview reports."""
+
+from __future__ import annotations
+
+import json
+import sqlite3
+from contextlib import contextmanager
+from datetime import UTC, datetime
+from pathlib import Path
+from typing import Any, Generator
+
+DB_PATH = Path(__file__).parent / "interviews.db"
+
+
+@contextmanager
+def get_conn() -> Generator[sqlite3.Connection, None, None]:
+ conn = sqlite3.connect(DB_PATH)
+ conn.row_factory = sqlite3.Row
+ try:
+ yield conn
+ conn.commit()
+ finally:
+ conn.close()
+
+
+def init_db() -> None:
+ """Create the interviews table if it does not exist."""
+ with get_conn() as conn:
+ conn.execute("""
+ CREATE TABLE IF NOT EXISTS interviews (
+ session_id TEXT PRIMARY KEY,
+ candidate_name TEXT NOT NULL,
+ completed_at TEXT NOT NULL,
+ overall_score REAL NOT NULL,
+ recommendation TEXT NOT NULL,
+ report_json TEXT NOT NULL
+ )
+ """)
+
+
+def save_report(
+ session_id: str,
+ candidate_name: str,
+ overall_score: float,
+ recommendation: str,
+ report: dict[str, Any],
+) -> None:
+ """Persist a completed interview report (upsert by session_id)."""
+ completed_at = datetime.now(UTC).isoformat()
+ with get_conn() as conn:
+ conn.execute(
+ """
+ INSERT OR REPLACE INTO interviews
+ (session_id, candidate_name, completed_at, overall_score, recommendation, report_json)
+ VALUES (?, ?, ?, ?, ?, ?)
+ """,
+ (session_id, candidate_name, completed_at, overall_score, recommendation, json.dumps(report)),
+ )
+
+
+def list_interviews() -> list[dict[str, Any]]:
+ """Return all interviews ordered by most recent first (without full report JSON)."""
+ with get_conn() as conn:
+ rows = conn.execute(
+ "SELECT session_id, candidate_name, completed_at, overall_score, recommendation "
+ "FROM interviews ORDER BY completed_at DESC"
+ ).fetchall()
+ return [dict(row) for row in rows]
+
+
+def get_interview_report(session_id: str) -> dict[str, Any] | None:
+ """Return the full report JSON for a given session, or None if not found."""
+ with get_conn() as conn:
+ row = conn.execute(
+ "SELECT report_json FROM interviews WHERE session_id = ?",
+ (session_id,),
+ ).fetchone()
+ if not row:
+ return None
+ return json.loads(row["report_json"])
diff --git a/404jobnotfound-remi-ai/backend/gradium_tts.py b/404jobnotfound-remi-ai/backend/gradium_tts.py
new file mode 100644
index 0000000..40ccc17
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/gradium_tts.py
@@ -0,0 +1,36 @@
+"""Simple Gradium text-to-speech helper with null-safe fallback."""
+
+from __future__ import annotations
+
+import logging
+import os
+import ssl
+
+import aiohttp.connector
+import certifi
+from gradium import GradiumClient, TTSSetup
+
+# On macOS with python.org builds, the system SSL certs are not linked.
+# aiohttp creates its verified SSL context at module import time as a constant
+# (_SSL_CONTEXT_VERIFIED). We replace it with one that uses certifi's CA bundle.
+_ssl_context = ssl.create_default_context(cafile=certifi.where())
+aiohttp.connector._SSL_CONTEXT_VERIFIED = _ssl_context
+
+logger = logging.getLogger(__name__)
+
+
+async def text_to_speech(text: str, voice_id: str | None = None) -> bytes | None:
+ """Generate speech audio bytes, or return None when unavailable."""
+ api_key = os.getenv("GRADIUM_API_KEY")
+ resolved_voice_id = voice_id or os.getenv("GRADIUM_VOICE_ID")
+ if not api_key or not resolved_voice_id or not text.strip():
+ return None
+
+ try:
+ client = GradiumClient(api_key=api_key)
+ setup = TTSSetup(voice_id=resolved_voice_id, output_format="wav")
+ result = await client.tts(setup, text)
+ return result.raw_data
+ except Exception:
+ logger.exception("Gradium TTS failed")
+ return None
diff --git a/404jobnotfound-remi-ai/backend/hrflow_client.py b/404jobnotfound-remi-ai/backend/hrflow_client.py
new file mode 100644
index 0000000..5cd6c02
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/hrflow_client.py
@@ -0,0 +1,471 @@
+"""HRFlow API wrapper with graceful degraded local helpers."""
+
+from __future__ import annotations
+
+import logging
+import os
+from typing import Any
+
+import httpx
+
+
+logger = logging.getLogger(__name__)
+
+
+class HRFlowError(Exception):
+ """Base error for HRFlow wrapper failures."""
+
+
+class HRFlowConfigurationError(HRFlowError):
+ """Raised when a remote HRFlow call requires missing configuration."""
+
+
+class HRFlowRequestError(HRFlowError):
+ """Raised when the HRFlow API returns an error or invalid payload."""
+
+
+def _safe_list(value: Any) -> list[Any]:
+ if isinstance(value, list):
+ return value
+ if value is None:
+ return []
+ return [value]
+
+
+def _safe_dict(value: Any) -> dict[str, Any]:
+ return value if isinstance(value, dict) else {}
+
+
+def _clean_text(value: Any) -> str:
+ if value is None:
+ return ""
+ if isinstance(value, str):
+ return value.strip()
+ return str(value).strip()
+
+
+def _unwrap_hrflow_payload(payload: dict[str, Any]) -> dict[str, Any]:
+ if not isinstance(payload, dict):
+ return {}
+ nested_data = payload.get("data")
+ if isinstance(nested_data, dict):
+ return nested_data
+ return payload
+
+
+class HRFlowClient:
+ """Small HRFlow v1 client focused on profile-oriented MVP needs."""
+
+ def __init__(
+ self,
+ api_key: str | None = None,
+ user_email: str | None = None,
+ base_url: str | None = None,
+ source_key: str | None = None,
+ board_key: str | None = None,
+ timeout: float = 20.0,
+ ) -> None:
+ self.api_key = api_key or os.getenv("HRFLOW_API_KEY")
+ self.user_email = user_email or os.getenv("HRFLOW_USER_EMAIL")
+ self.base_url = (base_url or os.getenv("HRFLOW_BASE_URL") or "https://api.hrflow.ai/v1").rstrip("/")
+ self.source_key = source_key or os.getenv("HRFLOW_SOURCE_KEY")
+ self.board_key = board_key or os.getenv("HRFLOW_BOARD_KEY")
+ self.timeout = timeout
+
+ @property
+ def configured(self) -> bool:
+ """Return whether remote HRFlow calls can be made."""
+ return bool(self.api_key)
+
+ @property
+ def headers(self) -> dict[str, str]:
+ """Build shared headers for all HRFlow requests."""
+ headers = {"Content-Type": "application/json"}
+ if self.api_key:
+ headers["X-API-KEY"] = self.api_key
+ if self.user_email:
+ headers["X-USER-EMAIL"] = self.user_email
+ return headers
+
+ async def _request(
+ self,
+ method: str,
+ path: str,
+ payload: dict[str, Any] | None = None,
+ params: dict[str, Any] | None = None,
+ ) -> dict[str, Any]:
+ if not self.api_key:
+ raise HRFlowConfigurationError("HRFLOW_API_KEY is not configured.")
+
+ url = f"{self.base_url}/{path.lstrip('/')}"
+ try:
+ async with httpx.AsyncClient(timeout=self.timeout) as client:
+ response = await client.request(method, url, headers=self.headers, json=payload, params=params)
+ response.raise_for_status()
+ except httpx.HTTPStatusError as exc:
+ detail = exc.response.text.strip()
+ raise HRFlowRequestError(f"HRFlow API error {exc.response.status_code}: {detail}") from exc
+ except httpx.HTTPError as exc:
+ raise HRFlowRequestError(f"HRFlow request failed: {exc}") from exc
+
+ try:
+ data = response.json()
+ except ValueError as exc:
+ raise HRFlowRequestError("HRFlow returned non-JSON content.") from exc
+
+ if not isinstance(data, dict):
+ raise HRFlowRequestError("HRFlow returned an unexpected payload shape.")
+ return data
+
+ def validate_profile(self, profile: dict[str, Any]) -> dict[str, Any]:
+ """Validate a HRFlow-like profile and return normalized validation metadata."""
+ normalized = self.normalize_profile(profile)
+ errors: list[str] = []
+ warnings: list[str] = []
+
+ if not normalized.get("profile_key"):
+ warnings.append("Profile key is missing.")
+ if not normalized.get("name"):
+ warnings.append("Candidate name is missing.")
+ if not normalized.get("top_skills"):
+ warnings.append("No skills detected in the profile.")
+ if not normalized.get("profile_text"):
+ errors.append("The profile does not contain enough readable content.")
+
+ return {
+ "is_valid": len(errors) == 0,
+ "errors": errors,
+ "warnings": warnings,
+ "normalized_profile": normalized,
+ }
+
+ def normalize_job(self, job: dict[str, Any]) -> dict[str, Any]:
+ """Extract a compact, stable structure from a raw HRFlow-like job object."""
+ job = _unwrap_hrflow_payload(_safe_dict(job))
+ info = _safe_dict(job.get("info"))
+ summary = _safe_dict(job.get("summary"))
+ metadata = _safe_dict(job.get("metadata"))
+ board = _safe_dict(job.get("board"))
+ location_dict = _safe_dict(job.get("location"))
+ skills = _safe_list(job.get("skills"))
+ sections = _safe_list(job.get("sections"))
+ requirements = _safe_list(job.get("requirements"))
+
+ job_key = (
+ _clean_text(job.get("key"))
+ or _clean_text(job.get("id"))
+ or _clean_text(metadata.get("reference"))
+ or _clean_text(job.get("reference"))
+ )
+ title = (
+ _clean_text(info.get("title"))
+ or _clean_text(job.get("name"))
+ or _clean_text(job.get("title"))
+ or "Unknown Role"
+ )
+ company = (
+ _clean_text(info.get("company"))
+ or _clean_text(job.get("company"))
+ or _clean_text(board.get("name"))
+ or _clean_text(metadata.get("company"))
+ )
+ location = (
+ _clean_text(location_dict.get("text"))
+ or
+ _clean_text(info.get("location"))
+ or _clean_text(job.get("location"))
+ or _clean_text(metadata.get("location"))
+ )
+ employment_type = _clean_text(info.get("contract_type") or job.get("contract_type") or job.get("type"))
+
+ skill_names: list[str] = []
+ for skill in skills:
+ skill_dict = _safe_dict(skill)
+ name_candidate = _clean_text(
+ skill_dict.get("name") or skill_dict.get("label") or skill_dict.get("value") or skill
+ )
+ if name_candidate and name_candidate.lower() not in {item.lower() for item in skill_names}:
+ skill_names.append(name_candidate)
+
+ requirement_texts: list[str] = []
+ for item in requirements:
+ item_dict = _safe_dict(item)
+ text = _clean_text(
+ item_dict.get("text")
+ or item_dict.get("description")
+ or item_dict.get("value")
+ or item_dict.get("summary")
+ or item_dict.get("title")
+ or item
+ )
+ if text and text.lower() not in {entry.lower() for entry in requirement_texts}:
+ requirement_texts.append(text)
+
+ description_text = _clean_text(
+ summary.get("text")
+ or job.get("description")
+ or job.get("content")
+ or job.get("body")
+ or " ".join(
+ _clean_text(_safe_dict(section).get("description") or _safe_dict(section).get("text"))
+ for section in sections
+ )
+ )
+ combined_text = " ".join(
+ part
+ for part in [
+ title,
+ company,
+ location,
+ employment_type,
+ description_text,
+ " ".join(skill_names),
+ " ".join(requirement_texts[:8]),
+ ]
+ if part
+ ).strip()
+
+ return {
+ "job_key": job_key or None,
+ "job_reference": _clean_text(job.get("reference")) or None,
+ "board_key": _clean_text(board.get("key")) or None,
+ "title": title,
+ "company": company or None,
+ "location": location or None,
+ "employment_type": employment_type or None,
+ "top_skills": skill_names[:10],
+ "requirements": requirement_texts[:10],
+ "description_text": description_text,
+ "job_text": combined_text,
+ }
+
+ def normalize_profile(self, profile: dict[str, Any]) -> dict[str, Any]:
+ """Extract a compact, stable structure from a raw HRFlow profile object."""
+ profile = _unwrap_hrflow_payload(_safe_dict(profile))
+ info = _safe_dict(profile.get("info"))
+ contact = _safe_dict(profile.get("contact"))
+ summary = _safe_dict(profile.get("summary"))
+ experiences = _safe_list(profile.get("experiences") or profile.get("experience"))
+ education = _safe_list(profile.get("education"))
+ certifications = _safe_list(profile.get("certifications") or profile.get("certificates"))
+ skills = _safe_list(profile.get("skills"))
+ languages = _safe_list(profile.get("languages"))
+ metadata = _safe_dict(profile.get("metadata"))
+
+ name = (
+ _clean_text(info.get("full_name"))
+ or _clean_text(contact.get("full_name"))
+ or _clean_text(profile.get("name"))
+ or "Unknown Candidate"
+ )
+ title = (
+ _clean_text(info.get("title"))
+ or _clean_text(summary.get("title"))
+ or _clean_text(profile.get("headline"))
+ )
+ profile_key = (
+ _clean_text(profile.get("key"))
+ or _clean_text(profile.get("id"))
+ or _clean_text(metadata.get("reference"))
+ or _clean_text(profile.get("reference"))
+ )
+
+ skill_names: list[str] = []
+ for skill in skills:
+ if isinstance(skill, dict):
+ name_candidate = _clean_text(
+ skill.get("name") or skill.get("label") or skill.get("value") or skill.get("skill")
+ )
+ else:
+ name_candidate = _clean_text(skill)
+ if name_candidate and name_candidate.lower() not in {item.lower() for item in skill_names}:
+ skill_names.append(name_candidate)
+
+ experience_summaries: list[dict[str, Any]] = []
+ total_years = 0.0
+ for exp in experiences:
+ exp_dict = _safe_dict(exp)
+ duration_years = exp_dict.get("duration_years") or exp_dict.get("years")
+ try:
+ years_value = float(duration_years) if duration_years is not None else 0.0
+ except (TypeError, ValueError):
+ years_value = 0.0
+ total_years += max(years_value, 0.0)
+ experience_summaries.append(
+ {
+ "title": _clean_text(exp_dict.get("title") or exp_dict.get("position")),
+ "company": _clean_text(exp_dict.get("company") or exp_dict.get("organization")),
+ "summary": _clean_text(exp_dict.get("summary") or exp_dict.get("description")),
+ "duration_years": years_value,
+ }
+ )
+
+ cert_names: list[str] = []
+ for cert in certifications + education:
+ cert_dict = _safe_dict(cert)
+ cert_name = _clean_text(cert_dict.get("name") or cert_dict.get("title") or cert_dict.get("degree"))
+ if cert_name:
+ cert_names.append(cert_name)
+
+ text_parts = [
+ name,
+ title,
+ _clean_text(summary.get("text") or profile.get("summary") or profile.get("bio")),
+ " ".join(skill_names),
+ ]
+ for exp in experience_summaries[:4]:
+ text_parts.append(" ".join(filter(None, [exp["title"], exp["company"], exp["summary"]])))
+ profile_text = " ".join(part for part in text_parts if part).strip()
+
+ language_values: list[str] = []
+ for item in languages:
+ if isinstance(item, dict):
+ language_value = _clean_text(item.get("name") or item.get("language") or item.get("value"))
+ else:
+ language_value = _clean_text(item)
+ if language_value:
+ language_values.append(language_value)
+
+ return {
+ "profile_key": profile_key or None,
+ "name": name,
+ "title": title or None,
+ "years_of_experience": round(total_years, 1),
+ "top_skills": skill_names[:10],
+ "experiences": experience_summaries,
+ "certifications": cert_names[:8],
+ "languages": language_values,
+ "profile_text": profile_text,
+ "raw_profile_excerpt": {
+ "location": _clean_text(contact.get("location") or info.get("location") or profile.get("location")) or None,
+ "email": _clean_text(contact.get("email")) or None,
+ },
+ }
+
+ async def get_profile(self, source_key: str, profile_key: str) -> dict[str, Any]:
+ """Get a profile indexed in a HRFlow source."""
+ path = f"profiles/{source_key}/{profile_key}"
+ return await self._request("GET", path)
+
+ async def ask_profile(self, source_key: str, profile_key: str, question: str) -> dict[str, Any]:
+ """Ask a question against a profile indexed in a HRFlow source."""
+ path = f"profile_parsing/indexing/{source_key}/profiles/{profile_key}/searching"
+ return await self._request("POST", path, {"query": question})
+
+ async def list_jobs(
+ self,
+ board_key: str | None = None,
+ limit: int = 12,
+ page: int = 1,
+ ) -> dict[str, Any]:
+ """List jobs from a HRflow board via the jobs/searching endpoint."""
+ resolved_board_key = board_key or self.board_key
+ if not resolved_board_key:
+ raise HRFlowConfigurationError("board_key is required for listing jobs.")
+ params: dict[str, Any] = {
+ "board_keys": f'["{resolved_board_key}"]',
+ "limit": limit,
+ "page": page,
+ "order_by": "desc",
+ "sort_by": "updated_at",
+ }
+ return await self._request("GET", "jobs/searching", params=params)
+
+ async def parse_cv_file(
+ self,
+ file_bytes: bytes,
+ filename: str,
+ source_key: str | None = None,
+ ) -> dict[str, Any]:
+ """Parse a CV/resume file via HRFlow Profile Parsing API (sync mode)."""
+ if not self.api_key:
+ raise HRFlowConfigurationError("HRFLOW_API_KEY is not configured.")
+ resolved_source_key = source_key or self.source_key
+ if not resolved_source_key:
+ raise HRFlowConfigurationError("source_key is required for CV parsing.")
+
+ url = f"{self.base_url}/profile/parsing/file"
+ headers: dict[str, str] = {"X-API-KEY": self.api_key}
+ if self.user_email:
+ headers["X-USER-EMAIL"] = self.user_email
+
+ files = {"file": (filename, file_bytes, "application/octet-stream")}
+ data = {"source_key": resolved_source_key, "sync_parsing": "1"}
+
+ try:
+ async with httpx.AsyncClient(timeout=60.0) as client:
+ response = await client.post(url, headers=headers, files=files, data=data)
+ response.raise_for_status()
+ except httpx.HTTPStatusError as exc:
+ detail = exc.response.text.strip()
+ raise HRFlowRequestError(f"HRFlow CV parsing error {exc.response.status_code}: {detail}") from exc
+ except httpx.HTTPError as exc:
+ raise HRFlowRequestError(f"HRFlow CV parsing request failed: {exc}") from exc
+
+ try:
+ return response.json()
+ except ValueError as exc:
+ raise HRFlowRequestError("HRFlow CV parsing returned non-JSON content.") from exc
+
+ async def parse_text(self, text: str, text_language: str = "en") -> dict[str, Any]:
+ """Parse raw text via HRFlow Text API."""
+ payload = {"text": text, "language": text_language}
+ return await self._request("POST", "text/parsing", payload)
+
+ async def rate_profile(self, payload: dict[str, Any]) -> dict[str, Any]:
+ """Rate a profile or profile/job signal payload via HRFlow Signal API."""
+ return await self._request("POST", "profile_rating", payload)
+
+ async def grade_profile_for_job(
+ self,
+ source_key: str | None,
+ board_key: str | None,
+ profile_key: str | None = None,
+ job_key: str | None = None,
+ profile_reference: str | None = None,
+ job_reference: str | None = None,
+ ) -> dict[str, Any] | None:
+ """Grade a profile indexed in a source against a job indexed in a board."""
+ resolved_source_key = source_key or self.source_key
+ resolved_board_key = board_key or self.board_key
+ if not resolved_source_key or not resolved_board_key:
+ logger.info(
+ "HRFlow grading skipped: missing source or board key",
+ extra={"source_key": resolved_source_key, "board_key": resolved_board_key},
+ )
+ return None
+ if not self.api_key or not self.user_email:
+ logger.info(
+ "HRFlow grading skipped: missing API credentials",
+ extra={"has_api_key": bool(self.api_key), "has_user_email": bool(self.user_email)},
+ )
+ return None
+ if not (profile_key or profile_reference):
+ logger.info("HRFlow grading skipped: missing profile identifier")
+ return None
+ if not (job_key or job_reference):
+ logger.info("HRFlow grading skipped: missing job identifier")
+ return None
+
+ params: dict[str, Any] = {
+ "algorithm_key": "grader-hrflow-profiles-titan",
+ "source_key": resolved_source_key,
+ "board_key": resolved_board_key,
+ }
+ if profile_key:
+ params["profile_key"] = profile_key
+ if profile_reference:
+ params["profile_reference"] = profile_reference
+ if job_key:
+ params["job_key"] = job_key
+ if job_reference:
+ params["job_reference"] = job_reference
+
+ try:
+ logger.info("HRFlow grading request params: %s", params)
+ response = await self._request("GET", "profile/grading", params=params)
+ logger.info("HRFlow grading response: %s", response)
+ return response
+ except HRFlowError as exc:
+ logger.exception("HRFlow grading failed: %s", exc)
+ return None
diff --git a/404jobnotfound-remi-ai/backend/interviews.db b/404jobnotfound-remi-ai/backend/interviews.db
new file mode 100644
index 0000000..42608dc
Binary files /dev/null and b/404jobnotfound-remi-ai/backend/interviews.db differ
diff --git a/404jobnotfound-remi-ai/backend/main.py b/404jobnotfound-remi-ai/backend/main.py
new file mode 100644
index 0000000..2308e2c
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/main.py
@@ -0,0 +1,698 @@
+"""FastAPI app for the AI interview MVP backend."""
+
+from __future__ import annotations
+
+import asyncio
+import base64
+from contextlib import asynccontextmanager
+from typing import Any
+import logging
+
+from fastapi import FastAPI, HTTPException, Path, UploadFile, File, Form
+from fastapi.middleware.cors import CORSMiddleware
+from pydantic import BaseModel, ConfigDict, Field
+
+from agent.interview_agent import InterviewAgent, build_candidate_brief
+from agent.report_builder import ReportBuilder
+from agent.scorer import InterviewScorer
+from backend.database import get_interview_report, init_db, list_interviews, save_report
+from backend.gradium_tts import text_to_speech
+from backend.voxtral_stt import speech_to_text as voxtral_stt
+from backend.hrflow_client import HRFlowClient
+from backend.session_store import SessionStore
+
+try:
+ from dotenv import load_dotenv
+except ModuleNotFoundError: # pragma: no cover - optional convenience import
+ def load_dotenv() -> bool:
+ return False
+
+
+logger = logging.getLogger(__name__)
+
+load_dotenv()
+
+session_store = SessionStore()
+hrflow_client = HRFlowClient()
+interview_agent = InterviewAgent()
+scorer = InterviewScorer()
+report_builder = ReportBuilder()
+
+
+class SessionCreateResponse(BaseModel):
+ """Response for session creation."""
+
+ session_id: str = Field(
+ description="Server-generated session identifier used in all subsequent interview calls.",
+ examples=["d7f6c4d1-5f7e-4b9d-a9a1-2ddf5ff5f123"],
+ )
+ normalized_profile: dict[str, Any] = Field(
+ description="Compact normalized version of the incoming HRFlow profile. This is the cleaned structure used by the backend."
+ )
+ candidate_brief: dict[str, Any] = Field(
+ description="Recruiter-friendly candidate summary derived from the normalized profile and used to generate interview questions."
+ )
+ normalized_job_offer: dict[str, Any] | None = Field(
+ default=None,
+ description="Normalized target job payload used to tailor questions and fit evaluation. Null when no job was provided."
+ )
+
+
+class StartInterviewResponse(BaseModel):
+ """Response for interview start."""
+
+ generated_questions: list[dict[str, Any]] = Field(
+ description="Exactly 3 generated interview questions for the session, in interview order."
+ )
+ current_question: dict[str, Any] | None = Field(
+ description="The first unanswered question. On start, this is the first question in the interview."
+ )
+ audio_base64: str | None = Field(
+ default=None,
+ description="Optional base64-encoded audio for the current question when Gradium is configured.",
+ )
+
+
+class AnswerRequest(BaseModel):
+ """Answer submission payload."""
+
+ question_id: str = Field(
+ description="Identifier of the question being answered. Must match one of the generated question ids for the session.",
+ examples=["q1"],
+ )
+ transcript: str = Field(
+ default="",
+ description="Text transcript of the candidate's answer. This is the primary input used by the deterministic scorer.",
+ examples=["I led the backend rewrite, reduced API latency by 30%, and coordinated rollout with product and infra."],
+ )
+ audio_base64: str | None = Field(
+ default=None,
+ description="Optional base64-encoded raw audio payload. Included for future use; current MVP scoring uses the transcript.",
+ )
+
+
+class AnswerResponse(BaseModel):
+ """Answer submission response."""
+
+ evaluation: dict[str, Any] = Field(
+ description="Per-question evaluation including normalized score, subscores, strengths, concerns, and rationale."
+ )
+ next_question: dict[str, Any] | None = Field(
+ description="The next unanswered question in the interview flow, or null when all 3 questions are completed."
+ )
+ interview_completed: bool = Field(
+ description="True when the submitted answer completes the 3-question interview."
+ )
+
+
+class GazeRequest(BaseModel):
+ """Client-side gaze tracking summary."""
+
+ events: list[dict[str, Any]] = Field(default_factory=list)
+ total_look_away_ms: int = Field(default=0)
+ look_away_count: int = Field(default=0)
+
+
+class TTSRequest(BaseModel):
+ """Text-to-speech request payload."""
+
+ text: str = Field(
+ description="Plain text to synthesize into speech.",
+ examples=["Can you walk me through your background and how it led you to backend engineering?"],
+ )
+ voice_id: str | None = Field(
+ default=None,
+ description="Gradium voice ID to use. Falls back to GRADIUM_VOICE_ID env var if omitted.",
+ )
+
+
+class TTSResponse(BaseModel):
+ """Text-to-speech response payload."""
+
+ audio_base64: str | None = Field(
+ description="Base64-encoded audio bytes when synthesis succeeds; otherwise null."
+ )
+ available: bool = Field(
+ description="Whether TTS generation succeeded for this request."
+ )
+
+
+class STTResponse(BaseModel):
+ """Speech-to-text response payload."""
+
+ text: str | None = Field(description="Transcribed text, or null if transcription failed.")
+ available: bool = Field(description="Whether transcription succeeded.")
+
+
+class ProfilePayload(BaseModel):
+ """Accept arbitrary HRFlow profile JSON."""
+
+ model_config = ConfigDict(extra="allow")
+
+
+class JobOfferPayload(BaseModel):
+ """Accept arbitrary HRFlow job JSON."""
+
+ model_config = ConfigDict(extra="allow")
+
+
+class SessionCreateRequest(BaseModel):
+ """Session creation payload with profile and optional job offer."""
+
+ profile: ProfilePayload = Field(
+ description="The HRFlow Profile JSON object for the candidate being interviewed."
+ )
+ job_offer: JobOfferPayload | None = Field(
+ default=None,
+ description="Optional HRFlow-style job offer JSON. When provided, questions and scoring are tailored to both the profile and the job.",
+ )
+
+
+class HealthResponse(BaseModel):
+ """Healthcheck response payload."""
+
+ status: str = Field(description="Service health status.", examples=["ok"])
+
+
+@asynccontextmanager
+async def lifespan(_: FastAPI):
+ init_db()
+ yield
+
+
+app = FastAPI(
+ title="AI Interview MVP Backend",
+ version="0.1.0",
+ summary="Hackathon-ready backend for profile-driven AI screening interviews.",
+ description=(
+ "This API turns a HRFlow Profile JSON object into a short AI interview workflow.\n\n"
+ "Typical flow:\n"
+ "1. `POST /sessions` with a HRFlow profile payload.\n"
+ "2. `POST /sessions/{session_id}/start` to generate exactly 3 questions.\n"
+ "3. `POST /sessions/{session_id}/answer` once per question.\n"
+ "4. `GET /sessions/{session_id}/report` to retrieve the final report.\n\n"
+ "External services are optional. If HRFlow, an LLM, or Gradium are not configured, "
+ "the API falls back to deterministic local behavior when possible."
+ ),
+ lifespan=lifespan,
+)
+app.add_middleware(
+ CORSMiddleware,
+ allow_origins=["http://localhost:3000", "http://127.0.0.1:3000"],
+ allow_credentials=True,
+ allow_methods=["*"],
+ allow_headers=["*"],
+)
+
+
+@app.get(
+ "/health",
+ response_model=HealthResponse,
+ summary="Health check",
+ description="Simple liveness endpoint to confirm that the FastAPI service is up and responding.",
+ tags=["System"],
+)
+async def health() -> HealthResponse:
+ """Return service health status."""
+ return HealthResponse(status="ok")
+
+
+@app.post(
+ "/sessions",
+ response_model=SessionCreateResponse,
+ summary="Create interview session",
+ description=(
+ "Creates a new interview session from a HRFlow Profile JSON object.\n\n"
+ "What this endpoint does:\n"
+ "- validates the incoming profile shape\n"
+ "- normalizes profile data into a stable backend structure\n"
+ "- normalizes the optional target job offer\n"
+ "- builds a compact candidate brief used for job-aware question generation\n"
+ "- returns a `session_id` for the next steps\n\n"
+ "This endpoint does not generate interview questions yet. Call `/sessions/{session_id}/start` next."
+ ),
+ tags=["Sessions"],
+)
+async def create_session(payload: SessionCreateRequest) -> SessionCreateResponse:
+ """Create an interview session from a HRFlow Profile payload and optional job offer."""
+ raw_profile = payload.profile.model_dump()
+ raw_job_offer = payload.job_offer.model_dump() if payload.job_offer is not None else None
+ validation = hrflow_client.validate_profile(raw_profile)
+ if not validation["normalized_profile"].get("profile_text"):
+ raise HTTPException(status_code=400, detail="Profile payload is missing usable interview context.")
+
+ normalized_profile = validation["normalized_profile"]
+ normalized_job_offer = hrflow_client.normalize_job(raw_job_offer) if raw_job_offer else None
+ candidate_brief = build_candidate_brief(normalized_profile, normalized_job_offer)
+ session = session_store.create_session(
+ raw_profile,
+ raw_job_offer,
+ normalized_profile,
+ normalized_job_offer,
+ candidate_brief,
+ )
+ return SessionCreateResponse(
+ session_id=session.session_id,
+ normalized_profile=session.normalized_profile,
+ candidate_brief=session.candidate_brief,
+ normalized_job_offer=session.normalized_job_offer,
+ )
+
+
+@app.post(
+ "/sessions/{session_id}/start",
+ response_model=StartInterviewResponse,
+ summary="Start interview and generate questions",
+ description=(
+ "Generates the interview questions for an existing session and returns the first current question.\n\n"
+ "Behavior:\n"
+ "- generates exactly 3 profile-driven questions on first call\n"
+ "- reuses the same question set on later calls for the same session\n"
+ "- optionally includes base64 TTS audio for the current question when Gradium is configured"
+ ),
+ tags=["Sessions"],
+)
+async def start_session(
+ session_id: str = Path(
+ ...,
+ description="Session identifier returned by `POST /sessions`.",
+ examples=["d7f6c4d1-5f7e-4b9d-a9a1-2ddf5ff5f123"],
+ )
+) -> StartInterviewResponse:
+ """Generate exactly five questions and return the first question."""
+ session = session_store.get_session(session_id)
+ if not session:
+ raise HTTPException(status_code=404, detail="Session not found.")
+
+ questions = session.generated_questions
+ if not questions:
+ questions = await interview_agent.generate_questions(session.candidate_brief)
+ if len(questions) != 3:
+ raise HTTPException(status_code=500, detail="Interview question generation failed.")
+ updated = session_store.update_questions(session_id, questions, status="in_progress")
+ if not updated:
+ raise HTTPException(status_code=404, detail="Session not found.")
+ session = updated
+ else:
+ session = session_store.update_questions(session_id, questions, status="in_progress") or session
+
+ current_question = session.generated_questions[0] if session.generated_questions else None
+ audio_base64 = None
+ if current_question:
+ audio_bytes = await text_to_speech(current_question["question"])
+ if audio_bytes:
+ audio_base64 = base64.b64encode(audio_bytes).decode("ascii")
+ return StartInterviewResponse(
+ generated_questions=session.generated_questions,
+ current_question=current_question,
+ audio_base64=audio_base64,
+ )
+
+
+@app.post(
+ "/sessions/{session_id}/answer",
+ response_model=AnswerResponse,
+ summary="Submit answer and advance interview",
+ description=(
+ "Scores one answer for one question in the current interview session.\n\n"
+ "What this endpoint expects:\n"
+ "- `session_id`: the active interview session\n"
+ "- `question_id`: the question being answered\n"
+ "- `transcript`: the candidate's answer text\n\n"
+ "What it returns:\n"
+ "- the evaluation for that answer\n"
+ "- the next unanswered question, if any\n"
+ "- whether the 3-question interview is now complete"
+ ),
+ tags=["Sessions"],
+)
+async def submit_answer(
+ session_id: str = Path(
+ ...,
+ description="Session identifier returned by `POST /sessions`.",
+ examples=["d7f6c4d1-5f7e-4b9d-a9a1-2ddf5ff5f123"],
+ ),
+ payload: AnswerRequest = ...,
+) -> AnswerResponse:
+ """Accept a transcript answer, score it, and advance the interview."""
+ session = session_store.get_session(session_id)
+ if not session:
+ raise HTTPException(status_code=404, detail="Session not found.")
+ if not session.generated_questions:
+ raise HTTPException(status_code=400, detail="Interview has not started.")
+
+ question = next((item for item in session.generated_questions if item["id"] == payload.question_id), None)
+ if not question:
+ raise HTTPException(status_code=404, detail="Question not found.")
+ if any(answer.get("question_id") == payload.question_id for answer in session.answers):
+ raise HTTPException(status_code=409, detail="Question already answered.")
+
+ evaluation = await scorer.evaluate_answer(session.candidate_brief, question, payload.transcript)
+ answer_record = payload.model_dump()
+ answered_count = len(session.answers) + 1
+ completed = answered_count >= len(session.generated_questions)
+ status = "completed" if completed else "in_progress"
+ updated = session_store.append_answer(session_id, answer_record, evaluation, status=status)
+ if not updated:
+ raise HTTPException(status_code=404, detail="Session not found.")
+
+ next_question = None
+ if not completed:
+ answered_ids = {answer.get("question_id") for answer in updated.answers}
+ next_question = next((item for item in updated.generated_questions if item["id"] not in answered_ids), None)
+
+ return AnswerResponse(
+ evaluation=evaluation,
+ next_question=next_question,
+ interview_completed=completed,
+ )
+
+
+@app.post(
+ "/sessions/{session_id}/gaze",
+ summary="Store gaze tracking summary",
+ tags=["Sessions"],
+)
+async def save_gaze(
+ session_id: str = Path(
+ ...,
+ description="Session identifier returned by `POST /sessions`.",
+ ),
+ payload: GazeRequest = ...,
+) -> dict[str, str]:
+ """Store client-side gaze tracking summary (look-away events) for a session."""
+ session = session_store.get_session(session_id)
+ if not session:
+ raise HTTPException(status_code=404, detail="Session not found.")
+ session_store.save_gaze(session_id, payload.model_dump())
+ return {"status": "ok"}
+
+
+@app.get(
+ "/sessions/{session_id}/report",
+ summary="Get final interview report",
+ description=(
+ "Builds and returns the final recruiter-facing JSON report for a session.\n\n"
+ "The report includes candidate summary, per-question evaluations, overall scoring, "
+ "strengths, concerns, recommendation, and final summary."
+ ),
+ tags=["Sessions"],
+)
+async def get_report(
+ session_id: str = Path(
+ ...,
+ description="Session identifier returned by `POST /sessions`.",
+ examples=["d7f6c4d1-5f7e-4b9d-a9a1-2ddf5ff5f123"],
+ )
+) -> dict[str, Any]:
+ """Return the final interview report JSON."""
+ session = session_store.get_session(session_id)
+ if not session:
+ raise HTTPException(status_code=404, detail="Session not found.")
+ report = report_builder.build_report(session.session_id, session.candidate_brief, session.evaluations)
+
+ # Enrich each evaluation with the candidate's transcript and question text
+ answer_by_qid = {a["question_id"]: a.get("transcript", "") for a in session.answers if isinstance(a, dict)}
+ question_by_qid = {q["id"]: q.get("question", "") for q in session.generated_questions if isinstance(q, dict)}
+ for ev in report.get("per_question_evaluations", []):
+ qid = ev.get("question_id")
+ ev["transcript"] = answer_by_qid.get(qid, "")
+ ev["question_text"] = question_by_qid.get(qid, "")
+
+ raw_profile = session.raw_profile if isinstance(session.raw_profile, dict) else {}
+ normalized_job_offer = session.normalized_job_offer or {}
+ raw_job_offer = session.raw_job_offer or {}
+ raw_job_data = raw_job_offer.get("data") if isinstance(raw_job_offer.get("data"), dict) else raw_job_offer
+ raw_job_data = raw_job_data if isinstance(raw_job_data, dict) else {}
+ raw_job_board = raw_job_data.get("board") if isinstance(raw_job_data.get("board"), dict) else {}
+ raw_profile_source = raw_profile.get("source") if isinstance(raw_profile.get("source"), dict) else {}
+
+ source_key = (
+ raw_profile.get("source_key")
+ or raw_profile_source.get("key")
+ or hrflow_client.source_key
+ )
+ board_key = (
+ raw_job_offer.get("board_key")
+ if isinstance(raw_job_offer.get("board_key"), str)
+ else None
+ ) or normalized_job_offer.get("board_key") or raw_job_data.get("board_key") or raw_job_board.get("key") or hrflow_client.board_key
+
+ profile_reference = raw_profile.get("reference") if isinstance(raw_profile.get("reference"), str) and raw_profile.get("reference") else None
+ raw_job_reference = normalized_job_offer.get("job_reference") or raw_job_data.get("reference")
+ job_reference = (
+ raw_job_reference
+ if isinstance(raw_job_reference, str) and raw_job_reference and raw_job_reference != "00000"
+ else None
+ )
+
+ # Attach client-side gaze data if available
+ gaze_session = session_store.get_session(session_id)
+ if gaze_session and gaze_session.gaze_summary:
+ report["gaze_summary"] = gaze_session.gaze_summary
+
+ # Extract CV public URL from raw profile attachments
+ profile_data = raw_profile.get("data") if isinstance(raw_profile.get("data"), dict) else raw_profile
+ attachments = profile_data.get("attachments") if isinstance(profile_data, dict) else []
+ cv_url: str | None = None
+ for attachment in (attachments or []):
+ if isinstance(attachment, dict):
+ url = attachment.get("public_url") or attachment.get("url")
+ if url and isinstance(url, str):
+ cv_url = url
+ break
+ report["cv_url"] = cv_url
+
+ report["hrflow_profile_job_grade"] = await hrflow_client.grade_profile_for_job(
+ source_key=source_key,
+ board_key=board_key,
+ profile_key=session.normalized_profile.get("profile_key"),
+ job_key=normalized_job_offer.get("job_key"),
+ profile_reference=profile_reference,
+ job_reference=job_reference,
+ )
+ logger.info(report)
+
+ candidate_name = report.get("candidate_summary", {}).get("candidate_name", "Unknown")
+ overall_score = report.get("overall_score", 0.0)
+ recommendation = report.get("recommendation", "no")
+ save_report(session_id, candidate_name, overall_score, recommendation, report)
+
+ return report
+
+
+@app.get(
+ "/jobs",
+ summary="List available job offers",
+ description="Returns a list of job offers from the configured HRflow board.",
+ tags=["Jobs"],
+)
+async def list_jobs(
+ board_key: str | None = None,
+ limit: int = 12,
+ page: int = 1,
+) -> dict[str, Any]:
+ """Proxy HRflow jobs/searching and return a compact list for the UI."""
+ try:
+ result = await hrflow_client.list_jobs(board_key=board_key, limit=limit, page=page)
+ except Exception as exc:
+ raise HTTPException(status_code=502, detail=f"Could not fetch jobs: {exc}") from exc
+
+ raw_jobs = []
+ data = result.get("data")
+ if isinstance(data, dict):
+ raw_jobs = data.get("jobs", []) or []
+ elif isinstance(data, list):
+ raw_jobs = data
+
+ jobs = []
+ for job in raw_jobs:
+ if not isinstance(job, dict):
+ continue
+ board = job.get("board") if isinstance(job.get("board"), dict) else {}
+ location = job.get("location") if isinstance(job.get("location"), dict) else {}
+ skills = [
+ s.get("name") or s.get("label") or ""
+ for s in (job.get("skills") or [])
+ if isinstance(s, dict)
+ ]
+ sections = job.get("sections") or []
+ parsed_sections = []
+ for section in sections:
+ if isinstance(section, dict):
+ title = (section.get("title") or section.get("name") or "").strip()
+ desc = (section.get("description") or section.get("text") or "").strip()
+ if desc:
+ parsed_sections.append({"title": title, "description": desc})
+
+ summary = (job.get("summary") or "").strip()
+
+ def _extract_text(field: Any) -> str:
+ if not field:
+ return ""
+ if isinstance(field, str):
+ return field.strip()
+ if isinstance(field, dict):
+ return (field.get("text") or field.get("description") or "").strip()
+ return ""
+
+ jobs.append({
+ "key": job.get("key") or job.get("id") or "",
+ "board_key": board.get("key") or board_key or hrflow_client.board_key or "",
+ "title": job.get("name") or job.get("title") or "Offre sans titre",
+ "company": board.get("name") or job.get("company") or "",
+ "location": location.get("text") or job.get("location") or "",
+ "contract_type": (job.get("info") or {}).get("contract_type") or job.get("contract_type") or "",
+ "skills": [s for s in skills if s],
+ "summary": summary,
+ "sections": parsed_sections,
+ "requirements": _extract_text(job.get("requirements")),
+ "responsibilities": _extract_text(job.get("responsibilities")),
+ "benefits": _extract_text(job.get("benefits")),
+ "url": job.get("url") or "",
+ "created_at": job.get("created_at") or "",
+ })
+
+ return {"jobs": jobs, "total": len(jobs)}
+
+
+@app.post(
+ "/profile/parse-cv",
+ response_model=SessionCreateResponse,
+ summary="Parse CV and create interview session",
+ description=(
+ "Parses a CV/resume file via HRFlow Profile Parsing API and creates a ready-to-start interview session.\n\n"
+ "Accepts a multipart form with a `file` field (PDF, DOC, DOCX) and optional "
+ "`source_key`, `board_key`, `job_key` fields.\n\n"
+ "On success, returns the same payload as `POST /sessions`, allowing the client to proceed "
+ "directly to `POST /sessions/{session_id}/start`."
+ ),
+ tags=["Sessions"],
+)
+async def parse_cv_and_create_session(
+ file: UploadFile = File(..., description="CV/resume file (PDF, DOC, DOCX)."),
+ source_key: str | None = Form(default=None, description="HRFlow source key. Falls back to HRFLOW_SOURCE_KEY env var."),
+ board_key: str | None = Form(default=None, description="HRFlow board key for the target job offer (optional)."),
+ job_key: str | None = Form(default=None, description="HRFlow job key for the target job offer (optional)."),
+) -> SessionCreateResponse:
+ """Parse a CV file via HRFlow, then create and return an interview session."""
+ file_bytes = await file.read()
+ filename = file.filename or "cv.pdf"
+
+ try:
+ parse_result = await hrflow_client.parse_cv_file(file_bytes, filename, source_key)
+ except Exception as exc:
+ raise HTTPException(status_code=502, detail=f"CV parsing failed: {exc}") from exc
+
+ # HRFlow response shape: { "data": { "profile": {...} } }
+ data = parse_result.get("data") if isinstance(parse_result.get("data"), dict) else {}
+ raw_profile = data.get("profile") if isinstance(data.get("profile"), dict) else {}
+ if not raw_profile:
+ raise HTTPException(status_code=400, detail="CV parsing returned an empty profile. Check your source_key and file format.")
+
+ raw_job_offer: dict | None = None
+ resolved_board_key = board_key or hrflow_client.board_key
+ if resolved_board_key and job_key:
+ try:
+ job_result = await hrflow_client._request(
+ "GET", "job/indexing", params={"board_key": resolved_board_key, "job_key": job_key}
+ )
+ job_data = job_result.get("data") if isinstance(job_result.get("data"), dict) else None
+ if job_data:
+ raw_job_offer = job_data
+ except Exception as exc:
+ logger.warning("Could not fetch job offer during CV parse: %s", exc)
+
+ validation = hrflow_client.validate_profile(raw_profile)
+ if not validation["normalized_profile"].get("profile_text"):
+ raise HTTPException(status_code=400, detail="Parsed profile is missing usable interview context.")
+
+ normalized_profile = validation["normalized_profile"]
+ normalized_job_offer = hrflow_client.normalize_job(raw_job_offer) if raw_job_offer else None
+ candidate_brief = build_candidate_brief(normalized_profile, normalized_job_offer)
+ session = session_store.create_session(
+ raw_profile,
+ raw_job_offer,
+ normalized_profile,
+ normalized_job_offer,
+ candidate_brief,
+ )
+ return SessionCreateResponse(
+ session_id=session.session_id,
+ normalized_profile=session.normalized_profile,
+ candidate_brief=session.candidate_brief,
+ normalized_job_offer=session.normalized_job_offer,
+ )
+
+
+@app.post(
+ "/stt",
+ response_model=STTResponse,
+ summary="Transcribe audio with Voxtral",
+ description=(
+ "Transcribes an audio file locally using the Voxtral model via mistral-inference.\n\n"
+ "Accepts multipart/form-data with an `audio` file field and optional `lang` parameter (default: 'fr')."
+ ),
+ tags=["Audio"],
+)
+async def stt(
+ audio: UploadFile = File(..., description="Audio file to transcribe (webm or mp4)."),
+ lang: str = Form(default="fr", description="Language code for transcription (e.g. 'fr', 'en')."),
+) -> STTResponse:
+ """Transcribe audio using Voxtral locally."""
+ audio_bytes = await audio.read()
+ audio_format = "mp4" if (audio.content_type or "").endswith("mp4") else "webm"
+ text = await voxtral_stt(audio_bytes, audio_format, lang)
+ if text is None:
+ return STTResponse(text=None, available=False)
+ return STTResponse(text=text.strip(), available=True)
+
+
+@app.get(
+ "/hr/interviews",
+ summary="List all completed interviews",
+ description="Returns a summary list of all completed interview sessions, ordered by most recent first.",
+ tags=["HR"],
+)
+async def hr_list_interviews() -> list[dict[str, Any]]:
+ """Return summary metadata for all persisted interview reports."""
+ return list_interviews()
+
+
+@app.get(
+ "/hr/interviews/{session_id}",
+ summary="Get full interview report (HR)",
+ description="Returns the full recruiter-facing report for a completed interview session.",
+ tags=["HR"],
+)
+async def hr_get_interview(
+ session_id: str = Path(
+ ...,
+ description="Session identifier of the completed interview.",
+ examples=["d7f6c4d1-5f7e-4b9d-a9a1-2ddf5ff5f123"],
+ ),
+) -> dict[str, Any]:
+ """Return the persisted full report JSON for a completed interview."""
+ report = get_interview_report(session_id)
+ if not report:
+ raise HTTPException(status_code=404, detail="Interview not found.")
+ return report
+
+
+@app.post(
+ "/tts",
+ response_model=TTSResponse,
+ summary="Generate text-to-speech audio",
+ description=(
+ "Converts plain text into spoken audio using Gradium when configured.\n\n"
+ "If Gradium credentials are missing or synthesis fails, the endpoint returns a null-safe response "
+ "with `audio_base64 = null` and `available = false` instead of crashing."
+ ),
+ tags=["Audio"],
+)
+async def tts(payload: TTSRequest) -> TTSResponse:
+ """Generate TTS audio when Gradium is configured."""
+ audio = await text_to_speech(payload.text, payload.voice_id)
+ if not audio:
+ return TTSResponse(audio_base64=None, available=False)
+ return TTSResponse(audio_base64=base64.b64encode(audio).decode("ascii"), available=True)
diff --git a/404jobnotfound-remi-ai/backend/pyproject.toml b/404jobnotfound-remi-ai/backend/pyproject.toml
new file mode 100644
index 0000000..9cfcf9c
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/pyproject.toml
@@ -0,0 +1,27 @@
+[project]
+name = "backend"
+version = "0.1.0"
+requires-python = ">=3.11"
+dependencies = [
+ "fastapi",
+ "uvicorn",
+ "httpx",
+ "certifi",
+ "gradium",
+ "pydantic",
+ "python-dotenv",
+ "python-multipart",
+ "mlx-whisper",
+ "agent",
+]
+
+[build-system]
+requires = ["setuptools>=61"]
+build-backend = "setuptools.build_meta"
+
+[tool.setuptools.packages.find]
+where = [".."]
+include = ["backend*"]
+
+[tool.uv.sources]
+agent = {workspace = true}
diff --git a/404jobnotfound-remi-ai/backend/session_store.py b/404jobnotfound-remi-ai/backend/session_store.py
new file mode 100644
index 0000000..3896523
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/session_store.py
@@ -0,0 +1,124 @@
+"""In-memory session store for interview sessions."""
+
+from __future__ import annotations
+
+from copy import deepcopy
+from dataclasses import dataclass, field
+from datetime import UTC, datetime
+from threading import Lock
+from typing import Any
+from uuid import uuid4
+
+
+def utc_now() -> datetime:
+ """Return a timezone-aware UTC timestamp."""
+ return datetime.now(UTC)
+
+
+@dataclass
+class SessionRecord:
+ """Stored interview session state."""
+
+ session_id: str
+ raw_profile: dict[str, Any]
+ raw_job_offer: dict[str, Any] | None
+ normalized_profile: dict[str, Any]
+ normalized_job_offer: dict[str, Any] | None
+ candidate_brief: dict[str, Any]
+ generated_questions: list[dict[str, Any]] = field(default_factory=list)
+ answers: list[dict[str, Any]] = field(default_factory=list)
+ evaluations: list[dict[str, Any]] = field(default_factory=list)
+ gaze_summary: dict[str, Any] | None = None
+ status: str = "created"
+ created_at: datetime = field(default_factory=utc_now)
+ updated_at: datetime = field(default_factory=utc_now)
+ started_at: datetime | None = None
+ completed_at: datetime | None = None
+
+ def touch(self) -> None:
+ """Update the record modification timestamp."""
+ self.updated_at = utc_now()
+
+
+class SessionStore:
+ """Thread-safe in-memory store with clean CRUD-style helpers."""
+
+ def __init__(self) -> None:
+ self._sessions: dict[str, SessionRecord] = {}
+ self._lock = Lock()
+
+ def create_session(
+ self,
+ raw_profile: dict[str, Any],
+ raw_job_offer: dict[str, Any] | None,
+ normalized_profile: dict[str, Any],
+ normalized_job_offer: dict[str, Any] | None,
+ candidate_brief: dict[str, Any],
+ ) -> SessionRecord:
+ """Create and persist a new interview session."""
+ record = SessionRecord(
+ session_id=str(uuid4()),
+ raw_profile=deepcopy(raw_profile),
+ raw_job_offer=deepcopy(raw_job_offer),
+ normalized_profile=deepcopy(normalized_profile),
+ normalized_job_offer=deepcopy(normalized_job_offer),
+ candidate_brief=deepcopy(candidate_brief),
+ )
+ with self._lock:
+ self._sessions[record.session_id] = record
+ return deepcopy(record)
+
+ def get_session(self, session_id: str) -> SessionRecord | None:
+ """Retrieve a session by id."""
+ with self._lock:
+ record = self._sessions.get(session_id)
+ return deepcopy(record) if record else None
+
+ def save_session(self, session: SessionRecord) -> SessionRecord:
+ """Persist a full session record replacement."""
+ session.touch()
+ with self._lock:
+ self._sessions[session.session_id] = deepcopy(session)
+ return deepcopy(session)
+
+ def update_questions(self, session_id: str, generated_questions: list[dict[str, Any]], status: str) -> SessionRecord | None:
+ """Store generated questions and update session status."""
+ with self._lock:
+ record = self._sessions.get(session_id)
+ if not record:
+ return None
+ record.generated_questions = deepcopy(generated_questions)
+ record.status = status
+ if status == "in_progress" and record.started_at is None:
+ record.started_at = utc_now()
+ record.touch()
+ return deepcopy(record)
+
+ def append_answer(self, session_id: str, answer: dict[str, Any], evaluation: dict[str, Any], status: str) -> SessionRecord | None:
+ """Append an answer/evaluation pair and update completion status when needed."""
+ with self._lock:
+ record = self._sessions.get(session_id)
+ if not record:
+ return None
+ record.answers.append(deepcopy(answer))
+ record.evaluations.append(deepcopy(evaluation))
+ record.status = status
+ if status == "completed":
+ record.completed_at = utc_now()
+ record.touch()
+ return deepcopy(record)
+
+ def save_gaze(self, session_id: str, gaze_summary: dict[str, Any]) -> SessionRecord | None:
+ """Store client-side gaze tracking summary for a session."""
+ with self._lock:
+ record = self._sessions.get(session_id)
+ if not record:
+ return None
+ record.gaze_summary = deepcopy(gaze_summary)
+ record.touch()
+ return deepcopy(record)
+
+ def delete_session(self, session_id: str) -> bool:
+ """Delete a session if it exists."""
+ with self._lock:
+ return self._sessions.pop(session_id, None) is not None
diff --git a/404jobnotfound-remi-ai/backend/voxtral_stt.py b/404jobnotfound-remi-ai/backend/voxtral_stt.py
new file mode 100644
index 0000000..a4084b0
--- /dev/null
+++ b/404jobnotfound-remi-ai/backend/voxtral_stt.py
@@ -0,0 +1,80 @@
+"""Local speech-to-text using Whisper via mlx-whisper (Apple Silicon optimized)."""
+
+from __future__ import annotations
+
+import asyncio
+import logging
+import os
+import shutil
+import subprocess
+import tempfile
+from typing import Optional
+
+logger = logging.getLogger(__name__)
+
+WHISPER_MODEL = os.getenv("WHISPER_MODEL", "mlx-community/whisper-large-v3-turbo")
+
+
+def _find_ffmpeg() -> str:
+ ffmpeg = shutil.which("ffmpeg")
+ if ffmpeg:
+ return ffmpeg
+ for path in ("/opt/homebrew/bin/ffmpeg", "/usr/local/bin/ffmpeg"):
+ if os.path.isfile(path):
+ return path
+ raise FileNotFoundError("ffmpeg not found — install it with: brew install ffmpeg")
+
+
+def _convert_to_wav(audio_bytes: bytes, input_format: str) -> Optional[str]:
+ """Convert audio to 16kHz mono WAV via ffmpeg. Returns temp WAV path."""
+ with tempfile.NamedTemporaryFile(suffix=f".{input_format}", delete=False) as f_in:
+ f_in.write(audio_bytes)
+ in_path = f_in.name
+
+ out_path = in_path.replace(f".{input_format}", ".wav")
+ try:
+ ffmpeg = _find_ffmpeg()
+ subprocess.run(
+ [ffmpeg, "-y", "-i", in_path, "-ar", "16000", "-ac", "1", "-f", "wav", out_path],
+ check=True,
+ capture_output=True,
+ )
+ return out_path
+ except Exception as e:
+ logger.error("Audio conversion failed: %s", e)
+ if os.path.exists(out_path):
+ os.unlink(out_path)
+ return None
+ finally:
+ os.unlink(in_path)
+
+
+def _transcribe_sync(audio_bytes: bytes, input_format: str, lang: str) -> Optional[str]:
+ try:
+ import mlx_whisper
+
+ wav_path = _convert_to_wav(audio_bytes, input_format)
+ if wav_path is None:
+ return None
+
+ try:
+ result = mlx_whisper.transcribe(
+ wav_path,
+ path_or_hf_repo=WHISPER_MODEL,
+ language=lang,
+ verbose=False,
+ )
+ return result.get("text", "").strip()
+ finally:
+ if os.path.exists(wav_path):
+ os.unlink(wav_path)
+
+ except Exception as e:
+ logger.error("Whisper transcription error: %s", e)
+ return None
+
+
+async def speech_to_text(audio_bytes: bytes, audio_format: str = "webm", lang: str = "fr") -> Optional[str]:
+ """Transcribe audio using mlx-whisper locally (async wrapper)."""
+ loop = asyncio.get_event_loop()
+ return await loop.run_in_executor(None, _transcribe_sync, audio_bytes, audio_format, lang)
diff --git a/404jobnotfound-remi-ai/frontend/.env.example b/404jobnotfound-remi-ai/frontend/.env.example
new file mode 100644
index 0000000..bcec194
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/.env.example
@@ -0,0 +1,3 @@
+VITE_HRFLOW_API_KEY=
+VITE_HRFLOW_USER_EMAIL=
+VITE_HRFLOW_SOURCE_KEY=
diff --git a/404jobnotfound-remi-ai/frontend/.gitignore b/404jobnotfound-remi-ai/frontend/.gitignore
new file mode 100644
index 0000000..deed335
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/.gitignore
@@ -0,0 +1,3 @@
+node_modules/
+dist/
+.env
diff --git a/404jobnotfound-remi-ai/frontend/index.html b/404jobnotfound-remi-ai/frontend/index.html
new file mode 100644
index 0000000..85cc72d
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ Remi AI — Powered by HRFlow
+
+
+
+
+
+
+
diff --git a/404jobnotfound-remi-ai/frontend/package-lock.json b/404jobnotfound-remi-ai/frontend/package-lock.json
new file mode 100644
index 0000000..1738cc9
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/package-lock.json
@@ -0,0 +1,3064 @@
+{
+ "name": "hrflow-interview",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "hrflow-interview",
+ "version": "1.0.0",
+ "dependencies": {
+ "@mediapipe/tasks-vision": "^0.10.34",
+ "lottie-react": "^2.4.1",
+ "lucide-react": "^0.344.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "recharts": "^2.10.0"
+ },
+ "devDependencies": {
+ "@types/react": "^18.2.55",
+ "@types/react-dom": "^18.2.19",
+ "@vitejs/plugin-react": "^4.2.1",
+ "autoprefixer": "^10.4.17",
+ "postcss": "^8.4.35",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5.2.2",
+ "vite": "^5.1.0"
+ }
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
+ "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@mediapipe/tasks-vision": {
+ "version": "0.10.34",
+ "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.34.tgz",
+ "integrity": "sha512-KFGyhDsjJ+9WUMcMfjTOpcEp3LJNS3KwC7BfvKrCYELn/7G/5kmwnU7z6Spps+iWQoTGL8xW8i68r65OTa3DwA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.27",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
+ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz",
+ "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz",
+ "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz",
+ "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz",
+ "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz",
+ "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz",
+ "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz",
+ "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz",
+ "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz",
+ "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz",
+ "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz",
+ "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz",
+ "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz",
+ "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz",
+ "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz",
+ "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz",
+ "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz",
+ "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz",
+ "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz",
+ "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz",
+ "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz",
+ "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz",
+ "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz",
+ "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz",
+ "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz",
+ "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz",
+ "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz",
+ "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.28",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz",
+ "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
+ "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.28.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.27",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.27",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz",
+ "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001774",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.11",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
+ "integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001781",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+ "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "license": "MIT"
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",
+ "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js-light": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
+ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
+ "license": "MIT"
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.328",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.328.tgz",
+ "integrity": "sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "license": "MIT"
+ },
+ "node_modules/fast-equals": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz",
+ "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.7",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash": {
+ "version": "4.17.23",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
+ "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lottie-react": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.4.1.tgz",
+ "integrity": "sha512-LQrH7jlkigIIv++wIyrOYFLHSKQpEY4zehPicL9bQsrt1rnoKRYCYgpCUe5maqylNtacy58/sQDZTkwMcTRxZw==",
+ "license": "MIT",
+ "dependencies": {
+ "lottie-web": "^5.10.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/lottie-web": {
+ "version": "5.13.0",
+ "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.13.0.tgz",
+ "integrity": "sha512-+gfBXl6sxXMPe8tKQm7qzLnUy5DUPJPKIyRHwtpCpyUEYjHYRJC/5gjUvdkuO2c3JllrPtHXH5UJJK8LRYl5yQ==",
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/lucide-react": {
+ "version": "0.344.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.344.0.tgz",
+ "integrity": "sha512-6YyBnn91GB45VuVT96bYCOKElbJzUHqp65vX8cDcu55MQL9T969v4dhGClpljamuI/+KMO9P6w9Acq1CVQGvIQ==",
+ "license": "ISC",
+ "peerDependencies": {
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.36",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
+ "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+ "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
+ "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
+ "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "jiti": ">=1.21.0",
+ "postcss": ">=8.0.9",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.1"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "license": "MIT"
+ },
+ "node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-smooth": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz",
+ "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-equals": "^5.0.1",
+ "prop-types": "^15.8.1",
+ "react-transition-group": "^4.4.5"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/recharts": {
+ "version": "2.15.4",
+ "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz",
+ "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.0.0",
+ "eventemitter3": "^4.0.1",
+ "lodash": "^4.17.21",
+ "react-is": "^18.3.1",
+ "react-smooth": "^4.0.4",
+ "recharts-scale": "^0.4.4",
+ "tiny-invariant": "^1.3.1",
+ "victory-vendor": "^36.6.8"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/recharts-scale": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz",
+ "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==",
+ "license": "MIT",
+ "dependencies": {
+ "decimal.js-light": "^2.4.1"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz",
+ "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.60.0",
+ "@rollup/rollup-android-arm64": "4.60.0",
+ "@rollup/rollup-darwin-arm64": "4.60.0",
+ "@rollup/rollup-darwin-x64": "4.60.0",
+ "@rollup/rollup-freebsd-arm64": "4.60.0",
+ "@rollup/rollup-freebsd-x64": "4.60.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.60.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.60.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.60.0",
+ "@rollup/rollup-linux-arm64-musl": "4.60.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.60.0",
+ "@rollup/rollup-linux-loong64-musl": "4.60.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.60.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.60.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.60.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.60.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.60.0",
+ "@rollup/rollup-linux-x64-gnu": "4.60.0",
+ "@rollup/rollup-linux-x64-musl": "4.60.0",
+ "@rollup/rollup-openbsd-x64": "4.60.0",
+ "@rollup/rollup-openharmony-arm64": "4.60.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.60.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.60.0",
+ "@rollup/rollup-win32-x64-gnu": "4.60.0",
+ "@rollup/rollup-win32-x64-msvc": "4.60.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.1",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz",
+ "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "tinyglobby": "^0.2.11",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.19",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz",
+ "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.6.0",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.7",
+ "lilconfig": "^3.1.3",
+ "micromatch": "^4.0.8",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.4.47",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "resolve": "^1.22.8",
+ "sucrase": "^3.35.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/victory-vendor": {
+ "version": "36.9.2",
+ "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz",
+ "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
+ "license": "MIT AND ISC",
+ "dependencies": {
+ "@types/d3-array": "^3.0.3",
+ "@types/d3-ease": "^3.0.0",
+ "@types/d3-interpolate": "^3.0.1",
+ "@types/d3-scale": "^4.0.2",
+ "@types/d3-shape": "^3.1.0",
+ "@types/d3-time": "^3.0.0",
+ "@types/d3-timer": "^3.0.0",
+ "d3-array": "^3.1.6",
+ "d3-ease": "^3.0.1",
+ "d3-interpolate": "^3.0.1",
+ "d3-scale": "^4.0.2",
+ "d3-shape": "^3.1.0",
+ "d3-time": "^3.0.0",
+ "d3-timer": "^3.0.1"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.21",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ }
+ }
+}
diff --git a/404jobnotfound-remi-ai/frontend/package.json b/404jobnotfound-remi-ai/frontend/package.json
new file mode 100644
index 0000000..211e63b
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/package.json
@@ -0,0 +1,29 @@
+{
+ "name": "hrflow-interview",
+ "version": "1.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@mediapipe/tasks-vision": "^0.10.34",
+ "lottie-react": "^2.4.1",
+ "lucide-react": "^0.344.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "recharts": "^2.10.0"
+ },
+ "devDependencies": {
+ "@types/react": "^18.2.55",
+ "@types/react-dom": "^18.2.19",
+ "@vitejs/plugin-react": "^4.2.1",
+ "autoprefixer": "^10.4.17",
+ "postcss": "^8.4.35",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5.2.2",
+ "vite": "^5.1.0"
+ }
+}
diff --git a/404jobnotfound-remi-ai/frontend/postcss.config.js b/404jobnotfound-remi-ai/frontend/postcss.config.js
new file mode 100644
index 0000000..2e7af2b
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/App.tsx b/404jobnotfound-remi-ai/frontend/src/App.tsx
new file mode 100644
index 0000000..28cabd3
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/App.tsx
@@ -0,0 +1,62 @@
+import { useState } from 'react';
+import LandingPage from './pages/LandingPage';
+import BriefingPage from './pages/BriefingPage';
+import InterviewPage from './pages/InterviewPage';
+import CompletionPage from './pages/CompletionPage';
+import HRDashboard from './pages/HRDashboard';
+import type { AppPage, SessionData, Report } from './types';
+
+function hasInterviewParams() {
+ const params = new URLSearchParams(window.location.search);
+ const sourceKey = params.get('source_key');
+ const profileKey = params.get('profile_key');
+ const reference = params.get('reference');
+ return Boolean(sourceKey && (profileKey || reference));
+}
+
+export default function App() {
+ const [page, setPage] = useState(hasInterviewParams() ? 'landing' : 'hr_dashboard');
+ const [sessionData, setSessionData] = useState(null);
+ const [report, setReport] = useState(null);
+
+ const handleRestart = () => {
+ setSessionData(null);
+ setReport(null);
+ setPage('hr_dashboard');
+ };
+
+ return (
+ <>
+ {page === 'landing' && (
+ {
+ setSessionData(data);
+ setPage('briefing');
+ }}
+ onOpenHR={() => setPage('hr_dashboard')}
+ />
+ )}
+ {page === 'briefing' && sessionData && (
+ setPage('interview')}
+ />
+ )}
+ {page === 'interview' && sessionData && (
+ {
+ setReport(r);
+ setPage('report');
+ }}
+ />
+ )}
+ {page === 'report' && sessionData && (
+
+ )}
+ {page === 'hr_dashboard' && (
+ setPage('landing')} />
+ )}
+ >
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/api.ts b/404jobnotfound-remi-ai/frontend/src/api.ts
new file mode 100644
index 0000000..cbe28a3
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/api.ts
@@ -0,0 +1,190 @@
+import type { SessionData, StartResponse, AnswerResponse, Report, InterviewSummary, JobListing, GazeSummary } from './types';
+// JobSection is part of JobListing but re-exported for convenience
+export type { JobSection } from './types';
+
+const BASE = '/api';
+const HRFLOW_BASE = '/hrflow-api';
+
+async function handleResponse(res: Response): Promise {
+ if (!res.ok) {
+ const text = await res.text();
+ let msg = text;
+ try {
+ const json = JSON.parse(text);
+ msg = json.detail || json.message || text;
+ } catch {}
+ throw new Error(msg);
+ }
+ return res.json();
+}
+
+export async function fetchHRFlowProfile(params: {
+ source_key: string;
+ profile_key?: string;
+ reference?: string;
+ api_key?: string;
+ user_email?: string;
+}): Promise> {
+ const apiKey = params.api_key || import.meta.env.VITE_HRFLOW_API_KEY || '';
+ const userEmail = params.user_email || import.meta.env.VITE_HRFLOW_USER_EMAIL || '';
+
+ if (!apiKey) throw new Error('HRFlow API key is required.');
+
+ const query = new URLSearchParams({ source_key: params.source_key });
+ if (params.profile_key) query.set('profile_key', params.profile_key);
+ if (params.reference) query.set('reference', params.reference);
+
+ const res = await fetch(`${HRFLOW_BASE}/profile/indexing?${query}`, {
+ headers: {
+ 'X-API-KEY': apiKey,
+ ...(userEmail ? { 'X-USER-EMAIL': userEmail } : {}),
+ },
+ });
+
+ const data = await handleResponse>(res);
+
+ // HRFlow returns the profile directly under `data`
+ const profile = data?.data as Record | undefined;
+ if (!profile || !profile.key) throw new Error('No profile found for the given identifiers.');
+ return profile;
+}
+
+export async function fetchHRFlowJob(params: {
+ board_key: string;
+ job_key: string;
+ user_email?: string;
+}): Promise> {
+ const apiKey = import.meta.env.VITE_HRFLOW_API_KEY || '';
+ const userEmail = params.user_email || import.meta.env.VITE_HRFLOW_USER_EMAIL || '';
+
+ if (!apiKey) throw new Error('HRFlow API key is required.');
+
+ const query = new URLSearchParams({ board_key: params.board_key, job_key: params.job_key });
+
+ const res = await fetch(`${HRFLOW_BASE}/job/indexing?${query}`, {
+ headers: {
+ 'X-API-KEY': apiKey,
+ ...(userEmail ? { 'X-USER-EMAIL': userEmail } : {}),
+ },
+ });
+
+ const data = await handleResponse>(res);
+
+ const job = data?.data as Record | undefined;
+ if (!job || !job.key) throw new Error('No job found for the given identifiers.');
+ return job;
+}
+
+export async function fetchJobList(boardKey?: string, limit = 12): Promise {
+ const query = new URLSearchParams({ limit: String(limit) });
+ if (boardKey) query.set('board_key', boardKey);
+ const res = await fetch(`${BASE}/jobs?${query}`);
+ const data = await handleResponse<{ jobs: JobListing[] }>(res);
+ return data.jobs ?? [];
+}
+
+export async function parseCV(
+ file: File,
+ sourceKey?: string,
+ boardKey?: string,
+ jobKey?: string,
+): Promise {
+ const formData = new FormData();
+ formData.append('file', file);
+ if (sourceKey) formData.append('source_key', sourceKey);
+ if (boardKey) formData.append('board_key', boardKey);
+ if (jobKey) formData.append('job_key', jobKey);
+
+ const res = await fetch(`${BASE}/profile/parse-cv`, {
+ method: 'POST',
+ body: formData,
+ });
+ return handleResponse(res);
+}
+
+export async function createSession(
+ profile: Record,
+ jobOffer?: Record | null,
+): Promise {
+ const res = await fetch(`${BASE}/sessions`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ profile, job_offer: jobOffer ?? null }),
+ });
+ return handleResponse(res);
+}
+
+export async function startInterview(sessionId: string): Promise {
+ const res = await fetch(`${BASE}/sessions/${sessionId}/start`, {
+ method: 'POST',
+ });
+ return handleResponse(res);
+}
+
+export async function submitAnswer(
+ sessionId: string,
+ questionId: string,
+ transcript: string,
+): Promise {
+ const res = await fetch(`${BASE}/sessions/${sessionId}/answer`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ question_id: questionId, transcript, audio_base64: null }),
+ });
+ return handleResponse(res);
+}
+
+export async function getReport(sessionId: string): Promise {
+ const res = await fetch(`${BASE}/sessions/${sessionId}/report`);
+ return handleResponse(res);
+}
+
+export async function submitGazeSummary(
+ sessionId: string,
+ summary: GazeSummary,
+): Promise {
+ try {
+ await fetch(`${BASE}/sessions/${sessionId}/gaze`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(summary),
+ });
+ } catch {
+ // Non-blocking: gaze data is optional
+ }
+}
+
+export async function textToSpeech(text: string, voiceId?: string): Promise {
+ try {
+ const res = await fetch(`${BASE}/tts`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ text, voice_id: voiceId ?? null }),
+ });
+ if (!res.ok) return null;
+ const data = await res.json();
+ return data.available ? data.audio_base64 : null;
+ } catch {
+ return null;
+ }
+}
+
+export async function listInterviews(): Promise {
+ const res = await fetch(`${BASE}/hr/interviews`);
+ return handleResponse(res);
+}
+
+export async function getHRReport(sessionId: string): Promise {
+ const res = await fetch(`${BASE}/hr/interviews/${sessionId}`);
+ return handleResponse(res);
+}
+
+export function playAudio(base64: string): { promise: Promise; audio: HTMLAudioElement } {
+ const audio = new Audio(`data:audio/wav;base64,${base64}`);
+ const promise = new Promise((resolve) => {
+ audio.onended = () => resolve();
+ audio.onerror = () => resolve();
+ audio.play().catch(() => resolve());
+ });
+ return { promise, audio };
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/avatars/backgrouds/office_background_interview.jpg b/404jobnotfound-remi-ai/frontend/src/avatars/backgrouds/office_background_interview.jpg
new file mode 100644
index 0000000..dd9f19e
Binary files /dev/null and b/404jobnotfound-remi-ai/frontend/src/avatars/backgrouds/office_background_interview.jpg differ
diff --git a/404jobnotfound-remi-ai/frontend/src/avatars/green_man_avatar.json b/404jobnotfound-remi-ai/frontend/src/avatars/green_man_avatar.json
new file mode 100644
index 0000000..b993960
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/avatars/green_man_avatar.json
@@ -0,0 +1 @@
+{"nm":"4906331","ddd":0,"h":500,"w":750,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"Shape Layer 2","sr":1,"st":0,"op":720,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[69,246.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[68.697,246.533,0],"t":4,"ti":[0,0,0],"to":[-1.083,-0.667,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[62.197,242.533,0],"t":38,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[68.697,246.533,0],"t":69,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[62.197,242.533,0],"t":109,"ti":[-1.083,-0.667,0],"to":[0,0,0]},{"s":[68.697,246.533,0],"t":137}],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":4},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[33],"t":38},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":69},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[33],"t":109},{"s":[0],"t":137}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 27","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.016,0.008],[-0.351,2.765],[0.392,1.783],[1.241,1.718],[1.167,1.453],[0.617,1.281],[0.107,0.784],[-0.026,0],[-1.311,-2.471],[-1.187,-1.413],[-1.26,-1.764],[-0.373,-1.854],[0.219,-1.402],[0.321,-0.721],[0.104,-0.179]],"o":[[-0.109,-0.04],[0.168,-1.372],[-0.388,-1.787],[-1.231,-1.725],[-1.179,-1.447],[-0.622,-1.281],[-0.102,-0.789],[0.102,-0.022],[0.644,1.229],[1.175,1.424],[1.269,1.754],[0.38,1.852],[-0.22,1.407],[-0.155,0.365],[-0.104,0.181]],"v":[[3.722,13.89],[4.877,9.544],[4.637,4.719],[2.153,-0.627],[-1.63,-5.308],[-4.369,-9.451],[-5.385,-12.647],[-5.42,-13.876],[-4.041,-9.617],[-1.257,-5.613],[2.579,-0.928],[5.106,4.617],[5.242,9.594],[4.312,12.814],[3.903,13.627]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[72.517,228.848],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 30","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.041,-0.147],[1.462,0.455],[-0.129,0.055],[-1.291,-0.377]],"o":[[0.075,0.118],[-1.468,-0.439],[0.115,-0.1],[1.281,0.407]],"v":[[2.33,0.414],[-0.254,0.634],[-2.276,-0.99],[-0.102,0.136]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[87.216,196.274],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 31","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.076,0.013],[-0.139,-0.64],[-0.19,-1.155],[-0.265,-3.566],[0.039,-2.342],[0.045,-0.654],[0.036,0.001],[0.057,2.335],[0.262,3.553],[0.288,2.318]],"o":[[0.035,-0.007],[0.14,0.64],[0.383,2.31],[0.262,3.568],[-0.018,1.171],[-0.042,0.654],[-0.077,-0.002],[-0.055,-2.336],[-0.263,-3.552],[-0.287,-2.318]],"v":[[-1.04,-12.865],[-0.773,-11.88],[-0.269,-9.152],[0.796,-0.063],[1.077,9.086],[0.98,11.858],[0.86,12.871],[0.71,9.088],[0.277,-0.024],[-0.633,-9.1]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[68.455,180.188],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 32","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.017,-0.02],[0.578,-1.659],[0.435,-2.674],[0.317,-1.748],[0.071,0.01],[-0.224,1.762],[-0.414,2.678],[-0.734,1.68],[-0.338,0.375]],"o":[[0.075,0.062],[-0.619,1.632],[-0.413,2.678],[-0.317,1.747],[-0.071,-0.012],[0.224,-1.761],[0.433,-2.661],[0.348,-0.839],[0.336,-0.38]],"v":[[2.192,-9.44],[0.834,-6.967],[-0.442,-0.207],[-1.576,6.638],[-2.196,9.45],[-1.939,6.581],[-0.956,-0.287],[0.489,-7.101],[1.598,-8.928]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[68.042,201.847],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 33","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.036,0.003],[-0.047,0.861],[-0.1,1.457],[-0.429,4.678],[-0.193,2.039],[0.129,0.866],[0.495,0.542],[0.816,-0.001],[0.017,0.057],[-0.212,0.092],[-0.442,0.024],[-1.15,-1.167],[-0.145,-0.926],[0.087,-1.014],[0.206,-2.335],[0.328,-3.063],[0.11,-0.958]],"o":[[-0.036,-0.003],[0.066,-0.962],[0.234,-3.071],[0.221,-2.333],[0.1,-1.007],[-0.12,-0.866],[-1.014,-1.098],[-0.846,-0.006],[-0.007,-0.016],[0.216,-0.077],[0.857,-0.061],[0.565,0.579],[0.158,0.928],[-0.18,2.04],[-0.429,4.678],[-0.166,1.45],[-0.11,0.854]],"v":[[0.457,15.092],[0.478,13.751],[0.728,10.113],[1.75,-1.874],[2.374,-8.468],[2.409,-11.295],[1.452,-13.456],[-1.68,-14.831],[-2.986,-14.664],[-2.674,-14.828],[-1.686,-15.034],[1.723,-13.707],[2.835,-11.362],[2.852,-8.425],[2.268,-1.826],[1.094,10.147],[0.68,13.77]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[65.653,190.125],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 34","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-1.412,1.098],[0,0],[-1.043,-3.801],[-0.602,-7.125],[0,0],[0,0],[0,0],[-0.959,2.212],[-3.637,-0.806],[0.654,-4.904],[-0.303,-3.167],[0.442,-5.539],[3.183,-4.102],[3.305,-2.556]],"o":[[0.316,0.159],[0,0],[0,0],[0,0],[0,0],[0.603,7.125],[0,0],[0,0],[0,0],[0.96,-2.212],[3.636,0.808],[-0.654,4.903],[0.303,3.167],[-0.442,5.537],[-3.183,4.101],[-1.155,0.892]],"v":[[-13.538,23.181],[-17.202,-7.98],[-13.279,-32.849],[-13.243,-41.236],[-8.312,-39.789],[-4.263,-35.657],[-3.534,-21.251],[4.139,-2.066],[5.402,-1.428],[8.009,-18.669],[13.262,-25.452],[16.548,-16.732],[15.383,-3.6],[16.683,12.076],[10.025,27.557],[-2.544,42.697]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.7451,0.6157],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[75.775,207.524],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1,"parent":2},{"ty":4,"nm":"Shape Layer 1","sr":1,"st":0,"op":720,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[25.674,259.846,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[262.25,375.75,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":4},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-30],"t":32},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":68},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-30],"t":109},{"s":[0],"t":137}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 29","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[0,0],[1.838,-11.196],[-5.25,-1.385],[-7.351,2.439],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.837,11.198],[5.251,1.385],[7.35,-2.44],[0,0],[0,0]],"v":[[17.655,-21.662],[-2.614,-13.144],[-14.69,-13.144],[-28.472,1.779],[-25.322,20.124],[2.112,19.223],[28.717,1.246],[30.572,-9.994]]}],"t":4},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[0,0],[1.838,-11.196],[-5.25,-1.385],[-7.351,2.439],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.837,11.198],[5.251,1.385],[7.35,-2.44],[0,0],[0,0]],"v":[[20.645,-21.091],[-2.614,-13.144],[-14.69,-13.144],[-28.472,1.779],[-25.322,20.124],[2.112,19.223],[25.916,-3.402],[30.572,-9.994]]}],"t":31},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[0,0],[1.838,-11.196],[-5.25,-1.385],[-7.351,2.439],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.837,11.198],[5.251,1.385],[7.35,-2.44],[0,0],[0,0]],"v":[[17.655,-21.662],[-2.614,-13.144],[-14.69,-13.144],[-28.472,1.779],[-25.322,20.124],[2.112,19.223],[28.717,1.246],[30.572,-9.994]]}],"t":69},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[0,0],[1.838,-11.196],[-5.25,-1.385],[-7.351,2.439],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.837,11.198],[5.251,1.385],[7.35,-2.44],[0,0],[0,0]],"v":[[20.645,-21.091],[-2.614,-13.144],[-14.69,-13.144],[-28.472,1.779],[-25.322,20.124],[2.112,19.223],[25.916,-3.402],[30.572,-9.994]]}],"t":109},{"s":[{"c":true,"i":[[0,0],[0,0],[0,0],[1.838,-11.196],[-5.25,-1.385],[-7.351,2.439],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-1.837,11.198],[5.251,1.385],[7.35,-2.44],[0,0],[0,0]],"v":[[17.655,-21.662],[-2.614,-13.144],[-14.69,-13.144],[-28.472,1.779],[-25.322,20.124],[2.112,19.223],[28.717,1.246],[30.572,-9.994]]}],"t":137}],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.7451,0.6157],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[45.013,248.473],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"Shape Layer 5","sr":1,"st":0,"op":720,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[199.986,249.934,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[199.986,249.934,0],"t":3,"ti":[0,0,0],"to":[0.517,-1.078,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[203.088,243.466,0],"t":31,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[199.986,249.934,0],"t":68,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[203.088,243.466,0],"t":109,"ti":[0.517,-1.078,0],"to":[0,0,0]},{"s":[199.986,249.934,0],"t":137}],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":3},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-49],"t":31},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":68},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-49],"t":109},{"s":[0],"t":137}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 69","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.027,0.023],[-0.987,1.704],[-0.476,1.207],[-0.275,1.473],[0,1.298],[0.172,0.969],[-0.092,0.033],[-0.202,-0.521],[-0.213,-0.978],[-0.052,-1.326],[0.263,-1.512],[0.489,-1.233],[0.55,-0.838],[0.38,-0.411]],"o":[[-0.074,-0.061],[0.5,-0.848],[0.454,-1.215],[0.257,-1.476],[-0.024,-1.298],[-0.329,-1.941],[0.033,-0.011],[0.213,0.518],[0.222,0.977],[0.027,1.327],[-0.282,1.508],[-0.513,1.225],[-0.542,0.842],[-0.372,0.418]],"v":[[-2.56,10.316],[-0.848,7.611],[0.636,4.499],[1.774,0.441],[2.127,-3.759],[1.825,-7.195],[1.168,-10.328],[1.53,-9.538],[2.186,-7.263],[2.607,-3.769],[2.287,0.534],[1.083,4.675],[-0.534,7.801],[-1.944,9.704]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[183.456,228.868],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 70","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.035,0],[0.042,0.749],[0.051,1.253],[0.06,4.09],[-0.352,2.692],[-0.245,0.714],[-0.026,-0.011],[0.228,-2.657],[-0.03,-4.091],[0.008,-2.681],[0.01,-0.86]],"o":[[-0.036,0.001],[-0.035,-0.859],[-0.086,-2.68],[-0.03,-4.085],[0.17,-1.341],[0.243,-0.716],[0.091,0.029],[-0.254,2.649],[0.059,4.089],[-0.015,1.254],[-0.021,0.75]],"v":[[-0.132,14.751],[-0.25,13.59],[-0.379,10.417],[-0.608,-0.055],[-0.445,-10.546],[0.238,-13.667],[0.706,-14.742],[-0.079,-10.507],[-0.087,-0.061],[-0.011,10.411],[-0.048,13.587]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[191.817,190.821],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 71","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.036,-0.014],[0.304,0.753],[0.371,1.405],[0.198,1.915],[-0.112,1.066],[-0.677,0.948],[-0.934,0.274],[0,0],[0,0],[-1.129,-2.07],[-0.354,-0.662],[0.028,-0.016],[0.346,0.55],[0.571,0.939],[1.866,3.25],[0,0],[0.524,-0.746],[0.111,-1.003],[-0.084,-0.943],[-0.323,-1.4],[-0.238,-0.77]],"o":[[-0.031,0.013],[-0.299,-0.754],[-0.373,-1.404],[-0.098,-0.956],[0.109,-1.055],[0.576,-0.822],[0,0],[0,0],[1.848,3.259],[0.518,0.969],[0.298,0.578],[-0.027,0.015],[-0.39,-0.641],[-1.208,-2.026],[0,0],[-0.804,0.24],[-0.613,0.858],[-0.114,1.005],[0.17,1.892],[0.321,1.402],[0.243,0.77]],"v":[[-2.399,8.697],[-2.938,7.557],[-4.005,4.29],[-4.921,-0.734],[-4.977,-3.777],[-3.876,-6.902],[-1.543,-8.654],[-1.346,-8.71],[-1.247,-8.533],[3.335,-0.326],[4.642,2.12],[5.061,3.038],[4.484,2.21],[3.043,-0.16],[-1.693,-8.281],[-1.397,-8.161],[-3.451,-6.602],[-4.469,-3.721],[-4.444,-0.779],[-3.648,4.201],[-2.746,7.488]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[197.134,195.234],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 72","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.015,-0.001],[0.026,0.303],[0.038,0.547],[0.113,2.106],[0.318,7.071],[0,0],[0.95,-0.238],[0.536,-0.898],[0.349,-2.256],[0.6,-4.434],[0.432,-1.951],[0.572,-1.587],[0.309,-1.297],[-0.024,-0.935],[0.081,-0.02],[0.185,0.467],[0.039,0.957],[-0.289,1.321],[-0.542,1.599],[-0.398,1.938],[-0.29,2.213],[-0.677,5.111],[-0.199,1.122],[-0.614,0.967],[-1.081,0.244],[-0.729,-0.882],[0,0],[0,0],[-0.15,-4.355],[-0.031,-1.224],[-0.002,-0.349]],"o":[[-0.014,0],[-0.024,-0.348],[-0.066,-1.223],[-0.196,-4.353],[0,0],[-0.585,-0.702],[-0.966,0.233],[-1.114,1.794],[-0.691,5.108],[-0.304,2.215],[-0.42,1.953],[-0.564,1.592],[-0.312,1.295],[0.038,1.884],[-0.017,0.007],[-0.15,-0.474],[-0.056,-0.953],[0.287,-1.323],[0.551,-1.599],[0.409,-1.935],[0.588,-4.436],[0.161,-1.139],[0.201,-1.115],[0.583,-0.984],[1.066,-0.267],[0,0],[0,0],[0.243,7.074],[0.055,2.108],[0.006,0.548],[-0.001,0.304]],"v":[[7.117,2.856],[7.058,2.396],[6.966,1.06],[6.696,-3.959],[5.908,-21.44],[5.965,-21.292],[3.383,-21.965],[1.017,-20.232],[-0.507,-13.845],[-2.458,0.562],[-3.514,6.835],[-5.096,12.151],[-6.468,16.48],[-6.88,19.855],[-6.376,22.714],[-6.682,22.015],[-7.083,19.863],[-6.752,16.415],[-5.444,12.031],[-3.936,6.743],[-2.934,0.498],[-1.023,-13.915],[-0.54,-17.301],[0.585,-20.505],[3.268,-22.454],[6.338,-21.607],[6.392,-21.54],[6.395,-21.459],[6.996,-3.971],[7.126,1.054],[7.139,2.393]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[194.593,224.046],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 73","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.922,-1.458],[-3.281,-8.962],[-2.188,-8.384],[-3.827,-4.739],[0,0],[0,0],[-0.504,6.089],[0.182,2.552],[0,0],[0,0],[0,0],[1.277,-5.832],[0,0],[0.911,-7.109],[0,0],[0,0],[0,0],[0,0],[1.953,6.713]],"o":[[0,0],[3.282,8.963],[2.187,8.385],[3.828,4.739],[0,0],[0,0],[0.505,-6.09],[-0.183,-2.552],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.911,7.109],[0,0],[0,0],[0,0],[0,0],[-1.953,-6.713]],"v":[[-20.324,-18.957],[-21.418,-8.78],[-14.855,8.025],[-6.289,28.801],[11.757,43.2],[24.517,31.17],[22.918,16.115],[24.517,-7.473],[21.601,-16.223],[21.601,-20.462],[15.038,-40.648],[10.116,-36.456],[7.929,-42.646],[3.555,-36.091],[4.283,-19.139],[2.461,-6.744],[-0.273,1.641],[-2.642,2.005],[-8.163,-5.682]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.7451,0.6157],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[181.466,214.153],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3,"parent":4},{"ty":4,"nm":"Shape Layer 4","sr":1,"st":0,"op":720,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[239.25,259.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[472.25,375,0],"t":3,"ti":[0,0,0],"to":[-0.042,0.75,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[472,379.5,0],"t":31,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[472.25,375,0],"t":68,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[472,379.5,0],"t":109,"ti":[-0.042,0.75,0],"to":[0,0,0]},{"s":[472.25,375,0],"t":137}],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":3},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[44],"t":31},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":68},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[44],"t":109},{"s":[0],"t":137}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 68","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[-7.291,-5.468],[2.006,-5.833],[3.828,-0.911],[6.191,1.303],[0,0]],"o":[[0,0],[0,0],[7.291,5.469],[0,0],[-3.828,0.911],[-6.208,-1.307],[0,0]],"v":[[-16.245,-17.984],[-5.172,-14.141],[12.691,-14.141],[24.311,11.574],[15.451,18.697],[-9.449,14.7],[-26.316,6.456]]}],"t":3},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[-7.291,-5.468],[2.006,-5.833],[3.828,-0.911],[6.191,1.303],[0,0]],"o":[[0,0],[0,0],[7.291,5.469],[0,0],[-3.828,0.911],[-6.208,-1.307],[0,0]],"v":[[-20.016,-14.69],[-4.875,-10.953],[12.691,-14.141],[24.311,11.574],[15.451,18.697],[-5.375,14.241],[-28.004,1.83]]}],"t":31},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[-7.291,-5.468],[2.006,-5.833],[3.828,-0.911],[6.191,1.303],[0,0]],"o":[[0,0],[0,0],[7.291,5.469],[0,0],[-3.828,0.911],[-6.208,-1.307],[0,0]],"v":[[-16.245,-17.984],[-5.172,-14.141],[12.691,-14.141],[24.311,11.574],[15.451,18.697],[-9.449,14.7],[-26.316,6.456]]}],"t":68},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,0],[0,0],[-7.291,-5.468],[2.006,-5.833],[3.828,-0.911],[6.191,1.303],[0,0]],"o":[[0,0],[0,0],[7.291,5.469],[0,0],[-3.828,0.911],[-6.208,-1.307],[0,0]],"v":[[-20.016,-14.69],[-4.875,-10.953],[12.691,-14.141],[24.311,11.574],[15.451,18.697],[-5.375,14.241],[-28.004,1.83]]}],"t":109},{"s":[{"c":true,"i":[[0,0],[0,0],[-7.291,-5.468],[2.006,-5.833],[3.828,-0.911],[6.191,1.303],[0,0]],"o":[[0,0],[0,0],[7.291,5.469],[0,0],[-3.828,0.911],[-6.208,-1.307],[0,0]],"v":[[-16.245,-17.984],[-5.172,-14.141],[12.691,-14.141],[24.311,11.574],[15.451,18.697],[-9.449,14.7],[-26.316,6.456]]}],"t":137}],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.7451,0.6157],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[219.54,250.897],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"Character Outlines","sr":1,"st":0,"op":720,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[125.095,135.378,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[362.351,251.44,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.141,0.03],[-0.502,2.361],[-0.14,-0.029],[0.502,-2.361]],"o":[[-0.141,-0.03],[0.503,-2.361],[0.141,0.031],[-0.502,2.362]],"v":[[-0.909,4.276],[-0.255,-0.055],[0.909,-4.276],[0.255,0.053]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[182.792,263.396],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.143,-0.017],[0.286,2.462],[-0.143,0.017],[-0.286,-2.462]],"o":[[-0.143,0.017],[-0.286,-2.463],[0.143,-0.017],[0.287,2.462]],"v":[[0.519,4.458],[-0.258,0.03],[-0.518,-4.458],[0.259,-0.03]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[113.436,264.93],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.131,-0.059],[0.859,1.931],[-0.131,0.057],[-0.86,-1.93]],"o":[[-0.132,0.059],[-0.858,-1.93],[0.132,-0.059],[0.858,1.931]],"v":[[1.556,3.495],[-0.238,0.105],[-1.556,-3.495],[0.238,-0.106]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[243.158,231.215],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.045,-0.151],[2.628,1.434],[-0.094,0.091],[-2.576,-1.383]],"o":[[-0.025,0.128],[-2.637,-1.419],[0.101,-0.12],[2.566,1.402]],"v":[[4.686,2.521],[-0.365,0.715],[-4.637,-2.53],[-0.117,0.257]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[217.888,207.322],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.136,-0.048],[1.502,4.29],[-0.136,0.047],[-1.502,-4.292]],"o":[[-0.136,0.047],[-1.502,-4.292],[0.135,-0.048],[1.502,4.291]],"v":[[2.72,7.77],[-0.246,0.087],[-2.72,-7.77],[0.245,-0.085]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[222.262,191.169],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.142,0.028],[-0.622,3.115],[-0.141,-0.029],[0.622,-3.116]],"o":[[-0.141,-0.028],[0.622,-3.116],[0.141,0.028],[-0.622,3.115]],"v":[[-1.126,5.641],[-0.256,-0.05],[1.127,-5.641],[0.256,0.051]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[208.825,174.654],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.13,-0.062],[1.922,3.973],[-0.13,0.063],[-1.923,-3.974]],"o":[[-0.129,0.062],[-1.923,-3.975],[0.129,-0.062],[1.922,3.973]],"v":[[3.481,7.195],[-0.235,0.114],[-3.481,-7.195],[0.235,-0.113]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[210.491,149.451],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":8,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.02,-0.143],[3.428,-0.458],[0.019,0.142],[-3.43,0.459]],"o":[[0.019,0.143],[-3.43,0.459],[-0.02,-0.143],[3.429,-0.458]],"v":[[6.21,-0.83],[0.036,0.258],[-6.209,0.831],[-0.033,-0.258]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[170.503,130.106],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":9,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.144,-0.006],[0.105,2.682],[-0.144,0.006],[-0.105,-2.682]],"o":[[-0.145,0.005],[-0.106,-2.683],[0.144,-0.005],[0.106,2.682]],"v":[[0.192,4.856],[-0.26,0.01],[-0.191,-4.857],[0.26,-0.011]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[152.864,125.732],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":10,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.11,-0.092],[2.68,3.22],[-0.11,0.093],[-2.681,-3.221]],"o":[[-0.11,0.092],[-2.68,-3.221],[0.11,-0.092],[2.678,3.22]],"v":[[4.852,5.831],[-0.2,0.167],[-4.852,-5.831],[0.201,-0.166]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[177.218,145.821],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":11,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.131,-0.059],[1.27,-2.797],[0.131,0.059],[-1.27,2.798]],"o":[[0.131,0.06],[-1.269,2.798],[-0.131,-0.06],[1.269,-2.797]],"v":[[2.299,-5.066],[0.237,0.107],[-2.299,5.066],[-0.237,-0.107]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[177.116,182.647],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 12","ix":12,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.117,-0.101],[1.687,2.723],[-0.125,0.046],[-1.673,-2.675]],"o":[[-0.097,0.092],[-1.698,-2.717],[0.142,-0.061],[1.66,2.681]],"v":[[3.029,4.846],[-0.573,0.344],[-3.021,-4.878],[-0.13,0.068]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[157.389,166.473],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 13","ix":13,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.115,-0.088],[2.016,2.647],[-0.115,0.087],[-2.016,-2.648]],"o":[[-0.114,0.087],[-2.017,-2.647],[0.114,-0.087],[2.016,2.646]],"v":[[3.65,4.793],[-0.207,0.158],[-3.65,-4.794],[0.207,-0.158]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[106.996,141.662],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 14","ix":14,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.07,-0.126],[1.933,-1.071],[0.07,0.125],[-1.933,1.071]],"o":[[0.069,0.126],[-1.932,1.07],[-0.069,-0.126],[1.932,-1.07]],"v":[[3.499,-1.939],[0.126,0.229],[-3.499,1.939],[-0.126,-0.227]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[67.939,137.948],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 15","ix":15,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.02,-0.143],[2.147,-0.306],[0.02,0.143],[-2.149,0.306]],"o":[[0.021,0.143],[-2.148,0.305],[-0.02,-0.142],[2.147,-0.306]],"v":[[3.889,-0.553],[0.036,0.258],[-3.89,0.553],[-0.037,-0.257]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[53.606,161.288],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 16","ix":16,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.14,-0.067],[0.544,2.424],[-0.132,-0.012],[-0.543,-2.349]],"o":[[-0.114,0.067],[-0.558,-2.424],[0.156,0],[0.525,2.354]],"v":[[1.059,4.246],[-0.641,0.139],[-0.884,-4.301],[-0.133,0.022]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[53.683,225.411],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 17","ix":17,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.12,-0.08],[1.417,-2.131],[0.119,0.08],[-1.418,2.131]],"o":[[0.12,0.079],[-1.417,2.131],[-0.12,-0.079],[1.416,-2.131]],"v":[[2.566,-3.858],[0.216,0.144],[-2.566,3.858],[-0.217,-0.144]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[33.614,211.816],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 18","ix":18,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.029,-0.06],[3.219,-2.47],[0.118,0.11],[-0.916,0.983],[-1.633,1.248],[-1.19,0.622]],"o":[[0.074,0.144],[-3.235,2.453],[-0.05,-0.044],[0.915,-0.984],[1.634,-1.245],[1.191,-0.624]],"v":[[5.828,-4.48],[-0.272,-0.367],[-5.851,4.43],[-4.491,2.732],[-0.589,-0.781],[3.829,-3.617]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[22.113,234.534],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 19","ix":19,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.111,-0.092],[3.877,4.707],[-0.11,0.092],[-3.878,-4.708]],"o":[[-0.111,0.091],[-3.879,-4.708],[0.111,-0.091],[3.878,4.707]],"v":[[7.021,8.524],[-0.201,0.166],[-7.022,-8.524],[0.201,-0.165]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[157.704,245.967],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 20","ix":20,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.105,0.098],[-3.302,3.562],[-0.106,-0.098],[3.303,-3.563]],"o":[[-0.105,-0.098],[3.304,-3.562],[0.105,0.097],[-3.303,3.561]],"v":[[-5.98,6.449],[-0.192,-0.177],[5.98,-6.449],[0.191,0.178]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[148.669,190.709],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 21","ix":21,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.027,-0.141],[3.325,0.643],[-0.028,0.142],[-3.326,-0.643]],"o":[[-0.027,0.142],[-3.326,-0.645],[0.027,-0.141],[3.326,0.644]],"v":[[6.022,1.165],[-0.049,0.256],[-6.021,-1.166],[0.05,-0.256]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[114.765,238.982],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 22","ix":22,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.066,-0.033],[0.656,1.277],[0.857,2.015],[0.463,1.357],[-0.066,0.024],[-0.55,-1.321],[-0.8,-1.917],[-0.647,-1.495]],"o":[[-0.062,0.03],[-0.657,-1.275],[-0.856,-2.016],[-0.463,-1.359],[0.069,-0.025],[0.627,1.504],[0.825,1.906],[0.57,1.313]],"v":[[3.094,7.278],[1.92,5.268],[-0.445,0.187],[-2.463,-5.043],[-3.093,-7.283],[-2.118,-5.174],[0.035,-0.017],[2.253,5.111]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[89.452,252.427],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 23","ix":23,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.116,0.084],[-2.027,2.797],[-0.117,-0.084],[2.029,-2.797]],"o":[[-0.117,-0.085],[2.029,-2.797],[0.116,0.085],[-2.028,2.797]],"v":[[-3.672,5.064],[-0.211,-0.153],[3.673,-5.064],[0.211,0.153]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[106.158,208.634],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 24","ix":24,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.111,-0.091],[2.426,2.93],[-0.111,0.091],[-2.427,-2.931]],"o":[[-0.111,0.092],[-2.427,-2.931],[0.111,-0.092],[2.425,2.93]],"v":[[4.393,5.306],[-0.2,0.166],[-4.393,-5.306],[0.201,-0.166]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[105.478,175.82],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 25","ix":25,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.131,0.059],[-1.818,4.078],[-0.131,-0.059],[1.818,-4.081]],"o":[[-0.131,-0.059],[1.817,-4.081],[0.131,0.058],[-1.817,4.079]],"v":[[-3.29,7.386],[-0.238,-0.105],[3.291,-7.387],[0.238,0.106]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[81.063,150.058],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 26","ix":26,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.128,-0.065],[2.599,5.028],[-0.127,0.066],[-2.601,-5.03]],"o":[[-0.127,0.066],[-2.601,-5.031],[0.128,-0.066],[2.6,5.029]],"v":[[4.708,9.106],[-0.23,0.121],[-4.708,-9.106],[0.232,-0.119]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.285,184.828],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 28","ix":27,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.072,-0.064],[0.347,0.364],[0.513,0.74],[0.732,2.645],[0.168,1.779],[-0.067,0.003],[-0.247,-1.761],[-0.746,-2.597],[-0.902,-1.517]],"o":[[-0.026,0.024],[-0.361,-0.354],[-1.002,-1.496],[-0.757,-2.64],[-0.154,-1.785],[0.077,-0.005],[0.259,1.758],[0.721,2.606],[0.912,1.513]],"v":[[3.027,9.189],[2.451,8.661],[1.134,6.986],[-1.697,0.575],[-2.945,-6.312],[-3.024,-9.208],[-2.579,-6.355],[-1.196,0.432],[1.445,6.79]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[64.388,229.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 35","ix":28,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.141,-0.028],[1.199,5.898],[-0.141,0.029],[-1.2,-5.9]],"o":[[-0.141,0.028],[-1.2,-5.9],[0.141,-0.029],[1.2,5.898]],"v":[[2.172,10.681],[-0.255,0.053],[-2.172,-10.68],[0.255,-0.051]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[61.952,160.539],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 36","ix":29,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.032,0.015],[-0.261,0.69],[-0.447,1.145],[-1.401,3.765],[-0.869,2.487],[-0.282,0.8],[-0.034,-0.011],[0.194,-0.712],[0.39,-1.26],[1.403,-3.774],[1.056,-2.417],[0.321,-0.665]],"o":[[-0.033,-0.015],[0.309,-0.79],[0.968,-2.45],[1.401,-3.767],[0.41,-1.159],[0.253,-0.692],[0.035,0.011],[-0.191,0.713],[-0.781,2.52],[-1.405,3.772],[-0.528,1.209],[-0.319,0.665]],"v":[[-5.076,13.642],[-4.719,12.55],[-3.583,9.644],[0.113,0.041],[3.592,-9.644],[4.632,-12.587],[5.074,-13.646],[4.825,-12.525],[3.942,-9.529],[0.602,0.223],[-3.242,9.785],[-4.532,12.63]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[195.27,156.596],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 37","ix":30,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[2.676,2.889],[3.879,0.676],[5.124,-4.644],[0,0],[-4.483,-0.127],[-3.247,-3.095],[-1.712,-3.751]],"o":[[-2.676,-2.889],[-6.812,-1.188],[0,0],[3.871,-2.266],[4.484,0.127],[2.985,2.845],[0.668,-3.879]],"v":[[12.958,-2.607],[2.642,-7.922],[-16.605,-2.35],[-15.081,-3.587],[-2.264,-7.07],[9.954,-2.189],[16.446,8.248]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[228.725,235.586],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 38","ix":31,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[3.562,1.683],[3.913,-0.455],[3.238,-2.613],[-0.404,-4.14],[0,0],[-7.148,0.664],[-4.907,-5.24]],"o":[[-3.562,-1.682],[-4.133,0.481],[-3.238,2.613],[0,0],[2.786,-7.542],[7.149,-0.663],[-0.477,-3.91]],"v":[[10.691,-6.088],[-0.882,-7.54],[-12.401,-3.181],[-17.431,7.689],[-17.03,7.746],[-1.552,-5.949],[17.479,1.808]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[29.006,231.354],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 39","ix":32,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[-3.567,7.167],[0,0],[8.636,-14.054],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[3.566,-7.167],[0,0],[0,0],[0,0],[0,0]],"v":[[-11.849,10.754],[-3.863,7.837],[-2.54,21.346],[9.646,-1.53],[11.378,-21.346],[4.017,3.726],[-2.502,14.321],[-2.502,3.225]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[144.464,145.854],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 40","ix":33,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[2.012,13.776],[-10.885,-8.224],[-1.007,0.364],[-0.372,0.644],[0.899,6.137],[1.739,-4.747]],"o":[[-1.391,13.572],[0.854,0.645],[0.699,-0.252],[3.102,-5.372],[-1.724,4.539],[-9.485,-5.759]],"v":[[-11.22,-18.574],[3.434,17.547],[6.367,18.468],[7.886,16.901],[11.131,-0.536],[6.188,13.205]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[113.735,145.324],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 60","ix":34,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-1.446,-0.05],[-0.096,1.445],[1.439,0.142],[0,0],[0.004,-1.448]],"o":[[1.447,0.051],[0.096,-1.444],[0,0],[-1.447,0.041],[-0.005,1.447]],"v":[[-0.14,2.794],[2.773,0.162],[0.235,-2.833],[-0.123,-2.845],[-2.863,-0.033]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[136.831,174.342],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 61","ix":35,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.44,0.142],[0,0],[0.005,-1.447],[-1.446,-0.05],[-0.096,1.444]],"o":[[0,0],[-1.447,0.042],[-0.004,1.447],[1.447,0.051],[0.095,-1.444]],"v":[[0.234,-2.833],[-0.123,-2.845],[-2.864,-0.033],[-0.141,2.795],[2.773,0.163]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[136.831,214.45],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 62","ix":36,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.44,0.142],[0,0],[0.005,-1.447],[-1.446,-0.051],[-0.096,1.444]],"o":[[0,0],[-1.447,0.041],[-0.004,1.447],[1.447,0.05],[0.095,-1.444]],"v":[[0.234,-2.832],[-0.123,-2.845],[-2.864,-0.033],[-0.141,2.795],[2.773,0.162]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[136.831,252.991],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 63","ix":37,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.253,-1.986],[0.654,-3.661],[0.659,-2.146],[1.178,-2.304],[3.475,-5.348],[0,0],[0,0],[0.006,3.852],[0,0],[3.229,-2.605],[0,0],[0.565,-7.952],[-0.574,-10.56],[-0.33,-7.996],[-0.241,-4.468],[-0.071,-1.201],[-0.022,-0.324],[0,0],[0.034,0.3],[0.059,0.568],[0.147,2.234],[0.364,7.995],[0.472,10.565],[-0.917,12.217],[-2.189,6.899],[0,0],[0,0],[-2.982,2.396],[0,0],[0,0],[0.005,-3.533],[0,0],[-0.861,7.49],[0.226,1.962],[0.121,0.496]],"o":[[0,0],[0.272,1.973],[-0.329,1.83],[-0.687,2.149],[-2.385,4.6],[0,0],[0,0],[-0.005,-3.533],[0,0],[-2.976,2.403],[0,0],[-2.165,6.858],[-0.914,12.17],[0.492,10.575],[0.317,7.996],[0.131,2.214],[0.038,0.569],[0.017,0.302],[0,0],[-0.034,-0.323],[-0.111,-1.173],[-0.304,-4.465],[-0.357,-8.001],[-0.6,-10.552],[0.567,-7.984],[0,0],[0,0],[3.233,-2.599],[0,0],[0,0],[-0.006,3.852],[0,0],[6.87,-10.654],[0.688,-3.634],[-0.096,-0.985],[-0.158,-0.486]],"v":[[13.349,-73.151],[14.116,-70.207],[13.696,-61.618],[12.264,-55.631],[9.357,-48.98],[0.495,-34.018],[0.088,-33.393],[0.087,-34.141],[0.071,-45.236],[0.459,-45.05],[-8.88,-37.512],[-8.798,-37.63],[-12.952,-15.182],[-12.555,19.188],[-11.411,47.281],[-10.564,66.214],[-10.26,71.357],[-10.171,72.694],[-10.158,73.151],[-10.224,72.699],[-10.364,71.365],[-10.766,66.226],[-11.779,47.297],[-13.034,19.213],[-13.471,-15.221],[-9.277,-37.784],[-9.254,-37.856],[-9.195,-37.903],[0.16,-45.422],[0.549,-45.735],[0.548,-45.236],[0.532,-34.141],[0.124,-34.263],[13.442,-61.664],[13.981,-70.191],[13.571,-72.407]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[141.652,194.315],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 64","ix":38,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.01,-0.035],[3.216,0.436],[2.14,0.004],[2.436,-0.416],[2.023,-0.701],[1.431,-0.763],[0.06,0.087],[-0.735,0.542],[-0.556,0.337],[-0.729,0.374],[-2.026,0.768],[-2.465,0.446],[-2.167,0.006],[-1.614,-0.277],[-0.636,-0.133],[-0.436,-0.136]],"o":[[-0.028,0.103],[-1.605,-0.228],[-2.141,0.031],[-2.433,0.441],[-2.011,0.735],[-2.874,1.506],[-0.022,-0.029],[0.364,-0.278],[0.552,-0.342],[1.422,-0.811],[2.038,-0.735],[2.468,-0.421],[2.167,0.031],[0.813,0.102],[0.638,0.127],[0.877,0.261]],"v":[[17.144,-2.176],[11.964,-3.101],[6.289,-3.46],[-0.641,-2.837],[-7.367,-1.057],[-12.581,1.219],[-17.132,3.855],[-16.023,2.97],[-14.648,2.029],[-12.754,0.894],[-7.531,-1.508],[-0.73,-3.35],[6.289,-3.941],[12.018,-3.465],[14.185,-3.045],[15.798,-2.631]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[222.692,221.264],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 65","ix":39,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.012,-0.014],[3.056,1.155],[4.791,-1.349],[1.871,-1.06],[1.24,-1.06],[0.651,-0.644],[0.028,0.025],[-0.608,0.691],[-1.224,1.106],[-1.888,1.112],[-2.438,0.681],[-3.041,-1.295],[-0.729,-0.568],[-0.183,-0.159]],"o":[[-0.071,0.107],[-3.009,-1.179],[-2.391,0.668],[-1.868,1.07],[-1.244,1.06],[-0.652,0.646],[-0.026,-0.023],[0.609,-0.69],[1.223,-1.107],[1.892,-1.103],[4.908,-1.383],[1.536,0.631],[0.375,0.27],[0.179,0.165]],"v":[[16.045,-0.95],[11.439,-3.49],[-1.028,-3.865],[-7.475,-1.182],[-12.144,2.117],[-14.989,4.747],[-16.031,5.725],[-15.136,4.609],[-12.387,1.84],[-7.715,-1.596],[-1.168,-4.367],[11.572,-3.833],[14.981,-1.91],[15.791,-1.221]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[223.699,228.039],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 66","ix":40,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.023,-0.019],[2.466,1.821],[4.667,0.262],[2.611,-1.54],[0.074,0.086],[-0.627,0.598],[-1.322,0.822],[-4.8,-0.261],[-2.41,-1.926],[-0.555,-0.666]],"o":[[-0.083,0.077],[-2.425,-1.818],[-4.669,-0.254],[-2.65,1.54],[-0.022,-0.021],[0.625,-0.601],[2.607,-1.648],[4.798,0.269],[1.223,0.962],[0.558,0.664]],"v":[[15.076,4.021],[11.393,0.701],[0.359,-3.317],[-11.053,-0.537],[-15.076,2.359],[-14.165,1.371],[-11.24,-0.853],[0.387,-3.837],[11.615,0.407],[14.277,2.938]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[226.092,232.301],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 67","ix":41,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.036,0],[0.042,0.631],[0.06,1.035],[0.047,3.457],[-0.209,2.261],[-0.113,0.625],[-0.037,-0.004],[0.106,-2.254],[-0.052,-3.449],[-0.044,-2.399],[0.018,-0.634]],"o":[[-0.035,0.001],[-0.044,-0.75],[-0.118,-2.26],[-0.052,-3.458],[0.098,-1.13],[0.114,-0.625],[0.081,0.014],[-0.114,2.254],[0.062,3.38],[0.012,1.132],[-0.021,0.633]],"v":[[0.167,12.491],[0.049,11.511],[-0.108,8.836],[-0.425,-0.004],[-0.169,-8.859],[0.166,-11.526],[0.396,-12.488],[0.198,-8.833],[0.097,-0.011],[0.26,8.824],[0.252,11.507]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9216,0.6,0.4314],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[204.487,236.736],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 75","ix":43,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.011,-0.007],[0.171,0.221],[0.302,0.404],[1.142,1.582],[3.831,5.406],[0,0],[1.694,-4.973],[0,0],[0,0],[0.192,0.124],[1.677,1.849],[1.151,1.978],[0.942,3.315],[0.327,1.896],[0.096,0.548],[0.031,0.125],[-0.007,0.005],[-0.364,-1.885],[-0.976,-3.292],[-2.296,-3.905],[-1.647,-1.823],[-2.197,-1.394],[-0.174,-0.112],[0,0],[-1.472,4.279],[0,0],[0,0],[-2.297,-3.323],[-0.635,-0.937],[-0.178,-0.27]],"o":[[-0.011,0.008],[-0.194,-0.259],[-0.663,-0.919],[-2.336,-3.297],[0,0],[-1.458,4.282],[0,0],[0,0],[-0.178,-0.114],[-2.24,-1.419],[-1.67,-1.858],[-2.301,-3.966],[-0.936,-3.324],[-0.158,-0.908],[-0.045,-0.249],[-0.047,-0.116],[0.11,-0.048],[0.389,1.884],[0.981,3.281],[1.149,1.947],[1.656,1.814],[0.189,0.121],[0,0],[1.709,-4.967],[0,0],[0,0],[3.769,5.45],[1.096,1.614],[0.277,0.422],[0.149,0.236]],"v":[[17.745,18.804],[17.47,18.479],[16.731,17.49],[14.011,13.721],[4.585,0.421],[5.005,0.362],[0.244,14.341],[0.137,14.656],[-0.136,14.48],[-0.697,14.118],[-6.59,9.143],[-10.797,3.325],[-15.427,-7.868],[-17.18,-15.841],[-17.559,-18.022],[-17.686,-18.579],[-17.749,-18.764],[-16.981,-15.878],[-15.073,-7.97],[-10.383,3.083],[-6.213,8.8],[-0.419,13.679],[0.132,14.033],[-0.249,14.172],[4.555,0.207],[4.708,-0.238],[4.975,0.148],[14.246,13.556],[16.856,17.402],[17.534,18.434]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[118.424,144.772],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 76","ix":44,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.006,-0.035],[0.799,0.095],[1.433,0.107],[4.351,-0.514],[2.731,-0.887],[0.752,-0.288],[0.014,0.034],[-0.733,0.34],[-1.361,0.489],[-4.393,0.53],[-2.874,-0.313],[-0.792,-0.165]],"o":[[-0.006,0.035],[-0.798,-0.102],[-2.863,-0.217],[-4.351,0.527],[-1.368,0.44],[-0.754,0.281],[-0.015,-0.032],[0.731,-0.346],[2.72,-0.982],[4.394,-0.521],[1.438,0.154],[0.793,0.157]],"v":[[15.598,-1.276],[14.346,-1.372],[10.956,-1.697],[-0.239,-1.451],[-11.178,0.952],[-14.396,2.067],[-15.589,2.454],[-14.473,1.879],[-11.297,0.602],[-0.301,-1.967],[10.989,-2.064],[14.377,-1.572]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[38.24,216.807],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 77","ix":45,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.006,0.098],[-0.59,0.059],[-1.06,-0.054],[-1.371,-0.317],[-1.472,-0.692],[-1.125,-0.843],[-0.704,-0.797],[-0.314,-0.502],[0.03,-0.019],[1.466,1.49],[1.101,0.826],[1.431,0.693],[1.329,0.361],[1.041,0.092]],"o":[[-0.003,-0.036],[0.589,-0.073],[1.062,0.047],[1.365,0.343],[1.465,0.709],[1.11,0.866],[0.71,0.789],[0.325,0.497],[-0.08,0.057],[-0.726,-0.75],[-1.118,-0.806],[-1.439,-0.676],[-1.336,-0.335],[-2.08,-0.201]],"v":[[-10.054,-4.699],[-9.144,-4.845],[-6.634,-4.881],[-2.943,-4.335],[1.367,-2.806],[5.268,-0.419],[8.015,2.108],[9.568,4.079],[10.027,4.878],[7.748,2.361],[4.981,-0.034],[1.143,-2.336],[-3.06,-3.87],[-6.663,-4.513]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[39.425,223.241],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 78","ix":46,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.012,-0.013],[1.246,0.709],[2.505,0.547],[1.501,0.094],[1.635,-0.376],[2.566,-2.913],[0.945,-3.243],[0.258,-2.556],[0.088,-1.439],[0.027,-0.435],[0.018,0.001],[0.004,0.38],[-0.003,0.675],[-0.207,2.577],[-0.947,3.304],[-2.666,2.975],[-3.403,0.73],[-1.517,-0.114],[-1.262,-0.302],[-1.232,-0.769],[-0.282,-0.258]],"o":[[-0.036,0.041],[-1.243,-0.703],[-1.25,-0.274],[-1.5,-0.095],[-3.282,0.731],[-2.606,2.912],[-0.959,3.251],[-0.254,2.559],[-0.042,0.673],[-0.029,0.379],[-0.018,0],[0.001,-0.436],[0.027,-1.442],[0.214,-2.573],[0.931,-3.293],[2.625,-2.983],[1.697,-0.377],[1.525,0.116],[2.528,0.599],[0.615,0.389],[0.278,0.264]],"v":[[16.474,-12.242],[14.624,-13.482],[8.943,-15.54],[4.803,-16.121],[0.056,-15.813],[-9.054,-10.094],[-14.213,-0.503],[-15.84,8.351],[-16.277,14.433],[-16.381,16.089],[-16.452,16.667],[-16.486,16.087],[-16.48,14.425],[-16.208,8.318],[-14.673,-0.637],[-9.444,-10.438],[-0.048,-16.28],[4.832,-16.553],[9.026,-15.898],[14.728,-13.657],[16.069,-12.661]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.149,0.1961,0.2196],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.73,241.719],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 79","ix":47,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[3.475,-7.448],[1.737,-6.455],[-13.158,-4.717],[0,0],[0,0],[0,0]],"o":[[0,0],[-3.476,7.449],[-1.738,6.455],[0,0],[0,0],[0,0],[0,0]],"v":[[17.681,-63.43],[5.835,-44.571],[-28.18,31.899],[-21.229,63.43],[5.835,63.43],[32.996,8.505],[34.387,-55.246]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2392,0.8471,0.6549],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[34.636,205.724],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 81","ix":48,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[6.33,-6.933],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[21.508,0.43],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,-1.508],[0,0],[0,0],[0,0],[0,0],[-21.508,-0.43],[0,0],[0,0]],"v":[[-42.877,-64.835],[-74.61,-49.934],[-53.811,46.834],[-54.143,77.366],[66.295,77.366],[67.376,-24.008],[74.61,-63.198],[31.804,-70.734],[23.738,-69.241],[2.323,-46.611],[-20.702,-69.068],[-31.502,-67.72]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2392,0.8471,0.6549],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[126.928,192.228],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 82","ix":49,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-4.824,-17.278],[0,0],[-0.904,-7.355],[2.713,-3.316],[0,0],[0,0],[0,0]],"o":[[0,0],[4.823,17.28],[0,0],[0.904,7.353],[-2.713,3.316],[0,0],[0,0],[0,0]],"v":[[-18.09,-67.652],[0.468,-43.682],[20.062,18.597],[29.407,35.881],[25.79,64.336],[19.208,67.103],[-16.32,63.733],[-30.311,-29.943]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2392,0.8471,0.6549],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[219.628,196.682],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":0,"nm":"mouth","sr":1,"st":-1.6,"op":460,"ip":-1.6,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[439.688,110.938,0],"ix":1},"s":{"a":0,"k":[7,7,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[21.877,45.845,0],"ix":2},"r":{"a":0,"k":1,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":820,"h":800,"refId":"comp_0","ind":6,"parent":7},{"ty":4,"nm":"DESIGNED BY FREEPIK Outlines","sr":1,"st":0,"op":461.6,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[22.706,61.751,0],"ix":1},"s":{"a":0,"k":[244,244,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[360.854,256.19,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.215,-0.744],[0.724,-1.727],[0.459,-0.314],[0.242,0.502],[-0.269,0.466],[0.452,0.292],[0.222,0.117],[-0.124,0.53],[-0.365,0.661],[-0.74,-0.012]],"o":[[0.521,1.799],[-0.216,0.513],[-0.46,0.313],[-0.233,-0.485],[0.269,-0.466],[-0.21,-0.136],[-0.482,-0.255],[0.172,-0.735],[0.357,-0.647],[0.774,0.014]],"v":[[1.813,-2.789],[0.871,2.634],[-0.042,4.004],[-1.494,3.768],[-1.113,2.271],[-1.144,0.814],[-1.852,0.573],[-2.207,-0.901],[-1.397,-3.007],[0.266,-4.305]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9765,0.6902,0.5725],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[41.97,35.618],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.093,-2.03],[-2.03,-0.093],[-0.092,2.031],[2.029,0.092]],"o":[[-0.093,2.03],[2.03,0.092],[0.092,-2.029],[-2.031,-0.093]],"v":[[-3.675,-0.168],[-0.167,3.677],[3.677,0.167],[0.169,-3.676]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9765,0.6902,0.5725],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[31.208,39.908],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.093,-2.03],[-2.03,-0.093],[-0.093,2.031],[2.03,0.092]],"o":[[-0.092,2.03],[2.03,0.093],[0.092,-2.03],[-2.031,-0.093]],"v":[[-3.676,-0.167],[-0.167,3.676],[3.677,0.167],[0.168,-3.676]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9765,0.6902,0.5725],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[12.547,39.381],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.049,-1.076],[1.075,-0.049],[0.049,1.075],[-1.075,0.048]],"o":[[0.05,1.075],[-1.076,0.049],[-0.048,-1.075],[1.075,-0.049]],"v":[[1.946,-0.089],[0.089,1.946],[-1.948,0.088],[-0.089,-1.946]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.2039,0.2],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[16.442,32.762],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.049,-1.076],[1.075,-0.049],[0.049,1.075],[-1.076,0.048]],"o":[[0.049,1.075],[-1.076,0.049],[-0.048,-1.075],[1.075,-0.049]],"v":[[1.947,-0.089],[0.089,1.946],[-1.948,0.088],[-0.089,-1.946]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.2039,0.2],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[26.809,32.762],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 6","ix":6,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.383,0.735],[0,0],[2.516,-1.291],[-0.663,-0.239],[-0.675,0.093],[-1.078,0.233]],"o":[[0,0],[-2.221,-0.859],[-0.041,0.733],[0.663,0.24],[1.132,-0.155],[0.81,-0.174]],"v":[[3.56,-0.893],[3.551,-0.906],[-3.902,-0.121],[-2.643,1.526],[-0.603,1.583],[2.643,0.905]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.2039,0.2],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[14.583,26.876],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 7","ix":7,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.408,0.716],[0,0],[-2.745,-1.481],[0.722,-0.198],[0.734,0.14],[1.236,0.318]],"o":[[0,0],[1.306,-0.66],[0.048,0.747],[-0.72,0.198],[-1.294,-0.246],[-0.798,-0.205]],"v":[[-3.888,-1.187],[-3.872,-1.214],[4.248,0.092],[2.883,1.676],[0.662,1.595],[-3.048,0.641]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.2039,0.2],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[26.907,27.229],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 8","ix":8,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.119,0.15],[-0.433,-0.014],[-0.229,-0.324],[0.22,-0.215],[0.446,0.03],[0.184,0.241]],"o":[[0.271,-0.29],[0.43,0.044],[0.097,0.164],[-0.214,0.214],[-0.446,-0.03],[-0.188,-0.242]],"v":[[-1.139,-0.423],[0.036,-0.714],[1.161,-0.266],[1.002,0.352],[-0.06,0.699],[-1.065,0.212]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9647,0.6157,0.4902],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[21.705,39.129],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 9","ix":9,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-2.388,-0.134],[-1.433,5.553],[-2.168,-0.979],[-0.165,2.906],[-5.714,-4.366],[-0.512,-1.297],[0,0],[4.773,-2.087],[-0.489,-1.918],[0,0],[1.977,-0.697],[-0.1,-3.057],[0,0],[0,0],[1.818,5.363],[2.677,0.413],[0,0],[5.546,-0.267],[2.822,4.781]],"o":[[-3.998,-3.431],[2.169,0.979],[-2.272,-2.051],[0,0],[1.686,1.288],[0,0],[0,0],[1.016,0.705],[1.319,5.172],[0,0],[-1.733,0.611],[0,0],[0,0],[0,0],[-2.845,1.417],[0,0],[-4.501,3.251],[-5.546,0.267],[2.388,0.133]],"v":[[-16.684,-0.461],[-21.617,-14.245],[-15.23,-11.487],[-17.831,-18.307],[14.794,-8.167],[17.948,-4.376],[22.039,-9.405],[19.708,-1.242],[22.174,2.542],[19.643,11.885],[16.233,11.552],[12.658,18.307],[11.067,18.098],[11.273,11.667],[7.346,4.746],[-1.592,6.418],[3.38,1.59],[-10.221,6.354],[-24.482,-0.56]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.2039,0.2],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[24.731,18.558],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 10","ix":10,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-0.109,7.669],[-1.824,4.773],[-0.002,0.003],[-0.002,0.004],[-1.828,1.081],[-4.181,0.333],[-3.823,-5.72],[0.581,-2.017],[0.516,-4.45],[1.453,-0.294],[14.935,1.16]],"o":[[0.064,-4.562],[0.001,-0.004],[0.002,-0.004],[0.805,-2.098],[2.003,-1.441],[8.787,-0.701],[2.848,4.264],[1.624,0.147],[-0.79,6.799],[0,0],[-14.936,-1.159]],"v":[[-17.571,1.347],[-15.958,-14.549],[-15.956,-14.56],[-15.95,-14.571],[-12.099,-19.494],[-3.128,-22.199],[15.193,-13.887],[16.245,-2.012],[19.615,3.565],[12.451,10.793],[-5.195,21.74]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.7529,0.6431],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[26.114,31.731],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 11","ix":11,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[5.516,0.017],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[-2.607,3.915]],"v":[[-6.906,7.045],[-7.158,1.067],[-7.298,0.369],[7.298,-7.062],[6.367,1.972]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9647,0.6157,0.4902],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.565,48.063],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 12","ix":12,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-1.157,0.604],[0,0],[0,0],[0,0],[0,0],[-2.895,-0.465]],"o":[[0,0],[0,0],[0,0],[0,0],[0.116,2.755],[3.465,0.556]],"v":[[8.551,8.728],[7.298,-12.16],[-7.298,-4.729],[-7.158,-4.031],[-11.669,7.703],[-2.777,10.476]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.9843,0.7529,0.6431],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[25.566,53.161],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":7},{"ty":2,"nm":"Plants","sr":1,"st":0,"op":720,"ip":720,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[336.882,85.23,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[384.872,361.232,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"refId":"image_1","ind":8}],"v":"5.7.1","fr":24,"op":137,"ip":0,"assets":[{"id":"image_0","u":"","e":1,"w":87,"h":85,"p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAABVCAMAAAAL3ohVAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAbFBMVEVHcEwgMEBWXmNGUVVGUFRYYWY/Rk1yen5BTFFQWV43QkhOWF2eo6Z1e39LVVtPWF9dZmteZ2uCiItnb3NPWV5dZmtPWVxtdXp+hYmTmZyNlJb6+vomMjiQlpnFyMnf4eKqr7Ht7e7S1NW3u70Lu3gqAAAAG3RSTlMAEIbjO/wi/u+/+/P6cVOf767+ktvRbufR6KyAqSgWAAAC8UlEQVRYw7WZ69qqIBCFS0TAQ+WhrI9Q0Pu/x90WNUUsD9P8w/SNZ7EYx+FwWBSum551RO7xABKuw2hAhCyaqIXAFLHbTviJUSIrboQqBKWOtxXqnWkyYfZsidFtE5VhyT9GSWi6gVrwr6GE76zCnukCakNO6Gm5Bajgi6MK2EJzOLTia0JQdwH1yBK+Mir6XeUjlXx1KMy+SetXfEsQ9hPsF/B2LOch+6DtduyHGe/DvsBnO5dJvi8C69ZzyE4sV74ld3qB2svlBZpyUcX3RzLZeI4AwHJFPdMLCoLLa8NsseQwgUeeOF6AsMbSxTUUl2NvqC4YdqSwI+G43H+/lpAC5Ia9hz0CiOUl7bhpDcnl/d5AoNheCDjztkJkmnsLYbm8FTiugLkX9xfyvgogXcDm0NwibrjWZSsTTEY1ZU1wUg4fJsYN5sJ5towun/9jsF9Ic0EaN8y8DJqc5lp+LP3nmKMxT7+bcaXHz2LeEJFlt4XtY7jPfu2FzpKiHdszQNBwLf8p5rjCGON13NCcDlk/X6ewVRj6sV6iutW3S6jlR31nuVz6Nj/4teGHmffBrA6vCQkiRj8Urwvl6AY8Gk+4pwJ6v2muK8C5OqHBc9F8ftgTlX7VX6G5tS7crwo6/+q8foM2RKArE0/8xA7gC9dXaKwE5SZdCezKn8gALMSgUI0hhSDvLgdkQfkuJ2G3hhh21eAsrOjoOwtswmLcBPSSH6gLaAlstgpghDA/Yw8nkNpa+WbrDya3Y7NzG4GkYDHpHIGU1vWkW5JCmKFCprjeAwI7bRrFCgI7adZCpHUL9nDfj5Vo2rM2PUbWL6LILK3wx6gYzVl0Xfl5X2JbY7LzmKof9zjS7ZN8zUJK+4lA2DLTgfBeJpdP1n4c8FfJ8C+aWC+6LNrZJUEzZwFRNNMNTvN6AfW04YQozcQna0h83UJtdgy7hNbmhJIEpbvO4Nw4u4hiMO+yCJMg2376NjoyjK/ZPQ+C/J4h5pwgmBvjH+9RSIJOvhZ4AAAAAElFTkSuQmCC"},{"id":"image_1","u":"","e":1,"w":674,"h":171,"p":"data:image/png;base64,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"},{"id":"image_2","u":"","e":1,"w":702,"h":2,"p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr4AAAAEAgMAAAAVJ9TcAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAACVBMVEUmMjgnMjhHcEz/u0zyAAAAA3RSTlOAwADQuQgQAAAAIElEQVQoz2NYNbTAAgaygGgo5SCELJsVGIZcCA81BwMAzdV1WnXUW3wAAAAASUVORK5CYII="},{"id":"image_3","u":"","e":1,"w":700,"h":402,"p":"data:image/png;base64,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"},{"nm":"","id":"comp_0","layers":[{"ty":4,"nm":"Layer 10 Outlines 10","sr":1,"st":132,"op":136,"ip":132,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"Layer 9 Outlines 9","sr":1,"st":128,"op":132,"ip":128,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"Layer 8 Outlines 9","sr":1,"st":124,"op":128,"ip":124,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"Layer 10 Outlines 9","sr":1,"st":120,"op":124,"ip":120,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"Layer 9 Outlines 8","sr":1,"st":116,"op":120,"ip":116,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":4,"nm":"Layer 8 Outlines 8","sr":1,"st":112,"op":116,"ip":112,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":6},{"ty":4,"nm":"Layer 10 Outlines 8","sr":1,"st":108,"op":112,"ip":108,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":7},{"ty":4,"nm":"Layer 9 Outlines 7","sr":1,"st":104,"op":108,"ip":104,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":8},{"ty":4,"nm":"Layer 8 Outlines 7","sr":1,"st":100,"op":104,"ip":100,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":9},{"ty":4,"nm":"Layer 10 Outlines 7","sr":1,"st":96,"op":100,"ip":96,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":10},{"ty":4,"nm":"Layer 9 Outlines 6","sr":1,"st":92,"op":96,"ip":92,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":11},{"ty":4,"nm":"Layer 8 Outlines 6","sr":1,"st":88,"op":92,"ip":88,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":12},{"ty":4,"nm":"Layer 10 Outlines 6","sr":1,"st":84,"op":88,"ip":84,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":13},{"ty":4,"nm":"Layer 10 Outlines 5","sr":1,"st":80,"op":84,"ip":80,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":14},{"ty":4,"nm":"Layer 9 Outlines 5","sr":1,"st":76,"op":80,"ip":76,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":15},{"ty":4,"nm":"Layer 8 Outlines 5","sr":1,"st":72,"op":76,"ip":72,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":16},{"ty":4,"nm":"Layer 10 Outlines 4","sr":1,"st":68,"op":72,"ip":68,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":17},{"ty":4,"nm":"Layer 9 Outlines 4","sr":1,"st":64,"op":68,"ip":64,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":18},{"ty":4,"nm":"Layer 8 Outlines 4","sr":1,"st":60,"op":64,"ip":60,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":19},{"ty":4,"nm":"Layer 10 Outlines 3","sr":1,"st":56,"op":60,"ip":56,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":20},{"ty":4,"nm":"Layer 9 Outlines 3","sr":1,"st":52,"op":56,"ip":52,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":21},{"ty":4,"nm":"Layer 8 Outlines 3","sr":1,"st":48,"op":52,"ip":48,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":22},{"ty":4,"nm":"Layer 10 Outlines 2","sr":1,"st":44,"op":48,"ip":44,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":23},{"ty":4,"nm":"Layer 9 Outlines 2","sr":1,"st":40,"op":44,"ip":40,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":24},{"ty":4,"nm":"Layer 8 Outlines 2","sr":1,"st":36,"op":40,"ip":36,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":25},{"ty":4,"nm":"Layer 10 Outlines","sr":1,"st":32,"op":36,"ip":32,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":26},{"ty":4,"nm":"Layer 9 Outlines","sr":1,"st":28,"op":32,"ip":28,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":27},{"ty":4,"nm":"Layer 8 Outlines","sr":1,"st":24,"op":28,"ip":24,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":28},{"ty":4,"nm":"Layer 7 Outlines","sr":1,"st":20,"op":24,"ip":20,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":29},{"ty":4,"nm":"Layer 6 Outlines","sr":1,"st":16,"op":20,"ip":16,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":30},{"ty":4,"nm":"Layer 5 Outlines","sr":1,"st":12,"op":16,"ip":12,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":31},{"ty":4,"nm":"Layer 4 Outlines","sr":1,"st":8,"op":12,"ip":8,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[40.868,43.269,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[432.661,100.781,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[18.189,26.779],[-17.684,-12.126]],"o":[[0,0],[0,0]],"v":[[-16.926,-7.327],[16.926,-7.327]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.489,60.7],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[15.157,-14.147],[-15.159,9.853]],"o":[[0,0],[0,0]],"v":[[-14.779,2.147],[14.779,2.147]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.616,25.206],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-8.084,-16.673],[-18.442,-10.863],[10.61,13.39]],"o":[[0,0],[0,0],[0,0],[0,0],[-10.61,-13.389]],"v":[[14.653,-6.948],[-14.905,-6.948],[-17.179,19.074],[16.674,19.074],[14.653,-5.685]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2784,0.0157,0.0078],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.741,34.3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-15.278],[14.022,0],[0,15.278],[-14.022,0]],"o":[[0,15.278],[-14.023,0],[0,-15.278],[14.022,0]],"v":[[23.368,-0.253],[0,25.769],[-23.368,-0.253],[-0.758,-25.769]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":10,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[40.868,43.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":32},{"ty":4,"nm":"Layer 3 Outlines","sr":1,"st":4,"op":8,"ip":4,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.877,27.507,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.17,99.269,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[25.39,15.158],[-14.401,-7.389]],"o":[[0,0],[0,0]],"v":[[-22.926,-3.885],[22.926,-3.885]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.903,40.269],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-37.327,14.4],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-39.41,-9.853],[-37.704,-4.547],[38.464,-4.547],[39.41,-9.853]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.9725,0.9804],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.092,21.037],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-5.684,-7.579],[0,0],[5.495,7.536],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-13.832,-7.284],[-18.379,9.958],[20.084,9.958],[18.568,-4.105],[13.642,-9.958]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.146,26.995],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[4.358,14.589],[-44.336,14.21],[11.787,-5.28],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.084,-9.948],[38.084,-9.948],[22.358,9.948],[-23.495,9.948]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2431,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[51.471,26.437],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 5","ix":5,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-0.228,-2.83],[-14.775,-10.219],[-11.937,-2.274],[-14.21,8.147],[-7.011,16.863],[-0.304,6.388],[3.467,0.239],[1.136,-0.135]],"o":[[-2.839,-0.07],[0.705,8.721],[0,0],[0,0],[0,0],[0,0],[0.164,-3.472],[-0.869,-0.059],[0,0]],"v":[[-45.494,-27.187],[-50.399,-22.033],[-31.615,14.372],[-8.689,24.035],[24.089,19.109],[47.774,-5.523],[50.463,-18.365],[44.52,-25.138],[41.521,-25.039]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.876,27.507],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":33},{"ty":4,"nm":"Layer 2 Outlines","sr":1,"st":0,"op":4,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50.271,35.018,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[431.064,106.531,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[24.758,27.348],[-26.274,-12.316]],"o":[[0,0],[0,0]],"v":[[-25.768,-7.516],[25.768,-7.516]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.5686,0.6824],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.776,48.692],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[43.643,13.726],[-0.848,5.526],[-30.127,34.295],[-9.474,-6.442],[0,0]],"v":[[-38.466,-25.56],[38.466,-25.219],[31.266,-8.735],[-24.818,-1.914],[-37.576,-23.324]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.2745,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.837,44.227],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 3","ix":3,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[1.041,-0.922],[-0.032,-0.196],[-0.338,-2.063],[-0.297,-0.084],[-22.97,7.628],[-0.871,0.808],[-0.044,2.347],[13.559,-0.001],[6.78,0],[3.468,0]],"o":[[-0.148,0.131],[0.338,2.063],[0.296,0.087],[23.286,6.654],[1.128,-0.375],[1.722,-1.596],[-13.56,0.001],[-6.78,0.001],[-3.469,0.001],[-0.909,0.001]],"v":[[-39.443,-7.57],[-39.629,-7.082],[-38.615,-0.892],[-37.725,-0.635],[33.924,0.864],[37.939,-0.551],[38.873,-7.945],[-1.807,-7.942],[-22.146,-7.94],[-32.553,-7.939]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.985,19.559],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 4","ix":4,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[-0.379,-3.221],[0,0],[-18.19,-13.074],[-5.874,-1.705],[-13.263,6.063],[-6.442,28.61],[0,0],[3.221,0.379]],"o":[[0,0],[0,0],[0.379,3.221],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-35.621,-33.063],[-44.526,-33.063],[-49.642,-27.379],[-48.505,-14.684],[-26.905,21.695],[-8.147,30.411],[19.326,27],[48.884,-12.789],[50.021,-28.705],[46.232,-33.063]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.8627,0.2157,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[50.271,33.313],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":34}]}]}
\ No newline at end of file
diff --git a/404jobnotfound-remi-ai/frontend/src/avatars/man_avatar.json b/404jobnotfound-remi-ai/frontend/src/avatars/man_avatar.json
new file mode 100644
index 0000000..7b6eb82
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/avatars/man_avatar.json
@@ -0,0 +1 @@
+{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.21","a":"","k":"","d":"","tc":""},"fr":25,"ip":0,"op":68,"w":304,"h":372,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL CONTROL ","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[143.75,167,0],"ix":2},"a":{"a":0,"k":[50,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":68,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"MOuth","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[53.75,73,0],"ix":2},"a":{"a":0,"k":[7.5,18,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.106,-0.95],[-9.774,0],[-1.018,9.534],[1.074,0],[7.651,0]],"o":[[1.058,9.492],[9.804,0],[0.082,-0.767],[-14.894,0],[-1.08,0]],"v":[[-18.882,9.128],[0,26],[18.892,9.04],[17.043,7],[-16.913,7]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.125,12.5],"ix":2},"a":{"a":0,"k":[-0.132,6.905],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":0,"s":[95,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":8,"s":[115,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":11,"s":[115,97]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":12,"s":[115,78]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":13,"s":[115,97]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":19,"s":[115,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":20,"s":[115,54]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":23,"s":[115,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":26,"s":[115,97]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":27,"s":[115,78]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":28,"s":[115,20]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":34,"s":[115,67]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":37,"s":[115,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":40,"s":[115,67]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":43,"s":[115,16]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":48,"s":[115,86]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":51,"s":[90,38]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":54,"s":[77,77]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":56,"s":[77,70]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":57,"s":[77,95]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":60,"s":[77,47]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":64,"s":[77,24]},{"t":67,"s":[95,16]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":68,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 10","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46.25,55,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.631,0],[-21.29,0],[-5.72,-2.799],[0,0],[-2.379,-0.076],[-0.542,0.188],[-14.939,0],[-0.691,-0.675],[0,-1.596],[0,0],[1.634,0],[0,-2.886],[0,1.596],[0,0],[10.628,0],[5.059,-2.085],[0,0],[0,0],[0,0],[0,0],[0.732,0.18],[1.855,-0.381],[0.579,-0.283],[0,0],[0,0],[0,0],[0,0],[14.439,0],[3.604,-1.379],[0,0],[0,2.886],[0,0],[0,1.596],[0,0]],"o":[[0.691,-0.675],[17.851,0],[0,0],[0.398,0.141],[2.167,-0.093],[6.529,-3.175],[21.29,0],[1.634,0],[0,0],[0,1.596],[0,0],[0,2.886],[0,0],[-3.603,-1.379],[-11.842,0],[0,0],[0,0],[0,0],[0,0],[-0.245,-0.097],[-2.04,-0.503],[-0.68,0.14],[0,0],[0,0],[0,0],[0,0],[-4.363,-2.033],[-10.628,0],[0,0],[0,1.596],[0,-2.886],[-1.631,0],[0,0],[0,-1.596]],"v":[[-62.045,-42.228],[-32.5,-48],[-5.15,-43.348],[-4.731,-43.141],[0.079,-42.234],[4.642,-43.103],[32.5,-48],[62.045,-42.228],[65,-39.343],[65,-36.457],[62.045,-33.571],[55.144,-30.685],[53.182,-36.457],[53.182,-39.268],[32.5,-43.214],[9.702,-39.029],[9.759,-38.892],[9.756,-36.906],[7.539,-31.556],[4.8,-32.639],[3.296,-33.09],[-2.696,-33.366],[-4.587,-32.733],[-7.23,-31.442],[-9.873,-36.604],[-9.756,-38.898],[-9.675,-39.093],[-32.5,-43.214],[-53.182,-39.269],[-53.182,-36.457],[-56.136,-30.685],[-62.045,-33.571],[-65,-36.457],[-65,-39.343]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098045468,0.172549024224,0.184313729405,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Stuff","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-8.661],[-14.851,0],[0,0],[0,9.125],[19.385,0]],"o":[[-19.385,0],[0,7.07],[0,0],[12.365,0],[0,-8.661],[0,0]],"v":[[29.385,-42],[10,-26.498],[27.971,-11],[31,-11],[52,-26.498],[32.615,-42]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[14.721,0],[0,0],[0,12.836],[-21.713,0],[0,0],[0,-10.373]],"o":[[0,0],[-13.927,0],[0,-10.373],[0,0],[21.713,0],[0,12.069]],"v":[[31,-7],[28.242,-7],[6,-27.5],[29.53,-48],[32.47,-48],[56,-27.5]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098045468,0.172549024224,0.184313729405,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Right","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-8.661],[-14.855,0],[0,0],[0,9.125],[19.385,0]],"o":[[-19.385,0],[0,7.07],[0,0],[12.365,0],[0,-8.661],[0,0]],"v":[[-32.615,-42],[-52,-26.498],[-34.029,-11],[-31,-11],[-10,-26.498],[-29.385,-42]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[14.721,0],[0,0],[0,12.836],[-21.713,0],[0,0],[0,-10.373]],"o":[[0,0],[-13.927,0],[0,-10.373],[0,0],[21.713,0],[0,12.069]],"v":[[-31,-7],[-33.758,-7],[-56,-27.5],[-32.47,-48],[-29.53,-48],[-6,-27.5]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.145098045468,0.172549024224,0.184313729405,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Left","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Wayfarers","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":68,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 4","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46.75,29,0],"ix":2},"a":{"a":0,"k":[0.5,-26,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.597,6.993],[3.07,6.512],[7.329,-3.516],[7.565,1.606],[7.502,0.446],[8.4,-9.215],[1.221,-2.037],[0.415,-1.879],[0.445,-0.732],[0.773,-0.587],[1.255,-1.517],[1.234,-3.985],[-5.304,-13.006],[-1.288,3.714],[-0.001,0.741],[-6.541,10.088],[-2.011,0.099],[-28.063,1.268],[-2.338,2.466],[-1.823,-3.408],[-2.01,0.038],[-0.413,0.993],[0.328,7.926]],"o":[[5.406,-4.95],[-3.768,-7.995],[-6.908,3.315],[-7.259,-1.541],[-12.325,-0.733],[-1.603,1.758],[-0.977,1.63],[-0.198,0.893],[-0.481,0.79],[-1.567,1.189],[-2.666,3.222],[-4.103,13.245],[0.707,1.734],[0.255,-0.734],[0.005,-2.72],[2.129,-3.284],[1.065,1.693],[12.662,-0.572],[1.029,5.533],[5.266,9.846],[2.01,-0.038],[3.072,-7.375],[-0.427,-10.202]],"v":[[50.68,-101.051],[54.318,-122.551],[35.572,-128.031],[14.95,-125.218],[-6.697,-129.924],[-39.397,-116.871],[-43.512,-111.066],[-46.005,-105.808],[-46.28,-101.978],[-49.349,-99.876],[-53.529,-95.829],[-58.897,-85.257],[-58.043,-43.253],[-53.857,-41.615],[-54.19,-45.55],[-46.143,-76.367],[-32.159,-92.046],[7.783,-80.805],[32.521,-89.532],[47.336,-72.308],[55.781,-42.043],[59.648,-48.273],[62.915,-72.832]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.839215695858,0.701960802078,0.439215689898,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Short-Hair","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.399,6.119],[1.044,5.866],[0.689,0],[1.032,-9.059],[0.213,-2.718],[0.532,-2.124],[2.645,-0.932],[5.637,2.817],[7.482,-4.766],[7.318,-3.656],[6.6,2.327],[0.678,2.707],[0.171,2.195],[0.309,2.708],[0.232,9.109],[0.281,-1.579],[0.388,-5.955],[-1.255,-5.996],[-0.75,-2.828],[-0.373,-3.226],[-3.229,-5.251],[-2.043,-2.045],[-2.122,-2.097],[-5.92,-0.572],[-9.994,0],[-5.312,4.507],[-3.956,3.908],[-1.966,1.969],[-1.561,2.538],[-0.706,6.104],[-0.834,3.143],[-0.599,2.864]],"o":[[-0.388,-5.955],[-0.281,-1.579],[-0.232,9.109],[-0.309,2.708],[-0.172,2.195],[-0.679,2.707],[-6.6,2.327],[-7.318,-3.656],[-7.645,-4.766],[-5.636,2.817],[-2.645,-0.932],[-0.532,-2.124],[-0.213,-2.718],[-1.032,-9.059],[-0.689,0],[-1.044,5.866],[-0.399,6.119],[0.599,2.864],[0.834,3.143],[0.706,6.104],[1.561,2.538],[1.966,1.969],[3.956,3.908],[5.312,4.507],[9.995,0],[5.919,-0.572],[2.122,-2.097],[2.043,-2.045],[3.229,-5.251],[0.373,-3.226],[0.75,-2.828],[1.254,-5.996]],"v":[[60.863,-12.015],[58.234,-29.714],[55.735,-42],[53.67,-14.861],[52.825,-6.726],[52.428,0.246],[45.703,6.411],[27.961,-3.709],[0.582,-3.47],[-26.961,-3.709],[-44.703,6.411],[-51.428,0.246],[-51.825,-6.726],[-52.67,-14.861],[-54.735,-42],[-57.234,-29.714],[-59.862,-12.015],[-58.53,6.163],[-56.481,14.704],[-56.428,27.192],[-49.617,50.451],[-44.184,56.619],[-39.274,63.737],[-23.634,70.543],[0.5,78],[24.635,70.543],[40.274,63.737],[45.184,56.619],[50.617,50.451],[57.428,27.192],[57.481,14.704],[59.531,6.163]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-0.005,-0.002],[0.006,0.002]],"o":[[0.004,0.002],[-0.005,-0.002],[0,0]],"v":[[-18.155,26.901],[-18.138,26.908],[-18.155,26.901]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[-0.001,0],[0.001,-0.001]],"o":[[0.001,-0.001],[-0.002,0],[0,0]],"v":[[19.142,26.906],[19.146,26.905],[19.142,26.906]],"c":false},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[-2.351,1.389],[-0.439,0.436],[-0.734,-0.434],[-2.183,-1.633],[0.177,-2.966],[9.689,-0.978],[3.737,0],[2.115,-2.353],[0.212,3.559],[-2.21,1.654]],"o":[[2.183,-1.633],[0.734,-0.434],[0.439,0.436],[2.351,1.389],[2.21,1.654],[-0.212,3.559],[-2.115,-2.353],[-3.736,0],[-9.689,-0.978],[-0.177,-2.966],[0,0]],"v":[[-18.82,9.737],[-1.242,6.089],[0.5,4.78],[2.242,6.089],[19.82,9.737],[23.467,18.151],[9.672,31.181],[0.5,27.31],[-8.672,31.181],[-22.467,18.151],[-18.82,9.737]],"c":false},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.172549024224,0.105882354081,0.0941176489,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":68,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 3","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46.25,27,0],"ix":2},"a":{"a":0,"k":[0,-28,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.853,-2.318],[0,0],[-4.858,2.332],[0.581,-0.045],[3.412,6.294],[0.076,-0.174]],"o":[[0,0],[5.242,2.081],[0.567,-0.272],[-14.919,1.151],[-0.101,-0.187],[-2.307,5.319]],"v":[[24.766,-37.578],[25.677,-37.176],[43.723,-38.299],[43.321,-39.407],[14.946,-53.847],[14.464,-53.881]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.853,-2.318],[0,0],[4.858,2.332],[-0.581,-0.045],[-3.412,6.294],[-0.076,-0.174]],"o":[[0,0],[-5.242,2.081],[-0.567,-0.272],[14.919,1.151],[0.101,-0.187],[2.307,5.319]],"v":[[-24.766,-37.578],[-25.677,-37.176],[-43.723,-38.299],[-43.321,-39.407],[-14.946,-53.847],[-14.464,-53.881]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eyebrow","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[26,-28],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[-26,-28],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Eye","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.627,0],[0,0],[0,4.418]],"o":[[0,4.418],[0,0],[6.627,0],[0,0]],"v":[[-12,-10],[0,-2],[0,-2],[12,-10]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Nose","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":68,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[140,259.467,0],"ix":2},"a":{"a":0,"k":[0,87.467,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.972,0.036],[7.333,-35.333],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[4,19.333],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.028,-0.631]],"v":[[31,58],[26,140],[42,140],[56,104],[50,95],[56,89],[37,59]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.184313729405,0.262745112181,0.317647069693,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.972,0.036],[-7.333,-35.333],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-4,19.333],[0,0],[0,0],[0,0],[0,0],[0,0],[2.028,-0.631]],"v":[[-31,58],[-26,140],[-42,140],[-56,104],[-50,95],[-56,89],[-37,59]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.184313729405,0.262745112181,0.317647069693,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Wing","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-1.424,-1.107],[0,0]],"o":[[0,0],[0,0],[1.443,-1.082],[0,0],[0,0]],"v":[[49,116],[58.556,108.833],[58.556,108.833],[63.412,108.876],[70,114]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.901960790157,0.901960790157,0.901960790157,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Pocket-hanky","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.401,-12.08],[0,0],[0,0],[37.796,2.189],[0,-14.306]],"o":[[0,0],[0,0],[0,-38.345],[3.036,11.597],[0,15.209]],"v":[[31.638,140],[100,140],[100,131.052],[32.229,59.174],[37,98.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-3.045,11.609],[0,-38.687],[0,0],[0,0],[0,0],[0,15.209]],"o":[[-38.272,1.682],[0,0],[0,0],[0,0],[-3.401,-12.08],[0,-14.327]],"v":[[-31.215,59.122],[-100,131.052],[-100,131.052],[-100,140],[-30.638,140],[-36,98.5]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.227450981736,0.298039227724,0.352941185236,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Saco","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21.89,0],[0,-14.864],[21.89,0],[0,14.864]],"o":[[21.89,0],[0,14.864],[-21.89,0],[0,-14.864]],"v":[[0.5,34.934],[40.135,61.848],[0.5,88.761],[-39.135,61.848]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.026,0.349],[0,-37.757],[0,0],[0,0],[0,0],[-37.453,2.545],[0,-0.378],[-18.502,0],[0,11.863]],"o":[[36.976,3.03],[0,0],[0,0],[0,0],[0,-38.099],[-0.03,0.374],[0,11.863],[18.502,0],[0,-0.353]],"v":[[33.96,59.295],[100,131.052],[100,140],[-100,140],[-100,131.052],[-32.955,59.22],[-33,60.348],[0.5,81.828],[34,60.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"react-path-446","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.026,0.349],[0,-37.757],[0,0],[0,0],[0,0],[-37.453,2.545],[0,-0.378],[-18.502,0],[0,11.863]],"o":[[36.976,3.03],[0,0],[0,0],[0,0],[0,-38.099],[-0.03,0.374],[0,11.863],[18.502,0],[0,-0.353]],"v":[[33.96,59.295],[100,131.052],[100,140],[-100,140],[-100,131.052],[-32.955,59.22],[-33,60.348],[0.5,81.828],[34,60.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019613862,0.180392161012,0.20000000298,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":68,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[140,190,0],"ix":2},"a":{"a":0,"k":[0,18,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[17.237,-8.189],[0,0],[0,0],[0,0],[0,-39.764],[0,0],[0,0],[0,0],[-39.764,0],[0,0],[0,0],[0,0],[2.067,19.806],[0,6.052],[0,0],[-5.675,0.952],[0,0],[0,0],[-30.928,0],[0,0],[0,0],[0,-30.928],[0,0],[0,-5.946],[0,0],[5.825,-0.823]],"o":[[0,0],[0,0],[0,0],[39.764,0],[0,0],[0,0],[0,0],[0,-39.764],[0,0],[0,0],[0,0],[-17.237,-8.189],[-5.825,-0.823],[0,0],[0,-5.946],[0,0],[0,0],[0,-30.928],[0,0],[0,0],[30.928,0],[0,0],[5.675,0.952],[0,0],[0,6.052],[-2.067,19.806]],"v":[[24,40.611],[24,59],[28,59],[28,59],[100,131],[100,140],[-100,140],[-100,131],[-28,59],[-28,59],[-24,59],[-24,40.611],[-55.695,-4.119],[-66,-16],[-66,-30],[-56,-41.834],[-56,-48],[-56,-48],[0,-104],[0,-104],[0,-104],[56,-48],[56,-41.834],[66,-30],[66,-16],[55.695,-4.119]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.68235296011,0.364705890417,0.160784319043,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":68,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/404jobnotfound-remi-ai/frontend/src/avatars/woman_avatar.json b/404jobnotfound-remi-ai/frontend/src/avatars/woman_avatar.json
new file mode 100644
index 0000000..4da9a44
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/avatars/woman_avatar.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":29.9700012207031,"ip":0,"op":84.0000034213901,"w":464,"h":466,"nm":"Woman 1","ddd":0,"assets":[{"id":"image_0","w":233,"h":26,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOkAAAAaCAYAAABSMXtUAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFZklEQVR4nO2cX3baOBTGvytayFvYwfgFW8GcU++gnhWUHYxnBWVWUGYFww5KV1CzgjorGHNO/5D0YWAH4S04te48mCRAcDBgYhv8ewLLFkLWJ11dXQkoKSkpKSkp2R3KugCnQKNhWpUK1W9vX/njsX+TdXn2QdOs+tnZLysM+ebnz29+1uU5BV7FJUgpNWZqM8gG8w0R/Nms1i96I3tJojqs9Bn8VjGjWgsGANpZl2sfqrWgrxjvSACGYV4qhU4p1uRomlWv1WYOMywQ1QnsEbE7Go3Gcc+sHUkb0nSI0QP4fOX2KUF1r65+9FIt+RGi6xdtkOgv1iGBLq+uvtnZlWp/DMP0GPz28QpNwcq5vv7hZleqYhCvK4CJ/vw5+tZf95xYnxF/XJcRwOcM+kc3mmMpW/b+xT5OdNnsgujzah0yuPBWCLMar1w5B9HnhmGWHXcMUrZs3Wj68boCiPljQ5rO2rTFL5pm1au1u3FcRk8fpksi6o5GX70ty32USCk1xcIF8GZduiDxe9HrSsqWrVh9iUkesiKnNH8jpGzZzNxdtjyeg6aCQmvV9F0aSWu1mZNUoAAQzbXUF8MwvVMfWXXZ7CoW/yFGoAAGRRcoAIxGXz0wf4pJfkOC/9Vls6tpVv1FC5YjpGzZhmF6itWX5AIFAD5npic+iyWRMtFOFbso1rgh+1iZmzJjMD48c9swmFWdlyrToQmCWgfAMPYGxodqLfB1/aLQTrJtaUjT2U2cjzDIXr22ZO7qstnd0NiSMgGhL6D6z3mtiswWpswwmFXtY/OKR1OjwEO85QDg+KdEUkpNQThgOAB+SyHLwfXV96XObUmkj06jVBkwkXt3+9o9hoaq6xdtItFJ1FMyfwqCWucY/nccDcPsEfj9pvsIdKkI/TgPZtGYa6UN4F2a+RL4r9XVkydLMLrR9LGhd9zx56dg5QJwg6DmFanhLqwZd5CotzytZYl1y03PUFgra26+t0GivY3vZgsmwaxqrWrjiUiTmjEpMCCwp5Tw8ugN1DSr/vrsrr1tbxmZd6FTtAa4L9Ei/Z27zVzsfnStIPTyWF9LAT0pj5hriPWMx4YFpjg/TQBNAfai6IuKn9X8RcqWraBsMNrYupMqAz0AwDAuOgzR3WGkGTLIqxC5Wb5/5tCai9JCOnPMzRD+vh5978YnP8NiWFvqBdvMEMw+BI2h2BeicpPWy5NSasArjTm05uFZFvazHAaCVCePo0EWaJpVr1ZnPRD9sUc2D+9fQHjAr3Fa9Xu/XKigbCjWUnj/O0GgRGGViQLsozkH9fBSPctmhgS6AQAF+ETPRPIo1oiEBgAM1pDuf5gIEs6xei73ZR740EO6ApgQaAzMo59E9HkdzFQX0YgYfc9msFnHhIm6SZ1oW+2CiUxg6hxo0lwktqrkU2fuCe0iP518RtAUxL3gttrbxnG69VY1TbPq1bOgc6JiLcW5B6cr1t3E+fD0rj/7sOUm8bJEoSnFmSInJNYJCP1dxXlPKpu+G9J0BMPJkc2fFgNBolfOOQ+DlC1bqdDZ08GUO9IO3Ej1ZIYDhEhlwZDA/U0bcUvSY8Eqc5CBlzUlJgxyKxT20m43Bzs+pdEwLQg4BG4j/4IdguBySG4eAytOiYUAAgf5F+yEQS4U+odsNy9yxtFy5AbZOXA4TcDssRBeXqNdSqJ2E6Jik1I2iGxk3tkvBt28nKWVyUFkjYZpoQILDEsAFgPW4YRLUwJ8Bfgg+KUoi4uUUlOKLAiyiMk+bLuZzy3n7QYh/KysrNycFnh/Cp1SYR2CogVohkVItseVwTcgRJU4j1A6htP5SjYzd0A9tpuFAJZNlO2mpKRkb/4HAGzwvioGDqgAAAAASUVORK5CYII=","e":1},{"id":"image_1","w":214,"h":11,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAAALCAYAAAADQ3PfAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAB50lEQVRoge3ZsW7TQBgH8P//TCW2WhRY6w5JDImE34DwBOQN2pWNkbF9g/YNwhtkZCPdGC1BK4MRcmYCcrdIxfcx4FaxuQqBai627rflc2L/Hd35s31EKQxHYy36JUFfID7BHAYaiEmpbKNITnrxeq0oJE/TsxiOs6HCcDSu10SKSEi/UtQSkCow7UMgAcFMRGdKedMk+TAHAAJAv/9oCnL/toP/jhcEKpNNIDlYrbmJ6pj0esPI86qD3jQRKBzXfyuQpw3HKw+Oo0/J+SHLTvX2vxz09i0IZusFU0eFllgpr1K7urI4zap3Ba0LH4pR5UuGjiCQAMBuw/EaoaiesT94PAPw3HaYTUDwdP2zqZsKmF2utmZZFhtvlbsmCCJ/6+7lhL8G+jWrXWHTibzmYDCcuz/kry1Ec9L1W9NebxhRYQ7Itu0sbULwVNkO0VK7VDK1HaJpVDJzk+rfKBGd2Q7RUk9Mb5W6ojy3Vj7j2KaBWImoY9tBHKdLPBbHKk3PYgFPbIdpH16sVnc6/Iz1I7OdoJWIoyRJMg8Avn/7+mZn5/4eWHsN6txIyBdfPr9/ZztHU5bLZX7vwcMFgYntLG0h4En68fwVUC4QXwnD0Vjr4uCmVWYHqK+wd50bE3+mgdgjZ+tj4idIacsWrasl8AAAAABJRU5ErkJggg==","e":1},{"id":"image_2","w":233,"h":47,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":251,"h":27,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPsAAAAbCAYAAAC6NvkkAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACU0lEQVR4nO3cz2vTYBgH8O+TpD+cJ/XiGFJYvQgezCotiwEHngeC/4HsKOjB6/6AHQaigpcp87jb/oHBDmtnO2z1IOygghuzO+5kZ5vk8WAjlXVd0cXY7Ps5vXnzFJ7LlyRvmldwAsd2cgpv3hfMBMClk+qJ6N8Q4NAC3pgiixtvqxtD1PfnFkpuW3W5LTqpA+qIKH5plf00ZKFcrz45rqZviKft4lLL0PsMOdFoyQbyrtqo2f3OHQlzcar48btoPvq2iCgKlqKV0dS1SqPypXf+t7Az6ETJ0C/wRjiYtotLDDpRMniCc554a71zJvBzMe6b6FPwGZ0oMXzBxauXr2R39/fWgO6Vva26zMU4ouRpSfA4HBuO7eTaopNxNkRE0fAF1q2p0iMAMBTePK/qRMnVgT4AAMMXzMTcCxFFyIPmAMDgX2CJks0XWEDPqzciSjaGneiMYNiJzgiGneiMMCzF+7ibIKLopFQOAMAwRV/E3QwRRScFrAOAUa5vrZgKL+Z+iCgipsgi0H1mz6i8jrcdIopCRuVTuGWVAQCbjdpceF9PRMkggFpq3QmPf63GZ0VmBdB42iKi03Y+MBZ6N68ww8FOc28nPz6x3RHcAz+MIRppY4G8rDRqD3vnzN6D3ebXD/nxiW0fuKvCd/BEo0YAHQvk1WajNtfn3FGO7eR8eKuHht6Ivj0iOg0plYOsyOxxe8gPvF13CyW3E+izjuj18MsZIvp/CKBplc8pyPNBe8Z3a4fjFkquKm4G0NuquPD3bRLRnzJFVoGgWa5vrQz7mx/EBLhU+riRbwAAAABJRU5ErkJggg==","e":1},{"id":"image_4","w":255,"h":136,"u":"","p":"data:image/png;base64,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EsnBjc5pwJmDwmLYL8Dw38DJARGsDPKqf6KSIARcu4yDdGli+EfA02Iyta+K0BhpQxEiNmHZB+jSxvCnKDkUEgLrFJatg9RsK2QnuaOjV9lh0EfH8I+ZtUs1eM6eVAiA5fTiReSNqu4YI2043eEJR+PF8GfENhoB1PhJpXC8573FFHQdVPECIpERhHC6A6M77J9PHsOfQ6eHY5gAKNqBGP27NzB4sMjxoSK9XsjR9vxg+Avq9DDLhAkGX0+Oxkrlw5K79CBFCHH9ILMPTkREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREQ0RSTrAhBNQhAElSg6fCzi5tRzs2deFImcMXs/v317t91u9zIq4sQx/DkRBEHlHz/++Ahx7BuRSvL3Jo47IhJtbW3tZVm+Ilv4zW8eS69Xk4Hf64eoaq8CvJ6W3zXDn7EgCCoHBwc1Z8zjy97nnHc4I73vpuWLmQZrrS9y68m5O/0VYtXdv2xtvR5XufKC4c/Q/Pz87K1bdz+90ZdTJEK3uxOGYTTGohVaLQiq9zudJwaYG/YazvO+++bPf36bZrnyhuHPSBAElX++e7d0VVP0Ig7YO5id/W6n3T5Mu2xFVQuC6r1372qeyKM0rhfNzv6pzL9fL+sCTCv/4cMFAe4M++8FuFM9Onr88OOPq7/65S97u7u7pf2SXqUWBNV//8Uvntzpdj81Ijdq4l9m5v37yt+//7603Sze+TMw32w+mlH9NNWLikSec2+naUzAWuu7SuXxKM37q4SvXv0RgBvX9bPE8GfANpsWqv44ru2cd2ic7EZ+dbeMTdaTWZEuHhsTV8f9eWVu+g/V36SRyLiCDwDGxFUY1PxOp7bQaOzFInsP797dK/r8db1en+uKPIo6nTkDAGYyn+tHURUAw0+jC4LAizqdiXyWAeaM6lzU6SCpCH64ezcqwp0sCILK///ww5xxzjfAXCxSmVDepwbDPyWSisDvdPDrXz/riPQiEYnu3bsX5aVVYK31gaov4uaiTmd2BgCEPdNxYfinkHpuVmFmATyOjiuDnok7Uql0zPv3Hd/3O+OuEKy1vvvoo9lKt1tVrfinax160HF+8A1Fvp/7VtKwGH6Cem7Wg8wijoFKBVGng6f1ek+M6TjVnulVOgDged1OHMcnlUK32+19++23J32YWhBUj/vIA6o+AMRet+oZU1XnZpO1DSaO4YxBngfTd9rto6zLMC5sU2Xgab3+n8Mu7qHJKfsyX46hZMABUzMXX2Tv7t3byboM48TwZ6DsX6oy6Iq8LsKsyCi4vDcD0c5O79G//Qdg3Njm+2kEvcrOX776stQP9QAMf2Z2d99GDz/+uJrmWnQajXPeYQXu9ddfb/4t67JMAsOfob9///0eWwDZU9WexDN//dmD269fvnw5mRVYOcDR/hyYn5+fnblz58k4l/3Secehf+v71bd5Weg0SQx/jtTr9bmuVp5M4oGVaTbtoU8w/Dk032w+8mJTYyWQruSJx2kPfYLhzzFWAumQ2HSOKvr2283N3azLkicMfwGwErg5Ve05YM8dHr4dXIJMpxj+ApnEzjVFl9zly7CHwbgx/AVUC4Lqzw8OHvcwM8fWQDI/3937x/37b8u+Ki9NDH/B1ev1uSNgzgBz0/SwkMSmI9KL3r9/v8tm/XAY/hIpe0XggD14XnRw+/Ye7/CjY/hLylrrG2Pmzm6UUTAiEbpeBBxGPKQkfQz/FAiCoPLu3TtfVX3nebN5XEkosTmzmxDDPn4M/5San5+fxZ07szNdr4qZ2JeeVCbRQnDOOzSeOzRx3OnNzBwy6Nlh+OmM+fn5WwBuVatV79CY28nffxTH164Y4vijH3u3ejEAoFI5wsHB0f379+OXL1/+mH6JaVj/Am5j4CVWl5Y3AAAAAElFTkSuQmCC","e":1},{"id":"image_5","w":245,"h":169,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_6","w":212,"h":158,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANQAAACeCAYAAABKHSQSAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAUpElEQVR4nO3dfXAT550H8O+zKy2yLVnCmFg2DijB+Jw4DRvJIuQwRcm0uWTKTGmvL7mbS+LekJneTHohnetL/ghH01ym085coXNXMpc/yt2lvcz9Qcg1nV57fRF5GQjGZp1CSsFtRSBY1IbIWMaypd3n/pBX+EW29b670u/zly3Juw+Mv/49+9vdZxlqiNzTE8p8ozEfBObTv91679ZNTBC6s/2cu7HR1tnZ6Zz72sjISOLSBx8kltqXZLPFU1w7/fZbb0UXvanxCAQemfcaYzGlv1/J5d9BzIsZPYBSkYNBGRrzgUHu7Oxcv2ZNs9/d2Gjzer3dAOB0OtHR0XHz85tlo4YKABj+/TDi8fi816LRKKLRm/mTJGn8N6dPRzLf22zx987+7q3R0SvpIC8IpnLyZLi8oyYrsWSgZFn2QJRCAA/d9+fbQuva2jZ3dHSgo6MDHRs7Vvz5aqIM3SxqcwPJNe3yueHh0dmvzxx/5/j59BtQwLQYQAEsB8sEKl2B0HfHnXc+fO+WeztlWTa8yljR5OQkzg+ns6UHUBTF6Q8++GB4/Pr1VCZ8mhaDgHRaUylFUZSYkeO2ClMHSpa3+iCqezq7uj734Mc+3rq9dztaWlqMHlbN0KelevBmZmY+/GMk8r5ks8WPvvnGL9Kf0sIAVTudKQMl+4N9jR7P7gc//vFtn/3MZylEJrYwdOPj4xejV65cu3p1bPDcuXPv11rgTBMoWZY9EGx9nXfc8dVP7/pU60N/8ZDRQyIlcOXKFYxERzA8nAnemakbN2JH33zjF5mmShVNKQ0PlCzLHtikPf57Av/w2GOPNtBxUe3Qj+f06lYNYTM0ULI/2NfW3v78V7/ylXUUJDLX3LCNjo5Ov/fb3569enVs8NzZs+9CgGLWKaQhgZKDQbnR5fmXxx59dNtn/vIzRgyBWJgypGB4eBjDw8NnBgZPvT46Fn3FLCfFKxqo9Pkj+77e3u1PPfP1Z9DQ0FDJ3ZMqpQwpOHHixIcnB04eOXf+d98zMlwVC5QcDMquhsb/+drXvnZr77beSu2W1Ji33n4LAwMDF189fHivMth/qNL7r0igZH/Pnt7tH/0uVSVSKVeuXMEvf/XL8VePvPbi6MjFb1WqsVHWQMmy7NFE6dDfP/nkJ+lYiRhhcnISh189PP3zn/3syz9+7fD3y72/sgVKDgZlp9P1n88/9/xd1MEjRpucnMQPf/TDD3/0Xy9/upwdQrEcG5WDQXnTxs43D3z3QHutXaxKzEmSJAQCgbre3u1906lUiHHttWg0uuTtN4UqeaBkf7BvY0fHTw/sPyCtXr261JsnpChNTU14+KGHfe7VTU9fuPj+W9HLlyOl3H5JAyX7g32927f/4IXnX6DmAzG1O7rusPX2bu8TbPbOk/3vHC7VdksWKNkf7Hvo4Yd/sPfZvZAkqVSbJaRsmpqacN99931kzdpb/ura2OjLpZgCliRQemXa++zeUmyOkIqRJAlbglua652uL1wc+eAX0cuXFy9ZkIeiAyUHg/LGjo6fvvD8C1SZiGV1d3c7161r/9vzf/j968WEqqhAZbp5+w9IdMxErG7j7RvFYkNVcKBkWfa4Gle/8c1vfnOtt8Vb6GYIMZWNt28UA/6e3ad+M/TjQkJVcKBuabv1f7/z7W/ffecddxa6CUJMqaWlRSi0UhUUKLlny74vPfmlxx+4/4FCfpwQ09t4+0Zx/foNf/O7s+8dzKf7J+S7I7mnJ7R58+Z/pGvzSLV74P4HnI9/YfeZfH4mrwo1e9z084PfP+imjh6pBffcc4+LM+Ejb7/5xn/n8vm8AuVdd+u39u7d+yBdn0dqif8e/50zSW3kxDvHBlb6bM5TPrmnJ9Tbu/0pujmQ1JqGhgZ8/vOf+1dZlj0rfdaW60ZdTvd/PPP1Z4obGSEloi9PVkG2Hfd/7HVFUZatKDkFSu7Zsm/z5s236kv4Gikej2N4eNjoYeTslHLK6CHkTF87jyxpmxzYsksZOHFkqQ+seIOhLMseLtojANylHBkh1sQuMHVGXuqW+hWPoTTRvh8UJkJm8Q2wSXuWenfZCiXLW31cVP9Y+kERYmnjTE36slWpZSuUJqr7yjYkQqzLvVSVWrJCUXUiZFlZq9SSFYqqEyHLylqlsgZKlmUPA3aVf0yEWBfn6Fv4WvYKJdh3gTp7hKyAb5ADW+YVnqyB0rA4eYSQxRZmZVFTgpoRhOSHqcnVenNicYUSUnTsREg+0odI6S8XvqeBUaAIyYPGENK/nhcoWZY9jGFHxUdEiIXN7YjPr1CiFKr0YAipAm45GJSBRVM+HjJgMIRYn5rOzrxAcdycCxJCcqcxlq1CYbMBYyHE+jh8wJxAyT09IaPGQojV6c28mxVKAz23k5Ai3QwUYz7DRkFIFZB7ekKZQGmcKhQhxcoEilGFIqRoc7p8fINxwyCkGgihvB8WQAhZmgCkn0Ro9EAIqQbpCsX5ims2E0JWRlM+QkpF4xEKFCGlIlCgCCkpChQhpZKyRXJ+PhSxpla7hFa7hDa7hFZpFVyCiE2Ousz7nY46OIWVH2R5PjGFCU0FAIwkZzCSnAEADExOIK6pOJeYKs8/wEIU5TgFqlq4RBGbVtUh0OBC56o6tNqlecEp1lLb2t3szXwdTc7gcnIGgzfiOJe4gXOJqUzwqh+7AOTxBENiLq12CYF6J/wNLgTqnfDajX+IuNcuwWuX4K93Zl7Tq9fgjTgGJicweKM6H+jGOY8AeqBSKQWi3cjxkBW02iV0Ouqww+UxTYBy4RRE+Oud8Nc7sbvZi7imYnAyjoEbcRydiFVNBRMEFgbmLHS5ORDkho2GzKNXn05HPTY56nI+zrGi84kpvD5+zfLhYmCfUgZOHJkbqBhoPXNDdDrq4K93zU7hnFUbnpXo4frJ+FVMqKrRw8mLvnpsJlB3+4NhWpOvMlyiiB1ON/wNLuxwuWs2QMv5yfg1vB67apVjrqGhgX4ZmNuUYIgAFKhyabVL2OHyYKe7qaTdt2r1CXcTPuFuQjQ5g5dGR3A0Pm7aqsUYyzwVPhMogbEI53QYVUoUouJ57RKebduApzUVr1wbxSvX/mS+YDGeCVRmyicHtuzi4K8aM6LqoU/nHmm6hUJUBnHTBYtdGBo44dO/uznlUwUFohkGaE3+eid2etbQMVGZOQURu5u9eKRprSmCxRgOzft+7jfU6cvfTncTVSMDxTUVL41G8cq1Pxmyf6aKtynK8Ujm+7lv3h3YcoSBf7Lio7IYlyjikaZb8EjTWqpGJhFNzuAbly9UtCvIwV57d+DEvMc/zbv0SOBamDNGgVpCq13CE2tbaVpnQl67hIMbNuGNiXE8N3KhItNAgWn7F742r0LR40Cz04P0CXeT0UMhOajENJBzHH13sD+08PVFz9jdHNgSoSXF0lyiiKdb2ilIFjV4I47nLl8oyyVNjPH7lZMnwwtfXzRvaW1r8wHYWvIRWIhLFPF4sxfPr/PhrroGo4dDCtRql7DTswbXUkmcmy7d/Voc7LWhgf5vZXtvUaC87eui4PhiyfZuMTvdTTiwvgNbGxohMbqh2eokJmCHy4M2aRUGb8QxU/zFC+OCKu6KRi/Fsr25aMoH1Oa0z1/vxJdb2qn9XcXOJ6bw3MiFou4uZhxfUAb7Dy31ftZWVS1N+1yiiK+3rsfTLe1YY6N7wqrZGpsdD7pXFzwF5MC/Dw3271vuM1kD5W1ZfxYC35P3Hi1mh8uNgxs20XFSDdGngI2iDccmr+fzo0OCmnwkGo0mlvtQ1kBFo5diLa3r7mcs/ZjDauMSRfzTutuwe20rHSfVqLvqGvBnjnocn7yey3HVEFOTIUVRsh43zbXk2cnW1nUAw66l3rcqvSrRsRLZsMqB+xoa8X8THy4XqnEmYJcyOBjJZZtZmxK6ampOuEQRe1s34KMuulSRzBdNzuArl/6QrVmRc2XSLXv9TGtrW6waqpS/3onvre9ANx0rkSycoogH3atxfPI6rqZSANJXQgha8qF8wgSsUKEA61epJ9a2zls7jpClxDUVf3fhPM4npg4oA/0FNeVWDJTsD/Zxhh8UsnEj0RSPFGKG85HGH77UVujPr9jimj2JNVToDozQ6ajDy7d1UZhIzjTwOAe+4bIn7yxmOzmtHMsY38M5+3UxO6qUne4mPO1tp9srSE40houChn+usycPsUOH8jpeymbFKZ9ODgT3c+CpYndYTnS8RHJ0lANhUeNHpB+9pJRyw7kHSpY9XJQUszYo9rZtoNssqs84gMwvPAMiGhCZ+wEBUDQINysLU33gzDf3M4wjxpmgiJoaK3WAFso5UED64dZcw6lyDaYQLlHEwfV0otYiLmA2EBwI33xZyHztsCWUUky9jJJXoABA9vfs4Yx9txyDyReFyVSOAnOCwngEXIxUoiqYSd6BAoC7A8FDDHi81IPJR6ejDt9pv90yT6GoAkfBeYwzplRyCmU1BT0fSlCTe7holwFsLvF4ctLpqMPBDZuok1dCHLjOgFP6cYp+bFL38otho8dmJQVVKEBvUtjDqHCoKExFuwAgwoGwPi2z+nGLmRQcKCCzSpKCCi2OSWHKyzgAZW5wqNqUX1GBAvTOHztS7nY6hWlZQwxQ0i1lIUwVxzhFBwoo//SPwjTPUYAp4DzCmaBQ1TGXkgQKKF+oXKKIl2/rqtVu3hADFM6hUHisoWSB0pWypV5L55k4cJ1x/mvOmELTNusqeaCAzC0f+1FEs6IGwpQ+7mE8DFEM1x16MWL0gEjxyhIoIHOZ0iEUOAWswmvzhgAWZuBhyTYTpupTncoWKJ3cs2Uf53wP8qhWX25px+eb1pZxVBVBAapBZQ8UkD5fpYna/lyePbXT3YRn20x5QftKKECkMoHSyT09IU1j+xjL/rR5K7XHNYaLIsevNMbDDjF5hAJEgAoHSpctWJZoj3P+GsDCAudhuiiUZGNIoHTpqaC6jwG7Dm7Y5PbXO40cTjYXAHaEgYdXvfxvR4weDDE/QwOlm3r0iT7GmTlWVpqtQtwuHKFWNsmXKQIFADN//YSsCUIfwHcBqFhXQgMmROAwgCPUTCDFMk2g5prq+6IPqhoSOAtxIITSB+xo+s5SIUyX85BSMmWgFuJ9fZ5EyiEzrsmcwcPSIQMAD7KfOM4s7jH3hjmm8UgtNhO6u7slAOluT2OjhFRqXufHNmMTRXF60SUpKZtNVTlf/CClGzfi6U01qseOHSvdszargCUCRVYmy7Inabc77EnRodlSToExG9c0J2OsoLuy88VUIc5tPIWkGNNW8ZQwPR2PeTyJSDi87POUqg0FymJCoZAtFos5AYdHs6Wc0ESnIKgOo8e1FM55iglCXFDV+LQoxicbGmLVHDIKlMn5QiFHw+SkR9A0j00TnVzUTHduIV+c8xRnLAZRjKnxeOzMmTNxo8dUKhQoEwoEAs2cc08K9mYzV59S0QOmMjZm9QpGgTIBvQqJnDcLQLPR4zEaU4U4Y6nY9PR01GrViwJlEF8o5GicmmoWZ7i3GqZx5aJpYsKG5JhVwkWBqqBQKGQbnZxsllKsnUKUP6YKcVVi0aa6umg4HE4ZPZ5sKFAVEAgEmpOMeWk6Vzoq51FRVaP5PrKz3ChQZeILhRyeWMKrCdxbC40Fo2iamFBFLbK2oWHMDFWLAlViVI2MwTlPMdV+KeZxRI3sElKgSkA/NhJVwUfVyHgq59EJlytiRLAoUEVIX7WQaOdisr1Sl/iQ3HDOU9xmi7z7zjuXKrlfClQBfKGQwzUx4RMZo+ePmpzKefQ3AwNnK7U/ClQeKEjWJGjapcHBweFK7IsClQMKkvWJnJ8eGBgYK/d+aN6/jMwx0sQEHSNZXJLbOgCUPVBUoZZw9733trNUykdBqh5Jxs6e6e+PlnMf9MuyQCAQaE5yW4egqg4w+ntTTUTOmwFQoCrBFwo5PJOTXSrnHoGpRg+HlEElTrabf4nWMguFQjaPx7vekUrcBYBOyla57du2XXzvvfd4ubZf0xVKlmXPtetTXYKNrm6oFaOjo2Wdx9dkoEKhkO1aPN4FoFkATe9I6dRcoAKBQPOHExNdAnXvSBnU1C+V3+/vUBlrr4XenaaJCUHUEoKqxjVNSulLe+nv53ofUfo2lNicKbHDAwBGLFVWCuFwuKxTEsv8RxTrI4FAl1aFVzpompiAoMaFlC0uisl4IpFIlPJW8dkrtudetZ01iHPXBYRd9ZgxaEwV4gDK1pAAaiRQgUCgWa2WMDEWE1Q1zhiLuVyumBluqgOyV7zu7m4n6uudgqZ5GLd5jL61RZVYWc9BATUQqFAoZPtwYqLLqtM8fZESswUoF7OVMo7Zk6lzV3dinHsqWcE456mmurqyB8qqv2c5k+WtPthSPqPHkQ99MZJqWwRyoYquP5iyRRTleKSs+0ANBOpu/71bjZ5q5ELTxATsuHS9rm7Mygs9FkqWZY8qil4BaC555WIspvT3V+QhEVU95evu7pbMHCbOeUoDxrRE4lI1V6JczB6DxQCgOxj02gEvOPcUu12mCnG3u/500QPMUVUHCvojXEwms1KP02mKlXrMZvaK8KgvFHI0Xb/erjLmLaRqacBYk7v+bCX/j6t6yifLsgc2m2z0ODIYi4madqkSN7pVk3wXwdH/YJX7Vo1sKFCVwFgMyWTEbIsyWlEgEGieAZoXPYmEsZiqaQkJGDPyD1a1T/mMRUEqudmwmLbCV3WgRFGcMeTSVwpSzarqQLlcrplYvHLNM00TE3aWGh44edK0f0FJeVX1DYaRSERrbWlvhsDL2u2bXQb4/dXuurPHjh2r6fZ3ravqCgUAMzZ+yc7RVbYdMBYbdzrP1uLJWLJYVXf5dOW4WoJznkoJwrARrVliXoLRA6gEdTpe0jPlGjC22uU6TmEiC9VEhQJmL2fhvKipn1EL0BPrqOqmxFyjly/H16xblxALXEqKqUI8OT11+vSpU9TBI0uqmQql6+7udkpSQ1c+z7it5GLzxNpqLlC67mDQK3LevNTih/qNfdcaGy9RB4/kqmYDNVcoFJp3+iAcDmsANIOGQyzs/wG8i3OusIkwggAAAABJRU5ErkJggg==","e":1},{"id":"image_7","w":261,"h":136,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_8","w":261,"h":56,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_9","w":123,"h":175,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_10","w":78,"h":105,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_11","w":464,"h":466,"u":"","p":"data:image/jpeg;base64,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","e":1},{"id":"comp_0","nm":"animation eyes 2","fr":29.9700012207031,"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"eyes close","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":31,"s":[100],"h":1},{"t":32,"s":[0],"h":1},{"t":57,"s":[100],"h":1},{"t":58,"s":[0],"h":1},{"t":922,"s":[100],"h":1},{"t":923.000037594561,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[115.698,57.439,0],"ix":2,"l":2},"a":{"a":0,"k":[116.027,12.735,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"blink","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[116.325,47.876,0],"ix":2,"l":2},"a":{"a":0,"k":[106.965,5.396,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"eyes open","refId":"image_2","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":31,"s":[0],"h":1},{"t":32,"s":[100],"h":1},{"t":57,"s":[0],"h":1},{"t":58,"s":[100],"h":1},{"t":922,"s":[0],"h":1},{"t":923.000037594561,"s":[100],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[115.856,50.889,0],"ix":2,"l":2},"a":{"a":0,"k":[116.02,23.455,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":900.000036657751,"st":0,"bm":0}]},{"id":"comp_1","nm":"mouth 2","fr":29.9700012207031,"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"flat","refId":"image_3","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":20,"s":[0],"h":1},{"t":23,"s":[0],"h":1},{"t":92,"s":[100],"h":1},{"t":94,"s":[0],"h":1},{"t":97,"s":[0],"h":1},{"t":117,"s":[100],"h":1},{"t":120,"s":[0],"h":1},{"t":189,"s":[100],"h":1},{"t":191.000007779589,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155.355,128.21,0],"ix":2,"l":2},"a":{"a":0,"k":[125.124,13.268,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"close smile","refId":"image_4","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":2,"s":[1],"h":1},{"t":64,"s":[100],"h":1},{"t":67,"s":[2],"h":1},{"t":70,"s":[0],"h":1},{"t":91,"s":[100],"h":1},{"t":92,"s":[0],"h":1},{"t":94,"s":[100],"h":1},{"t":96,"s":[1],"h":1},{"t":117.000004765508,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[153.416,157.775,0],"ix":2,"l":2},"a":{"a":0,"k":[127.143,67.732,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"big mile","refId":"image_5","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":8,"s":[99],"h":1},{"t":11,"s":[0],"h":1},{"t":29,"s":[99],"h":1},{"t":31,"s":[0],"h":1},{"t":34,"s":[0],"h":1},{"t":67,"s":[99],"h":1},{"t":70,"s":[0],"h":1},{"t":88,"s":[100],"h":1},{"t":91,"s":[1],"h":1},{"t":94,"s":[0],"h":1},{"t":102,"s":[99],"h":1},{"t":105,"s":[0],"h":1},{"t":123,"s":[99],"h":1},{"t":128.000005213547,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.559,161.633,0],"ix":2,"l":2},"a":{"a":0,"k":[122.172,84.479,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"tens","refId":"image_6","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":11,"s":[100],"h":1},{"t":14,"s":[0],"h":1},{"t":29,"s":[0],"h":1},{"t":40,"s":[100],"h":1},{"t":43,"s":[0],"h":1},{"t":70,"s":[100],"h":1},{"t":73,"s":[0],"h":1},{"t":94,"s":[0],"h":1},{"t":105,"s":[100],"h":1},{"t":108,"s":[0],"h":1},{"t":123,"s":[0],"h":1},{"t":134,"s":[100],"h":1},{"t":137.000005580124,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155.987,152.633,0],"ix":2,"l":2},"a":{"a":0,"k":[105.849,78.76,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"tens 2","refId":"image_7","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":5,"s":[100],"h":1},{"t":8,"s":[0],"h":1},{"t":14,"s":[100],"h":1},{"t":17,"s":[1],"h":1},{"t":20,"s":[100],"h":1},{"t":23,"s":[0],"h":1},{"t":29,"s":[0],"h":1},{"t":34,"s":[100],"h":1},{"t":37,"s":[100],"h":1},{"t":40,"s":[0],"h":1},{"t":43,"s":[100],"h":1},{"t":46,"s":[1],"h":1},{"t":49,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":64,"s":[1],"h":1},{"t":73,"s":[100],"h":1},{"t":75,"s":[2],"h":1},{"t":77,"s":[100],"h":1},{"t":79,"s":[0],"h":1},{"t":85,"s":[100],"h":1},{"t":88,"s":[0],"h":1},{"t":94,"s":[0],"h":1},{"t":99,"s":[100],"h":1},{"t":102,"s":[0],"h":1},{"t":108,"s":[100],"h":1},{"t":111,"s":[0],"h":1},{"t":114,"s":[100],"h":1},{"t":117,"s":[0],"h":1},{"t":123,"s":[0],"h":1},{"t":128,"s":[100],"h":1},{"t":131,"s":[0],"h":1},{"t":137,"s":[100],"h":1},{"t":140,"s":[1],"h":1},{"t":143.000005824509,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.714,133.031,0],"ix":2,"l":2},"a":{"a":0,"k":[130.167,67.58,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"tens 3","refId":"image_8","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":2,"s":[100],"h":1},{"t":5,"s":[0],"h":1},{"t":17,"s":[100],"h":1},{"t":20,"s":[0],"h":1},{"t":29,"s":[0],"h":1},{"t":31,"s":[100],"h":1},{"t":34,"s":[0],"h":1},{"t":46,"s":[100],"h":1},{"t":49,"s":[0],"h":1},{"t":75,"s":[100],"h":1},{"t":77,"s":[0],"h":1},{"t":79,"s":[0],"h":1},{"t":94,"s":[0],"h":1},{"t":96,"s":[100],"h":1},{"t":99,"s":[0],"h":1},{"t":111,"s":[100],"h":1},{"t":114,"s":[0],"h":1},{"t":123,"s":[0],"h":1},{"t":125,"s":[100],"h":1},{"t":128,"s":[0],"h":1},{"t":140,"s":[100],"h":1},{"t":143.000005824509,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.702,123.945,0],"ix":2,"l":2},"a":{"a":0,"k":[130.167,27.864,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"circle open2","refId":"image_9","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":26,"s":[100],"h":1},{"t":29,"s":[0],"h":1},{"t":55,"s":[100],"h":1},{"t":58,"s":[100],"h":1},{"t":61,"s":[0],"h":1},{"t":79,"s":[100],"h":1},{"t":82,"s":[0],"h":1},{"t":94,"s":[0],"h":1},{"t":120,"s":[100],"h":1},{"t":123,"s":[0],"h":1},{"t":149,"s":[100],"h":1},{"t":152.000006191087,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[171.416,141.659,0],"ix":2,"l":2},"a":{"a":0,"k":[61.37,87.319,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"circle open 3","refId":"image_10","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[0],"h":1},{"t":23,"s":[100],"h":1},{"t":26,"s":[0],"h":1},{"t":29,"s":[0],"h":1},{"t":49,"s":[100],"h":1},{"t":55,"s":[0],"h":1},{"t":82,"s":[100],"h":1},{"t":85,"s":[0],"h":1},{"t":94,"s":[0],"h":1},{"t":117,"s":[0],"h":1},{"t":120,"s":[0],"h":1},{"t":123,"s":[0],"h":1},{"t":146,"s":[100],"h":1},{"t":149.000006068894,"s":[0],"h":1}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167.327,116.755,0],"ix":2,"l":2},"a":{"a":0,"k":[38.882,52.472,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":124.000005050624,"st":-1.00000004073083,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"animation eyes 2","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[260,122,0],"ix":2,"l":2},"a":{"a":0,"k":[115.5,49.5,0],"ix":1,"l":2},"s":{"a":0,"k":[35,35,100],"ix":6,"l":2}},"ao":0,"w":231,"h":99,"ip":0,"op":84.0000034213901,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"mouth 2","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[259,168,0],"ix":2,"l":2},"a":{"a":0,"k":[150,150,0],"ix":1,"l":2},"s":{"a":0,"k":[12,12,100],"ix":6,"l":2}},"ao":0,"w":300,"h":300,"ip":-3.00000012219251,"op":84.0000034213901,"st":-3.00000012219251,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Woman 1.png","cl":"png","refId":"image_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[232,233,0],"ix":2,"l":2},"a":{"a":0,"k":[232,233,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":84.0000034213901,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/404jobnotfound-remi-ai/frontend/src/components/Avatar.tsx b/404jobnotfound-remi-ai/frontend/src/components/Avatar.tsx
new file mode 100644
index 0000000..80034d0
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/components/Avatar.tsx
@@ -0,0 +1,97 @@
+import { useRef, useEffect } from 'react';
+import Lottie, { LottieRefCurrentProps } from 'lottie-react';
+import greenManAvatar from '../avatars/green_man_avatar.json';
+import officeBackground from '../avatars/backgrouds/office_background_interview.jpg';
+import { Mic } from 'lucide-react';
+
+type AvatarState = 'idle' | 'speaking' | 'listening' | 'thinking';
+
+interface AvatarProps {
+ state: AvatarState;
+ name?: string;
+}
+
+export default function Avatar({ state, name = 'Remi AI' }: AvatarProps) {
+ const lottieRef = useRef(null);
+ const isSpeaking = state === 'speaking';
+ const isListening = state === 'listening';
+ const isThinking = state === 'thinking';
+
+ useEffect(() => {
+ if (!lottieRef.current) return;
+ if (isSpeaking) {
+ lottieRef.current.play();
+ } else {
+ lottieRef.current.pause();
+ }
+ }, [isSpeaking]);
+
+ return (
+
+ {/* Video feed area */}
+
+ {/* Background */}
+

+ {/* Lottie avatar */}
+
+
+
+
+ {/* Speaking indicator */}
+ {isSpeaking && (
+
+
+ {[35, 70, 100, 55, 90].map((h, i) => (
+
+ ))}
+
+
+ )}
+
+ {/* Listening overlay */}
+ {isListening && (
+
+ )}
+
+ {/* Thinking overlay */}
+ {isThinking && (
+
+
+ {[0, 1, 2].map((i) => (
+
+ ))}
+
+
+ )}
+
+ {/* Name tag */}
+
+ {name}
+
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/components/ScoreBar.tsx b/404jobnotfound-remi-ai/frontend/src/components/ScoreBar.tsx
new file mode 100644
index 0000000..452b921
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/components/ScoreBar.tsx
@@ -0,0 +1,80 @@
+interface ScoreBarProps {
+ label: string;
+ value: number;
+ max?: number;
+ color?: string;
+}
+
+function getScoreColor(score: number): string {
+ if (score >= 75) return 'from-emerald-500 to-green-400';
+ if (score >= 60) return 'from-amber-500 to-yellow-400';
+ return 'from-rose-500 to-red-400';
+}
+
+export function ScoreBar({ label, value, max = 100, color }: ScoreBarProps) {
+ const pct = Math.min(100, Math.round((value / max) * 100));
+ const gradClass = color ?? getScoreColor(value);
+
+ return (
+
+
+ {label}
+ {Math.round(value)}
+
+
+
+ );
+}
+
+interface ScoreCircleProps {
+ score: number;
+ size?: number;
+ label?: string;
+}
+
+export function ScoreCircle({ score, size = 120, label }: ScoreCircleProps) {
+ const radius = (size - 16) / 2;
+ const circumference = 2 * Math.PI * radius;
+ const offset = circumference - (score / 100) * circumference;
+
+ const strokeColor =
+ score >= 75 ? '#10b981' : score >= 60 ? '#f59e0b' : '#ef4444';
+
+ return (
+
+
+
+
+ {Math.round(score)}
+
+
+ {label &&
{label}}
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/components/Webcam.tsx b/404jobnotfound-remi-ai/frontend/src/components/Webcam.tsx
new file mode 100644
index 0000000..e701a19
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/components/Webcam.tsx
@@ -0,0 +1,41 @@
+import { useEffect, useRef } from 'react';
+
+interface WebcamProps {
+ videoRef?: React.RefObject;
+}
+
+// Hidden camera stream — keeps the video feed active for gaze tracking
+// without showing anything to the candidate.
+export default function Webcam({ videoRef: externalRef }: WebcamProps) {
+ const internalRef = useRef(null);
+ const videoRef = externalRef ?? internalRef;
+
+ useEffect(() => {
+ let stream: MediaStream | null = null;
+ navigator.mediaDevices
+ .getUserMedia({ video: true, audio: false })
+ .then((s) => {
+ stream = s;
+ if (videoRef.current) {
+ videoRef.current.srcObject = s;
+ }
+ })
+ .catch(() => {
+ // Camera not available — silently ignore
+ });
+ return () => {
+ stream?.getTracks().forEach((t) => t.stop());
+ };
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
+
+ // Rendered off-screen so MediaPipe can read frames (display:none blocks pixel access)
+ return (
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/hooks/useElevenLabsSTT.ts b/404jobnotfound-remi-ai/frontend/src/hooks/useElevenLabsSTT.ts
new file mode 100644
index 0000000..375e4cf
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/hooks/useElevenLabsSTT.ts
@@ -0,0 +1,192 @@
+import { useState, useRef, useCallback } from 'react';
+
+const STT_URL = '/api/stt';
+
+export interface UseElevenLabsSTTReturn {
+ transcript: string;
+ interimTranscript: string;
+ isListening: boolean;
+ isTranscribing: boolean;
+ startListening: () => Promise;
+ stopListening: () => Promise;
+ stopAndGetTranscript: () => Promise;
+ resetTranscript: () => void;
+ isSupported: boolean;
+}
+
+export function useElevenLabsSTT(
+ lang = 'fr',
+ onSilenceDetected?: () => void,
+ silenceThreshold = 0.01,
+ silenceDelay = 2000,
+ minDurationMs = 1000,
+): UseElevenLabsSTTReturn {
+ const [transcript, setTranscript] = useState('');
+ const [isListening, setIsListening] = useState(false);
+ const [isTranscribing, setIsTranscribing] = useState(false);
+ const mediaRecorderRef = useRef(null);
+ const chunksRef = useRef([]);
+ const streamRef = useRef(null);
+ const audioContextRef = useRef(null);
+ const silenceTimerRef = useRef | null>(null);
+ const isListeningRef = useRef(false);
+ const onSilenceRef = useRef(onSilenceDetected);
+ onSilenceRef.current = onSilenceDetected;
+
+ const isSupported =
+ typeof navigator !== 'undefined' && !!navigator.mediaDevices?.getUserMedia;
+
+ const stopSilenceDetection = useCallback(() => {
+ if (silenceTimerRef.current) {
+ clearTimeout(silenceTimerRef.current);
+ silenceTimerRef.current = null;
+ }
+ if (audioContextRef.current) {
+ audioContextRef.current.close();
+ audioContextRef.current = null;
+ }
+ }, []);
+
+ const startSilenceDetection = useCallback((stream: MediaStream) => {
+ const audioContext = new AudioContext();
+ audioContextRef.current = audioContext;
+ const analyser = audioContext.createAnalyser();
+ analyser.fftSize = 256;
+ const source = audioContext.createMediaStreamSource(stream);
+ source.connect(analyser);
+ const dataArray = new Uint8Array(analyser.frequencyBinCount);
+
+ const startTime = Date.now();
+ let hasSpeaken = false;
+
+ const check = () => {
+ if (!isListeningRef.current) return;
+ analyser.getByteTimeDomainData(dataArray);
+ let sum = 0;
+ for (let i = 0; i < dataArray.length; i++) {
+ const val = (dataArray[i] - 128) / 128;
+ sum += val * val;
+ }
+ const rms = Math.sqrt(sum / dataArray.length);
+ const elapsed = Date.now() - startTime;
+
+ if (rms > silenceThreshold) {
+ hasSpeaken = true;
+ if (silenceTimerRef.current) {
+ clearTimeout(silenceTimerRef.current);
+ silenceTimerRef.current = null;
+ }
+ } else if (hasSpeaken && elapsed > minDurationMs) {
+ if (!silenceTimerRef.current) {
+ silenceTimerRef.current = setTimeout(() => {
+ onSilenceRef.current?.();
+ }, silenceDelay);
+ }
+ }
+
+ requestAnimationFrame(check);
+ };
+ requestAnimationFrame(check);
+ }, [silenceThreshold, silenceDelay, minDurationMs]);
+
+ const startListening = useCallback(async () => {
+ if (!isSupported) return;
+ try {
+ const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
+ streamRef.current = stream;
+ const mimeType = MediaRecorder.isTypeSupported('audio/webm') ? 'audio/webm' : 'audio/mp4';
+ const mediaRecorder = new MediaRecorder(stream, { mimeType });
+ mediaRecorderRef.current = mediaRecorder;
+ chunksRef.current = [];
+
+ mediaRecorder.ondataavailable = (e) => {
+ if (e.data.size > 0) chunksRef.current.push(e.data);
+ };
+
+ mediaRecorder.start(100);
+ isListeningRef.current = true;
+ setIsListening(true);
+ startSilenceDetection(stream);
+ } catch (e) {
+ console.error('Failed to start recording:', e);
+ }
+ }, [isSupported, startSilenceDetection]);
+
+ const stopRecording = useCallback((): Promise => {
+ isListeningRef.current = false;
+ stopSilenceDetection();
+ return new Promise((resolve) => {
+ const recorder = mediaRecorderRef.current;
+ if (!recorder || recorder.state === 'inactive') {
+ const blob = new Blob(chunksRef.current, { type: 'audio/webm' });
+ resolve(blob);
+ return;
+ }
+ recorder.onstop = () => {
+ const mimeType = recorder.mimeType || 'audio/webm';
+ const blob = new Blob(chunksRef.current, { type: mimeType });
+ streamRef.current?.getTracks().forEach((t) => t.stop());
+ streamRef.current = null;
+ resolve(blob);
+ };
+ recorder.stop();
+ setIsListening(false);
+ });
+ }, [stopSilenceDetection]);
+
+ const transcribeAudio = useCallback(
+ async (audioBlob: Blob): Promise => {
+ setIsTranscribing(true);
+ try {
+ const ext = audioBlob.type.includes('mp4') ? 'mp4' : 'webm';
+ const formData = new FormData();
+ formData.append('audio', audioBlob, `audio.${ext}`);
+ formData.append('lang', lang);
+
+ const res = await fetch(STT_URL, {
+ method: 'POST',
+ body: formData,
+ });
+
+ if (!res.ok) return '';
+ const data = await res.json();
+ return data.available ? (data.text ?? '') : '';
+ } catch {
+ return '';
+ } finally {
+ setIsTranscribing(false);
+ }
+ },
+ [lang],
+ );
+
+ const stopListening = useCallback(async () => {
+ const blob = await stopRecording();
+ const text = await transcribeAudio(blob);
+ if (text) setTranscript((prev) => (prev + ' ' + text).trim());
+ }, [stopRecording, transcribeAudio]);
+
+ const stopAndGetTranscript = useCallback(async (): Promise => {
+ const blob = await stopRecording();
+ const text = await transcribeAudio(blob);
+ const full = text ? (transcript + ' ' + text).trim() : transcript;
+ if (text) setTranscript(full);
+ return full;
+ }, [stopRecording, transcribeAudio, transcript]);
+
+ const resetTranscript = useCallback(() => {
+ setTranscript('');
+ }, []);
+
+ return {
+ transcript,
+ interimTranscript: '',
+ isListening,
+ isTranscribing,
+ startListening,
+ stopListening,
+ stopAndGetTranscript,
+ resetTranscript,
+ isSupported,
+ };
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/hooks/useGazeTracking.ts b/404jobnotfound-remi-ai/frontend/src/hooks/useGazeTracking.ts
new file mode 100644
index 0000000..b625f77
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/hooks/useGazeTracking.ts
@@ -0,0 +1,182 @@
+import { useEffect, useRef, useState, useCallback } from 'react';
+import { FaceLandmarker, FilesetResolver } from '@mediapipe/tasks-vision';
+import type { GazeSummary, GazeEvent } from '../types';
+
+// CDN for WASM runtime and model
+const WASM_CDN = 'https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.3/wasm';
+const MODEL_URL =
+ 'https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task';
+
+// Iris landmark indices (478-point model with iris refinement)
+const LEFT_IRIS = 468;
+const RIGHT_IRIS = 473;
+// Eye corner landmarks
+const LEFT_EYE_CORNER_A = 33;
+const LEFT_EYE_CORNER_B = 133;
+const RIGHT_EYE_CORNER_A = 362;
+const RIGHT_EYE_CORNER_B = 263;
+
+// Frames (~30fps) before confirming a state change (~200ms)
+const DEBOUNCE_FRAMES = 6;
+// Minimum event duration to record
+const MIN_EVENT_MS = 200;
+// Gaze ratio outside [0.38, 0.62] → looking away
+const GAZE_LOW = 0.45;
+const GAZE_HIGH = 0.55;
+
+type Landmark = { x: number; y: number; z: number };
+
+function gazeRatio(irisX: number, aX: number, bX: number): number {
+ const lo = Math.min(aX, bX);
+ const hi = Math.max(aX, bX);
+ const w = hi - lo;
+ if (w < 0.005) return 0.5;
+ return (irisX - lo) / w;
+}
+
+function isLookingAside(landmarks: Landmark[]): boolean {
+ if (landmarks.length < 478) return false;
+ const left = gazeRatio(
+ landmarks[LEFT_IRIS].x,
+ landmarks[LEFT_EYE_CORNER_A].x,
+ landmarks[LEFT_EYE_CORNER_B].x,
+ );
+ const right = gazeRatio(
+ landmarks[RIGHT_IRIS].x,
+ landmarks[RIGHT_EYE_CORNER_A].x,
+ landmarks[RIGHT_EYE_CORNER_B].x,
+ );
+ const avg = (left + right) / 2;
+ return avg < GAZE_LOW || avg > GAZE_HIGH;
+}
+
+export function useGazeTracking(
+ videoRef: React.RefObject,
+ questionIndex: number,
+) {
+ const [isLookingAway, setIsLookingAway] = useState(false);
+ const [isReady, setIsReady] = useState(false);
+
+ const eventsRef = useRef([]);
+ const rafRef = useRef(0);
+ const isAwayRef = useRef(false);
+ const awayStartRef = useRef(null);
+ const awayReasonRef = useRef<'look_away' | 'no_face'>('look_away');
+ const questionIndexRef = useRef(questionIndex);
+ questionIndexRef.current = questionIndex;
+
+ useEffect(() => {
+ let cancelled = false;
+ let landmarker: FaceLandmarker | null = null;
+
+ (async () => {
+ try {
+ const vision = await FilesetResolver.forVisionTasks(WASM_CDN);
+ landmarker = await FaceLandmarker.createFromOptions(vision, {
+ baseOptions: { modelAssetPath: MODEL_URL, delegate: 'GPU' },
+ runningMode: 'VIDEO',
+ numFaces: 1,
+ outputFaceBlendshapes: false,
+ outputFacialTransformationMatrixes: false,
+ });
+ if (cancelled) { landmarker.close(); return; }
+
+ setIsReady(true);
+
+ let lastVideoTime = -1;
+ let awayFrames = 0;
+ let presentFrames = 0;
+
+ function frame() {
+ if (cancelled || !landmarker) return;
+ const video = videoRef.current;
+
+ if (video && video.readyState >= 2 && video.currentTime !== lastVideoTime) {
+ lastVideoTime = video.currentTime;
+ try {
+ const result = landmarker.detectForVideo(video, performance.now());
+ const faces = result.faceLandmarks;
+
+ let lookingAway: boolean;
+ let reason: 'look_away' | 'no_face';
+
+ if (faces.length === 0) {
+ lookingAway = true;
+ reason = 'no_face';
+ } else {
+ lookingAway = isLookingAside(faces[0]);
+ reason = 'look_away';
+ }
+
+ if (lookingAway) {
+ awayFrames++;
+ presentFrames = 0;
+ if (awayFrames >= DEBOUNCE_FRAMES && !isAwayRef.current) {
+ isAwayRef.current = true;
+ setIsLookingAway(true);
+ awayStartRef.current = performance.now() - DEBOUNCE_FRAMES * 33;
+ awayReasonRef.current = reason;
+ }
+ } else {
+ presentFrames++;
+ awayFrames = 0;
+ if (presentFrames >= DEBOUNCE_FRAMES && isAwayRef.current) {
+ isAwayRef.current = false;
+ setIsLookingAway(false);
+ if (awayStartRef.current !== null) {
+ const duration = Math.round(performance.now() - awayStartRef.current);
+ if (duration >= MIN_EVENT_MS) {
+ eventsRef.current.push({
+ timestamp: awayStartRef.current,
+ duration_ms: duration,
+ question_index: questionIndexRef.current,
+ reason: awayReasonRef.current,
+ });
+ }
+ awayStartRef.current = null;
+ }
+ }
+ }
+ } catch {
+ // Ignore per-frame errors
+ }
+ }
+ rafRef.current = requestAnimationFrame(frame);
+ }
+
+ rafRef.current = requestAnimationFrame(frame);
+ } catch (e) {
+ console.warn('GazeTracking: MediaPipe init failed', e);
+ }
+ })();
+
+ return () => {
+ cancelled = true;
+ cancelAnimationFrame(rafRef.current);
+ landmarker?.close();
+ };
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
+
+ const getSummary = useCallback((): GazeSummary => {
+ const events = [...eventsRef.current];
+ // Flush any ongoing event
+ if (isAwayRef.current && awayStartRef.current !== null) {
+ const duration = Math.round(performance.now() - awayStartRef.current);
+ if (duration >= MIN_EVENT_MS) {
+ events.push({
+ timestamp: awayStartRef.current,
+ duration_ms: duration,
+ question_index: questionIndexRef.current,
+ reason: awayReasonRef.current,
+ });
+ }
+ }
+ return {
+ events,
+ total_look_away_ms: events.reduce((sum, e) => sum + e.duration_ms, 0),
+ look_away_count: events.length,
+ };
+ }, []);
+
+ return { isLookingAway, isReady, getSummary };
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/hooks/useMediaPermissions.ts b/404jobnotfound-remi-ai/frontend/src/hooks/useMediaPermissions.ts
new file mode 100644
index 0000000..4004ab8
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/hooks/useMediaPermissions.ts
@@ -0,0 +1,65 @@
+import { useEffect, useRef, useState } from 'react';
+
+export type PermissionStatus = 'pending' | 'granted' | 'denied' | 'unavailable';
+
+export interface MediaPermissions {
+ camera: PermissionStatus;
+ microphone: PermissionStatus;
+ allGranted: boolean;
+}
+
+export function useMediaPermissions(): MediaPermissions {
+ const [camera, setCamera] = useState('pending');
+ const [microphone, setMicrophone] = useState('pending');
+ const streamRef = useRef(null);
+
+ useEffect(() => {
+ if (!navigator.mediaDevices?.getUserMedia) {
+ setCamera('unavailable');
+ setMicrophone('unavailable');
+ return;
+ }
+
+ let cancelled = false;
+
+ navigator.mediaDevices
+ .getUserMedia({ video: true, audio: true })
+ .then((stream) => {
+ if (cancelled) { stream.getTracks().forEach((t) => t.stop()); return; }
+ streamRef.current = stream;
+ setCamera('granted');
+ setMicrophone('granted');
+ })
+ .catch((err: DOMException) => {
+ if (cancelled) return;
+ // Try to distinguish which device failed
+ if (err.name === 'NotFoundError' || err.name === 'DevicesNotFoundError') {
+ setCamera('unavailable');
+ setMicrophone('unavailable');
+ } else {
+ // Permission denied — try individually to know which one
+ navigator.mediaDevices
+ .getUserMedia({ video: true, audio: false })
+ .then((s) => { s.getTracks().forEach((t) => t.stop()); if (!cancelled) setCamera('granted'); })
+ .catch(() => { if (!cancelled) setCamera('denied'); });
+
+ navigator.mediaDevices
+ .getUserMedia({ video: false, audio: true })
+ .then((s) => { s.getTracks().forEach((t) => t.stop()); if (!cancelled) setMicrophone('granted'); })
+ .catch(() => { if (!cancelled) setMicrophone('denied'); });
+ }
+ });
+
+ return () => {
+ cancelled = true;
+ streamRef.current?.getTracks().forEach((t) => t.stop());
+ streamRef.current = null;
+ };
+ }, []);
+
+ return {
+ camera,
+ microphone,
+ allGranted: camera === 'granted' && microphone === 'granted',
+ };
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/hooks/useSpeechRecognition.ts b/404jobnotfound-remi-ai/frontend/src/hooks/useSpeechRecognition.ts
new file mode 100644
index 0000000..ea8cddf
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/hooks/useSpeechRecognition.ts
@@ -0,0 +1,95 @@
+import { useState, useEffect, useRef, useCallback } from 'react';
+
+export interface UseSpeechRecognitionReturn {
+ transcript: string;
+ interimTranscript: string;
+ isListening: boolean;
+ startListening: () => void;
+ stopListening: () => void;
+ resetTranscript: () => void;
+ isSupported: boolean;
+}
+
+export function useSpeechRecognition(lang = 'fr-FR'): UseSpeechRecognitionReturn {
+ const [transcript, setTranscript] = useState('');
+ const [interimTranscript, setInterimTranscript] = useState('');
+ const [isListening, setIsListening] = useState(false);
+ const recognitionRef = useRef(null);
+ const isSupported =
+ typeof window !== 'undefined' &&
+ ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window);
+
+ useEffect(() => {
+ if (!isSupported) return;
+
+ const SpeechRecognitionAPI =
+ window.SpeechRecognition || window.webkitSpeechRecognition;
+ const recognition = new SpeechRecognitionAPI();
+ recognition.continuous = true;
+ recognition.interimResults = true;
+ recognition.lang = lang;
+
+ recognition.onresult = (event: SpeechRecognitionEvent) => {
+ let final = '';
+ let interim = '';
+ for (let i = event.resultIndex; i < event.results.length; i++) {
+ const result = event.results[i];
+ if (result.isFinal) {
+ final += result[0].transcript + ' ';
+ } else {
+ interim += result[0].transcript;
+ }
+ }
+ if (final) setTranscript((prev) => prev + final);
+ setInterimTranscript(interim);
+ };
+
+ recognition.onend = () => {
+ setIsListening(false);
+ setInterimTranscript('');
+ };
+
+ recognition.onerror = () => {
+ setIsListening(false);
+ setInterimTranscript('');
+ };
+
+ recognitionRef.current = recognition;
+ return () => {
+ recognition.abort();
+ };
+ }, [isSupported, lang]);
+
+ const startListening = useCallback(() => {
+ if (!recognitionRef.current) return;
+ setIsListening(true);
+ setInterimTranscript('');
+ try {
+ recognitionRef.current.start();
+ } catch {
+ // Already started
+ }
+ }, []);
+
+ const stopListening = useCallback(() => {
+ if (!recognitionRef.current) return;
+ recognitionRef.current.stop();
+ setIsListening(false);
+ setInterimTranscript('');
+ }, []);
+
+ const resetTranscript = useCallback(() => {
+ setTranscript('');
+ setInterimTranscript('');
+ }, []);
+
+ return {
+ transcript,
+ interimTranscript,
+ isListening,
+ startListening,
+ stopListening,
+ resetTranscript,
+ isSupported,
+ };
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/index.css b/404jobnotfound-remi-ai/frontend/src/index.css
new file mode 100644
index 0000000..be5107a
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/index.css
@@ -0,0 +1,132 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ * {
+ box-sizing: border-box;
+ }
+
+ body {
+ margin: 0;
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+
+ ::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ ::-webkit-scrollbar-track {
+ background: #f1f5f9;
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background: #93c5fd;
+ border-radius: 3px;
+ }
+}
+
+/* Audio bar animations */
+.audio-bar {
+ display: inline-block;
+ width: 4px;
+ border-radius: 2px;
+ background: white;
+ transform-origin: bottom;
+ animation: bounceBar 0.8s ease-in-out infinite alternate;
+}
+
+@keyframes bounceBar {
+ 0% { transform: scaleY(0.2); }
+ 100% { transform: scaleY(1); }
+}
+
+/* Avatar glow when speaking */
+.avatar-speaking {
+ box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
+ animation: avatarPulse 1.5s ease-out infinite;
+}
+
+@keyframes avatarPulse {
+ 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); }
+ 70% { box-shadow: 0 0 0 30px rgba(59, 130, 246, 0); }
+ 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); }
+}
+
+/* Avatar glow when listening */
+.avatar-listening {
+ box-shadow: 0 0 0 0 rgba(96, 165, 250, 0.7);
+ animation: avatarListenPulse 1s ease-out infinite;
+}
+
+@keyframes avatarListenPulse {
+ 0% { box-shadow: 0 0 0 0 rgba(96, 165, 250, 0.7); }
+ 70% { box-shadow: 0 0 0 20px rgba(96, 165, 250, 0); }
+ 100% { box-shadow: 0 0 0 0 rgba(96, 165, 250, 0); }
+}
+
+/* Score circle animation */
+@keyframes scoreReveal {
+ from { stroke-dashoffset: 283; }
+ to { stroke-dashoffset: var(--target-offset); }
+}
+
+.score-circle {
+ animation: scoreReveal 1.5s ease-out forwards;
+}
+
+/* Gradient text */
+.gradient-text {
+ background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+}
+
+/* Glass card effect */
+.glass-card {
+ background: rgba(255, 255, 255, 0.9);
+ backdrop-filter: blur(12px);
+ -webkit-backdrop-filter: blur(12px);
+ border: 1px solid rgba(226, 232, 240, 0.8);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);
+}
+
+/* Drop zone active */
+.drop-zone-active {
+ border-color: #2563eb;
+ background: rgba(37, 99, 235, 0.04);
+}
+
+/* Recording pulse */
+@keyframes recordPulse {
+ 0%, 100% { opacity: 1; }
+ 50% { opacity: 0.4; }
+}
+
+.recording-dot {
+ animation: recordPulse 1s ease-in-out infinite;
+}
+
+/* Transcript typing effect */
+.transcript-text {
+ border-right: 2px solid #2563eb;
+ animation: blink 1s step-end infinite;
+}
+
+@keyframes blink {
+ 50% { border-color: transparent; }
+}
+
+/* Progress step */
+.progress-step-active {
+ background: linear-gradient(135deg, #2563eb, #1d4ed8);
+}
+
+/* Recommendation colors */
+.rec-strong-yes { background: linear-gradient(135deg, #10b981, #059669); }
+.rec-yes { background: linear-gradient(135deg, #34d399, #10b981); }
+.rec-mixed { background: linear-gradient(135deg, #f59e0b, #d97706); }
+.rec-no { background: linear-gradient(135deg, #ef4444, #dc2626); }
diff --git a/404jobnotfound-remi-ai/frontend/src/main.tsx b/404jobnotfound-remi-ai/frontend/src/main.tsx
new file mode 100644
index 0000000..3d7150d
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/main.tsx
@@ -0,0 +1,10 @@
+import React from 'react'
+import ReactDOM from 'react-dom/client'
+import App from './App.tsx'
+import './index.css'
+
+ReactDOM.createRoot(document.getElementById('root')!).render(
+
+
+ ,
+)
diff --git a/404jobnotfound-remi-ai/frontend/src/pages/BriefingPage.tsx b/404jobnotfound-remi-ai/frontend/src/pages/BriefingPage.tsx
new file mode 100644
index 0000000..bc14250
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/pages/BriefingPage.tsx
@@ -0,0 +1,313 @@
+import { ArrowRight, BrainCircuit, Briefcase, Star, Clock, Award, Globe, Building2, CheckSquare, Camera, Mic, CheckCircle2, XCircle, Loader2 } from 'lucide-react';
+import type { SessionData } from '../types';
+import { useMediaPermissions, type PermissionStatus } from '../hooks/useMediaPermissions';
+
+interface BriefingPageProps {
+ sessionData: SessionData;
+ onStart: () => void;
+}
+
+const SENIORITY_COLOR: Record = {
+ junior: 'text-sky-600 bg-sky-50 border-sky-200',
+ mid: 'text-blue-600 bg-blue-50 border-blue-200',
+ senior: 'text-blue-700 bg-blue-100 border-blue-300',
+};
+
+const INTERVIEW_STEPS = [
+ {
+ label: 'Introduction & parcours',
+ desc: 'Présentez votre trajectoire et son adéquation avec le poste visé',
+ lang: 'FR',
+ },
+ {
+ label: 'Test de niveau d\'anglais',
+ desc: 'Question posée en anglais — répondez en anglais',
+ lang: 'EN',
+ },
+ {
+ label: 'Validation des compétences clés',
+ desc: 'Exemples concrets d\'utilisation des compétences attendues pour ce rôle',
+ lang: 'FR',
+ },
+];
+
+function PermissionRow({ status, label, icon }: { status: PermissionStatus; label: string; icon: React.ReactNode }) {
+ return (
+
+ {status === 'pending' && }
+ {status === 'granted' && }
+ {(status === 'denied' || status === 'unavailable') && }
+ {icon}
+
+ {label}
+ {status === 'denied' && ' — accès refusé'}
+ {status === 'unavailable' && ' — non disponible'}
+
+
+ );
+}
+
+export default function BriefingPage({ sessionData, onStart }: BriefingPageProps) {
+ const { candidate_brief: brief, normalized_profile: profile, normalized_job_offer: jobOffer } = sessionData;
+ const targetJob = brief.target_job;
+ const permissions = useMediaPermissions();
+
+ const initials = brief.candidate_name
+ .split(' ')
+ .map((n) => n[0])
+ .slice(0, 2)
+ .join('')
+ .toUpperCase();
+
+ return (
+
+ {/* Background */}
+
+
+
+ {/* Header */}
+
+
+
+
+
Remi AI
+
/
+
Briefing candidat
+
+
+
+ {/* Left column */}
+
+ {/* Profile card */}
+
+
+
+ {initials}
+
+
+
+
+
{brief.candidate_name}
+
{brief.current_title || 'Titre non renseigné'}
+
+
+ {brief.seniority}
+
+
+
+
+
+
+ {Math.round(brief.years_of_experience)} ans d'expérience
+
+ {profile.certifications.length > 0 && (
+
+
+ {profile.certifications.length} certification{profile.certifications.length > 1 ? 's' : ''}
+
+ )}
+ {profile.languages.length > 0 && (
+
+
+ {profile.languages.slice(0, 2).join(', ')}
+
+ )}
+
+
+
+
+
+
Compétences clés
+
+ {brief.top_skills.slice(0, 8).map((skill) => (
+
+ {skill}
+
+ ))}
+
+
+
+
+ {/* Job offer summary */}
+ {(jobOffer?.title || targetJob?.target_role) && (
+
+
+
+ Poste visé
+
+
+
+
+ {jobOffer?.title ?? targetJob?.target_role}
+
+ {(() => {
+ const company = jobOffer?.company ?? targetJob?.target_company;
+ return company && company !== 'jobs' ? (
+
+
+ {company}
+
+ ) : null;
+ })()}
+
+
+ {(jobOffer?.top_skills ?? targetJob?.target_skills ?? []).length > 0 && (
+
+
Compétences recherchées
+
+ {(jobOffer?.top_skills ?? targetJob?.target_skills ?? []).map((skill) => (
+
+ {skill}
+
+ ))}
+
+
+ )}
+
+ {targetJob?.key_requirements && targetJob.key_requirements.length > 0 && (
+
+
+
+ Critères clés
+
+
+ {targetJob.key_requirements.slice(0, 4).map((req, i) => (
+ -
+ •
+ {req}
+
+ ))}
+
+
+ )}
+
+
+ )}
+
+ {/* Experiences */}
+ {profile.experiences.length > 0 && (
+
+
+
+ Expériences
+
+
+ {profile.experiences.slice(0, 3).map((exp, i) => (
+
+
+
+ {i < Math.min(profile.experiences.length, 3) - 1 && (
+
+ )}
+
+
+
{exp.title}
+
{exp.company} · {Math.round(exp.duration_years * 10) / 10} ans
+ {exp.summary && (
+
{exp.summary}
+ )}
+
+
+ ))}
+
+
+ )}
+
+
+ {/* Right column */}
+
+ {/* Interview structure */}
+
+
+
+
Déroulé de l'entretien
+
+
+ {INTERVIEW_STEPS.map((step, i) => (
+
+
+ {i + 1}
+
+
+
+
{step.label}
+
+ {step.lang}
+
+
+
{step.desc}
+
+
+ ))}
+
+
+
+ {/* Permissions + instructions */}
+
+
+ Avant de commencer
+
+
+
+ - • Installez-vous dans un endroit calme
+ - • Répondez clairement et avec des exemples précis
+ - • 3 questions, prenez votre temps
+
+
+
+ {/* CTA */}
+
+
+
+ Durée estimée : 10–15 minutes
+
+
+
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/pages/CompletionPage.tsx b/404jobnotfound-remi-ai/frontend/src/pages/CompletionPage.tsx
new file mode 100644
index 0000000..c4588b9
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/pages/CompletionPage.tsx
@@ -0,0 +1,25 @@
+interface CompletionPageProps {
+ candidateName: string;
+}
+
+export default function CompletionPage({ candidateName }: CompletionPageProps) {
+ return (
+
+
+
+
+
+ Merci {candidateName} !
+
+
+ Votre entretien est terminé. Nous avons bien enregistré vos réponses et nous vous contacterons prochainement.
+
+
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/pages/HRDashboard.tsx b/404jobnotfound-remi-ai/frontend/src/pages/HRDashboard.tsx
new file mode 100644
index 0000000..14c81f3
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/pages/HRDashboard.tsx
@@ -0,0 +1,362 @@
+import { useState, useEffect, useCallback, useMemo } from 'react';
+import {
+ BrainCircuit, Users, RefreshCw, ChevronRight, ArrowLeft,
+ CheckCircle2, ThumbsUp, AlertTriangle, ThumbsDown, Loader2,
+ AlertCircle, Trophy, BarChart3, ArrowUpDown, ArrowUp, ArrowDown,
+} from 'lucide-react';
+import { listInterviews, getHRReport } from '../api';
+import type { InterviewSummary, Report } from '../types';
+import ReportPage from './ReportPage';
+
+interface HRDashboardProps {
+ onBack: () => void;
+}
+
+const REC_CONFIG: Record<
+ string,
+ { label: string; icon: React.ReactNode; badgeClass: string }
+> = {
+ strong_yes: {
+ label: 'Vivement recommandé',
+ icon: ,
+ badgeClass: 'bg-emerald-100 text-emerald-700 border-emerald-200',
+ },
+ yes: {
+ label: 'Recommandé',
+ icon: ,
+ badgeClass: 'bg-green-100 text-green-700 border-green-200',
+ },
+ mixed: {
+ label: 'Mitigé',
+ icon: ,
+ badgeClass: 'bg-amber-100 text-amber-700 border-amber-200',
+ },
+ no: {
+ label: 'Non recommandé',
+ icon: ,
+ badgeClass: 'bg-rose-100 text-rose-700 border-rose-200',
+ },
+};
+
+type SortField = 'date' | 'score' | 'name';
+type SortDir = 'asc' | 'desc';
+
+function scoreColor(score: number): string {
+ if (score >= 80) return 'text-emerald-600';
+ if (score >= 68) return 'text-green-600';
+ if (score >= 55) return 'text-amber-600';
+ return 'text-rose-600';
+}
+
+function formatDate(isoString: string): string {
+ const d = new Date(isoString);
+ return d.toLocaleDateString('fr-FR', {
+ day: '2-digit',
+ month: 'short',
+ year: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ });
+}
+
+export default function HRDashboard({ onBack }: HRDashboardProps) {
+ const [interviews, setInterviews] = useState([]);
+ const [loading, setLoading] = useState(true);
+ const [error, setError] = useState(null);
+ const [selectedReport, setSelectedReport] = useState(null);
+ const [selectedName, setSelectedName] = useState('');
+ const [loadingReport, setLoadingReport] = useState(null);
+ const [sortField, setSortField] = useState('date');
+ const [sortDir, setSortDir] = useState('desc');
+
+ const sortedInterviews = useMemo(() => {
+ return [...interviews].sort((a, b) => {
+ let cmp = 0;
+ if (sortField === 'date') {
+ cmp = new Date(a.completed_at).getTime() - new Date(b.completed_at).getTime();
+ } else if (sortField === 'score') {
+ cmp = a.overall_score - b.overall_score;
+ } else if (sortField === 'name') {
+ cmp = a.candidate_name.localeCompare(b.candidate_name, 'fr');
+ }
+ return sortDir === 'asc' ? cmp : -cmp;
+ });
+ }, [interviews, sortField, sortDir]);
+
+ function handleSort(field: SortField) {
+ if (field === sortField) {
+ setSortDir((d) => (d === 'asc' ? 'desc' : 'asc'));
+ } else {
+ setSortField(field);
+ setSortDir('desc');
+ }
+ }
+
+ const fetchInterviews = useCallback(async () => {
+ setLoading(true);
+ setError(null);
+ try {
+ const data = await listInterviews();
+ setInterviews(data);
+ } catch (err) {
+ setError(err instanceof Error ? err.message : 'Impossible de charger les entretiens.');
+ } finally {
+ setLoading(false);
+ }
+ }, []);
+
+ useEffect(() => {
+ fetchInterviews();
+ }, [fetchInterviews]);
+
+ const handleOpenReport = async (interview: InterviewSummary) => {
+ setLoadingReport(interview.session_id);
+ try {
+ const report = await getHRReport(interview.session_id);
+ setSelectedName(interview.candidate_name);
+ setSelectedReport(report);
+ } catch (err) {
+ setError(err instanceof Error ? err.message : 'Impossible de charger le rapport.');
+ } finally {
+ setLoadingReport(null);
+ }
+ };
+
+ if (selectedReport) {
+ return (
+ setSelectedReport(null)}
+ backLabel="Retour au tableau de bord RH"
+ />
+ );
+ }
+
+ return (
+
+ {/* Background gradient orbs */}
+
+
+
+ {/* Header */}
+
+
+
+
+
+
+
+
+
+
+ Remi AI
+ Tableau de bord RH
+
+
+
+
+
+
+
+ {/* Page title */}
+
+
+
+
Entretiens réalisés
+
+
+ Retrouvez l'ensemble des entretiens IA complétés et consultez les rapports détaillés.
+
+
+
+ {/* Stats bar */}
+ {interviews.length > 0 && (
+
+
+ {[
+ {
+ label: 'Total entretiens',
+ value: interviews.length,
+ icon:
,
+ },
+ {
+ label: 'Vivement recommandé',
+ value: interviews.filter((i) => i.recommendation === 'strong_yes').length,
+ icon:
,
+ },
+ {
+ label: 'Recommandé',
+ value: interviews.filter((i) => i.recommendation === 'yes').length,
+ icon:
,
+ },
+ {
+ label: 'Score moyen',
+ value:
+ Math.round(
+ interviews.reduce((sum, i) => sum + i.overall_score, 0) / interviews.length,
+ ) + '/100',
+ icon:
,
+ },
+ ].map(({ label, value, icon }) => (
+
+ ))}
+
+
+ )}
+
+ {/* Content */}
+
+ {error && (
+
+ )}
+
+ {loading ? (
+
+
+ Chargement des entretiens…
+
+ ) : interviews.length === 0 ? (
+
+
+
+
+
+
Aucun entretien réalisé
+
+ Les rapports apparaîtront ici une fois les premiers entretiens complétés.
+
+
+
+ ) : (
+ <>
+ {/* Sort controls */}
+
+ Trier par :
+ {(
+ [
+ { field: 'date' as SortField, label: 'Date' },
+ { field: 'score' as SortField, label: 'Score' },
+ { field: 'name' as SortField, label: 'Nom' },
+ ] as { field: SortField; label: string }[]
+ ).map(({ field, label }) => {
+ const active = sortField === field;
+ const Icon = active ? (sortDir === 'asc' ? ArrowUp : ArrowDown) : ArrowUpDown;
+ return (
+
+ );
+ })}
+
+
+
+ {sortedInterviews.map((interview) => {
+ const rec = REC_CONFIG[interview.recommendation] ?? REC_CONFIG.no;
+ const isLoadingThis = loadingReport === interview.session_id;
+ return (
+
+ );
+ })}
+
+ >
+ )}
+
+
+ {/* Footer */}
+
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/pages/InterviewPage.tsx b/404jobnotfound-remi-ai/frontend/src/pages/InterviewPage.tsx
new file mode 100644
index 0000000..5a3bb42
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/pages/InterviewPage.tsx
@@ -0,0 +1,541 @@
+import { useState, useEffect, useRef, useCallback } from 'react';
+import {
+ Mic, MicOff, Send, ChevronRight, AlertCircle, Loader2, Volume2, VolumeX,
+ PhoneOff,
+} from 'lucide-react';
+import Avatar from '../components/Avatar';
+import Webcam from '../components/Webcam';
+import { startInterview, submitAnswer, getReport, textToSpeech, playAudio, submitGazeSummary } from '../api';
+import { useElevenLabsSTT } from '../hooks/useElevenLabsSTT';
+import { useGazeTracking } from '../hooks/useGazeTracking';
+import type { SessionData, Question, Evaluation, Report } from '../types';
+
+type InterviewState =
+ | 'loading'
+ | 'speaking'
+ | 'ready_to_record'
+ | 'listening'
+ | 'submitting'
+ | 'evaluated'
+ | 'fetching_report'
+ | 'error';
+
+const CATEGORY_LABELS: Record = {
+ intro_synthesis: 'Introduction',
+ experience_validation: 'Expérience',
+ skill_validation: 'Compétences techniques',
+ situational_or_technical: 'Situationnel',
+ projection_motivation: 'Motivation',
+};
+
+const TOTAL_QUESTIONS = 3;
+
+interface InterviewPageProps {
+ sessionData: SessionData;
+ onComplete: (report: Report) => void;
+}
+
+export default function InterviewPage({ sessionData, onComplete }: InterviewPageProps) {
+ const { session_id: sessionId } = sessionData;
+
+ const VOICE_FR = '8_M2uwvmyM-BadY9';
+ const VOICE_EN = 'HtgP9v8SoWbq_jxi';
+ const getVoiceId = (question: Question) =>
+ question.category === 'language_proficiency' ? VOICE_EN : VOICE_FR;
+
+ const [state, setState] = useState('loading');
+ const [currentQuestion, setCurrentQuestion] = useState(null);
+ const [currentIndex, setCurrentIndex] = useState(0);
+ const [evaluation, setEvaluation] = useState(null);
+ const [error, setError] = useState(null);
+ const lastAnswerRes = useRef<{ interview_completed: boolean; next_question: Question | null } | null>(null);
+ const [audioEnabled, setAudioEnabled] = useState(true);
+ const [manualText, setManualText] = useState('');
+ const [useManualInput, setUseManualInput] = useState(false);
+ const videoRef = useRef(null);
+ const allQuestionsRef = useRef([]);
+ const currentAudioRef = useRef(null);
+ const audioEnabledRef = useRef(audioEnabled);
+ audioEnabledRef.current = audioEnabled;
+
+ // Ref to always call the latest handleSubmit from the silence callback
+ const handleSubmitRef = useRef<() => Promise>(async () => {});
+
+ const { isLookingAway, getSummary } = useGazeTracking(videoRef, currentIndex);
+
+ const {
+ transcript,
+ interimTranscript,
+ isListening,
+ isTranscribing,
+ startListening,
+ stopListening,
+ stopAndGetTranscript,
+ resetTranscript,
+ isSupported: speechSupported,
+ } = useElevenLabsSTT(
+ currentQuestion?.category === 'language_proficiency' ? 'en' : 'fr',
+ () => { handleSubmitRef.current(); },
+ );
+
+ // Speak a question via TTS then transition to ready_to_record
+ const speakQuestion = useCallback(
+ async (question: Question) => {
+ const tts = await textToSpeech(question.question, getVoiceId(question));
+ setState('speaking');
+ if (tts) {
+ const { promise, audio } = playAudio(tts);
+ audio.muted = !audioEnabledRef.current;
+ currentAudioRef.current = audio;
+ await promise;
+ currentAudioRef.current = null;
+ } else {
+ await new Promise((r) => setTimeout(r, 2500));
+ }
+ setState('ready_to_record');
+ },
+ [],
+ );
+
+ // Load first question on mount (use prefetched data if available)
+ useEffect(() => {
+ let cancelled = false;
+ (async () => {
+ try {
+ const data = await startInterview(sessionId);
+ if (cancelled) return;
+ allQuestionsRef.current = data.generated_questions;
+ setCurrentQuestion(data.current_question);
+ setCurrentIndex(0);
+ // Pre-fetch TTS in parallel with a 2s delay so avatar+audio start together
+ const [tts] = await Promise.all([
+ textToSpeech(data.current_question.question, getVoiceId(data.current_question)),
+ new Promise((r) => setTimeout(r, 2000)),
+ ]);
+ if (cancelled) return;
+ setState('speaking');
+ if (tts) {
+ const { promise, audio } = playAudio(tts);
+ audio.muted = !audioEnabledRef.current;
+ currentAudioRef.current = audio;
+ await promise;
+ currentAudioRef.current = null;
+ } else {
+ await new Promise((r) => setTimeout(r, 2500));
+ }
+ setState('ready_to_record');
+ } catch (e) {
+ if (!cancelled) {
+ setError(e instanceof Error ? e.message : "Impossible de démarrer l'entretien");
+ setState('error');
+ }
+ }
+ })();
+ return () => { cancelled = true; };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [sessionId]);
+
+ const handleStartRecording = () => {
+ resetTranscript();
+ setManualText('');
+ setState('listening');
+ if (!useManualInput && speechSupported) {
+ startListening();
+ }
+ };
+
+ const handleStopRecording = () => {
+ if (!useManualInput && speechSupported) {
+ stopListening();
+ }
+ setState('ready_to_record');
+ };
+
+ const handleSubmit = useCallback(async () => {
+ let answer: string;
+ if (useManualInput) {
+ answer = manualText.trim();
+ } else if (isListening) {
+ answer = await stopAndGetTranscript();
+ } else {
+ answer = transcript.trim();
+ }
+ if (!answer || !currentQuestion) return;
+
+ setState('submitting');
+
+ try {
+ const res = await submitAnswer(sessionId, currentQuestion.id, answer);
+ setEvaluation(res.evaluation);
+ lastAnswerRes.current = { interview_completed: res.interview_completed, next_question: res.next_question };
+ setState('evaluated');
+ } catch (e) {
+ setError(e instanceof Error ? e.message : 'Impossible de soumettre la réponse');
+ setState('error');
+ }
+ }, [
+ useManualInput,
+ manualText,
+ transcript,
+ currentQuestion,
+ isListening,
+ stopAndGetTranscript,
+ sessionId,
+ resetTranscript,
+ speakQuestion,
+ onComplete,
+ ]);
+
+ // Keep ref in sync so the silence callback always calls the latest handleSubmit
+ handleSubmitRef.current = handleSubmit;
+
+ const handleNextQuestion = useCallback(async () => {
+ const res = lastAnswerRes.current;
+ if (!res) return;
+ if (res.interview_completed || !res.next_question) {
+ setState('fetching_report');
+ try {
+ await submitGazeSummary(sessionId, getSummary());
+ const report = await getReport(sessionId);
+ onComplete(report);
+ } catch (e) {
+ setError(e instanceof Error ? e.message : 'Impossible de récupérer le rapport');
+ setState('error');
+ }
+ } else {
+ const next = res.next_question;
+ setCurrentQuestion(next);
+ setCurrentIndex((i) => i + 1);
+ resetTranscript();
+ setManualText('');
+ setEvaluation(null);
+ await speakQuestion(next);
+ }
+ }, [sessionId, resetTranscript, speakQuestion, onComplete, getSummary]);
+
+ // Auto-start recording as soon as the interviewer finishes speaking
+ const prevStateRef = useRef(null);
+ useEffect(() => {
+ if (
+ state === 'ready_to_record' &&
+ prevStateRef.current === 'speaking' &&
+ !useManualInput &&
+ speechSupported
+ ) {
+ resetTranscript();
+ setManualText('');
+ setState('listening');
+ startListening();
+ }
+ prevStateRef.current = state;
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [state]);
+
+ const avatarState = (() => {
+ if (state === 'speaking') return 'speaking';
+ if (state === 'listening') return 'listening';
+ if (state === 'submitting' || state === 'fetching_report') return 'thinking';
+ return 'idle';
+ })();
+
+ const activeTranscript = (transcript + (interimTranscript ? ' ' + interimTranscript : '')).trim();
+
+ const candidateName = sessionData.candidate_brief.candidate_name;
+
+ // --- Full-screen states ---
+ if (state === 'error') {
+ return (
+
+
+
+
{error}
+
+
+
+ );
+ }
+
+ if (state === 'loading') {
+ return (
+
+
+
+
Connexion à l'entretien...
+
+
+ );
+ }
+
+ if (state === 'fetching_report') {
+ return (
+
+
+
+
Génération de votre rapport...
+
+
+ );
+ }
+
+ // --- Evaluated state: simple confirmation, no scores shown to candidate ---
+ if (state === 'evaluated' && evaluation) {
+ const nextQuestion = lastAnswerRes.current?.next_question;
+ const nextIsEnglish = nextQuestion?.category === 'language_proficiency';
+ return (
+
+
+
+
+
+
Réponse enregistrée
+ {nextIsEnglish && (
+
+
La prochaine question est en anglais
+
Vous devrez répondre en anglais. Prenez un moment pour vous préparer.
+
+ )}
+
+
+
+ );
+ }
+
+ // --- Main interview: Zoom-like layout ---
+ return (
+
+
+ {/* Top bar - Zoom style */}
+
+
+ {/* Video grid */}
+
+
+ {/* Interviewer tile (main / large) */}
+
+ {/* Avatar area */}
+
+
+ {/* Question subtitle bar */}
+ {currentQuestion && (
+
+
+ {currentQuestion.question}
+
+ {state === 'ready_to_record' && Array.isArray(currentQuestion.expected_signals) && currentQuestion.expected_signals.length > 0 && (
+
+ Conseil : {currentQuestion.expected_signals.slice(0, 2).join(', ')}
+
+ )}
+
+ )}
+
+
+ {/* Right column: transcript + webcam as separate tiles */}
+
+
+ {/* Transcript tile */}
+
+ {(state === 'ready_to_record' || state === 'listening' || state === 'submitting') ? (
+
+ {!speechSupported && !useManualInput && (
+
+ Reconnaissance vocale non supportée. Utilisez la saisie texte.
+
+ )}
+
+ {/* Transcript display */}
+ {!useManualInput ? (
+
+ {isListening && (
+
+
+ REC
+
+ )}
+ {isTranscribing && (
+
+
+ Transcription...
+
+ )}
+
+ {activeTranscript || (
+
+ {isListening ? 'Parlez maintenant...' : isTranscribing ? 'Traitement...' : 'Votre réponse apparaîtra ici'}
+
+ )}
+
+
+ ) : (
+
+ ) : (
+
+
+ {state === 'speaking' ? 'Écoute de la question...' : 'En attente...'}
+
+
+ )}
+
+
+
+
+
+
+ {/* Bottom toolbar - Zoom style */}
+
+
+
+ {/* Mic button */}
+ {!useManualInput && (state === 'ready_to_record' || state === 'listening') && (
+
+ )}
+
+ {/* Submit button */}
+ {(state === 'ready_to_record' || state === 'listening' || state === 'submitting') && (
+
+ )}
+
+ {/* Audio toggle */}
+
+
+ {/* End call (visual only for now) */}
+
+
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/pages/LandingPage.tsx b/404jobnotfound-remi-ai/frontend/src/pages/LandingPage.tsx
new file mode 100644
index 0000000..6317848
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/pages/LandingPage.tsx
@@ -0,0 +1,90 @@
+import { useEffect, useState } from 'react';
+import { BrainCircuit, Loader2, AlertCircle, Users } from 'lucide-react';
+import { fetchHRFlowProfile, fetchHRFlowJob, createSession } from '../api';
+import type { SessionData } from '../types';
+
+interface LandingPageProps {
+ onSessionCreated: (data: SessionData) => void;
+ onOpenHR: () => void;
+}
+
+export default function LandingPage({ onSessionCreated, onOpenHR }: LandingPageProps) {
+ const params = new URLSearchParams(window.location.search);
+ const sourceKey = params.get('source_key') ?? import.meta.env.VITE_HRFLOW_SOURCE_KEY ?? '';
+ const profileKey = params.get('profile_key') ?? '';
+ const reference = params.get('reference') ?? '';
+ const userEmail = params.get('user_email') ?? '';
+ const boardKey = params.get('board_key') ?? import.meta.env.VITE_HRFLOW_BOARD_KEY ?? '';
+ const jobKey = params.get('job_key') ?? '';
+
+ const [loadingStep, setLoadingStep] = useState('Chargement…');
+ const [error, setError] = useState(null);
+
+ useEffect(() => {
+ (async () => {
+ try {
+ setLoadingStep('Récupération du profil…');
+ const profile = await fetchHRFlowProfile({
+ source_key: sourceKey,
+ profile_key: profileKey || undefined,
+ reference: reference || undefined,
+ user_email: userEmail || undefined,
+ });
+ let jobOffer: Record | null = null;
+ if (jobKey && boardKey) {
+ setLoadingStep("Récupération de l'offre…");
+ jobOffer = await fetchHRFlowJob({
+ board_key: boardKey,
+ job_key: jobKey,
+ user_email: userEmail || undefined,
+ });
+ }
+ setLoadingStep("Préparation de l'entretien…");
+ const data = await createSession(profile, jobOffer);
+ onSessionCreated(data);
+ } catch (err) {
+ setError(
+ err instanceof Error
+ ? err.message
+ : 'Une erreur est survenue. Vérifiez le lien qui vous a été envoyé.',
+ );
+ }
+ })();
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+
+ {error ? (
+
+ ) : (
+
+ )}
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/pages/ReportPage.tsx b/404jobnotfound-remi-ai/frontend/src/pages/ReportPage.tsx
new file mode 100644
index 0000000..9ec08f8
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/pages/ReportPage.tsx
@@ -0,0 +1,515 @@
+import { useState, useRef } from 'react';
+import {
+ RadarChart, Radar, PolarGrid, PolarAngleAxis, PolarRadiusAxis,
+ BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Cell,
+ ResponsiveContainer,
+} from 'recharts';
+import {
+ CheckCircle2, AlertTriangle, XCircle, TrendingUp, RotateCcw,
+ Download, BrainCircuit, ThumbsUp, ThumbsDown, Eye, ChevronDown, MessageSquare,
+} from 'lucide-react';
+import { ScoreCircle, ScoreBar } from '../components/ScoreBar';
+import type { Report } from '../types';
+
+interface ReportPageProps {
+ report: Report;
+ candidateName: string;
+ onRestart: () => void;
+ backLabel?: string;
+}
+
+const REC_CONFIG: Record<
+ string,
+ { label: string; color: string; icon: React.ReactNode; className: string }
+> = {
+ strong_yes: {
+ label: 'Vivement recommandé',
+ color: '#10b981',
+ icon: ,
+ className: 'rec-strong-yes',
+ },
+ yes: {
+ label: 'Recommandé',
+ color: '#34d399',
+ icon: ,
+ className: 'rec-yes',
+ },
+ mixed: {
+ label: 'Mitigé',
+ color: '#f59e0b',
+ icon: ,
+ className: 'rec-mixed',
+ },
+ no: {
+ label: 'Non recommandé',
+ color: '#ef4444',
+ icon: ,
+ className: 'rec-no',
+ },
+};
+
+const Q_LABELS: Record = {
+ q1: 'Intro',
+ q2: 'Experience',
+ q3: 'Skills',
+ q4: 'Situational',
+ q5: 'Motivation',
+};
+
+const SCORE_COLOR = (s: number) =>
+ s >= 75 ? '#10b981' : s >= 60 ? '#f59e0b' : '#ef4444';
+
+function extractHrflowGrade(raw: unknown): number | null {
+ if (typeof raw === 'number' && Number.isFinite(raw)) return raw;
+ if (!raw || typeof raw !== 'object') return null;
+
+ const record = raw as Record;
+ const directKeys = ['score', 'grade', 'matching_score', 'overall_score', 'value'];
+ for (const key of directKeys) {
+ const value = record[key];
+ if (typeof value === 'number' && Number.isFinite(value)) return value;
+ }
+
+ const data = record.data;
+ if (Array.isArray(data) && data.length > 0) {
+ return extractHrflowGrade(data[0]);
+ }
+ if (data && typeof data === 'object') {
+ return extractHrflowGrade(data);
+ }
+
+ return null;
+}
+
+function normalizeHrflowGrade(raw: unknown): number | null {
+ const value = extractHrflowGrade(raw);
+ if (value === null) return null;
+ if (value >= 0 && value <= 1) return Math.round(value * 1000) / 10;
+ return value;
+}
+
+function handlePrint() {
+ window.print();
+}
+
+function TranscriptAccordion({ questionText, transcript }: { questionText?: string; transcript?: string }) {
+ const [open, setOpen] = useState(false);
+ const contentRef = useRef(null);
+
+ if (!transcript) return null;
+
+ return (
+
+
+ {open && (
+
+ {questionText && (
+
{questionText}
+ )}
+
+ {transcript}
+
+
+ )}
+
+ );
+}
+
+export default function ReportPage({ report, candidateName, onRestart, backLabel }: ReportPageProps) {
+ const [activeTab, setActiveTab] = useState<'overview' | 'questions'>('overview');
+ const rec = REC_CONFIG[report.recommendation] ?? REC_CONFIG.mixed;
+ const hrflowGrade = normalizeHrflowGrade(report.hrflow_profile_job_grade);
+ const targetRole = report.candidate_summary.target_job?.target_role;
+
+ // Radar data (averages of subscores)
+ const avgSubscores = (() => {
+ const evals = report.per_question_evaluations;
+ const sum = (key: keyof typeof evals[0]['subscores']) =>
+ evals.reduce((acc, e) => {
+ const v = e.subscores[key];
+ return acc + (v ?? 0);
+ }, 0) / evals.length;
+
+ return [
+ { subject: 'Pertinence', value: Math.round(sum('relevance')) },
+ { subject: 'Précision', value: Math.round(sum('specificity')) },
+ { subject: 'Cohérence', value: Math.round(sum('consistency_with_profile')) },
+ { subject: 'Adéquation', value: Math.round(sum('job_alignment')) },
+ { subject: 'Clarté', value: Math.round(sum('clarity')) },
+ {
+ subject: 'Technique',
+ value: Math.round(
+ evals
+ .filter((e) => e.subscores.technical_accuracy !== null)
+ .reduce((acc, e) => acc + (e.subscores.technical_accuracy ?? 0), 0) /
+ (evals.filter((e) => e.subscores.technical_accuracy !== null).length || 1),
+ ),
+ },
+ ];
+ })();
+
+ // Bar chart data
+ const barData = report.per_question_evaluations.map((e) => ({
+ name: Q_LABELS[e.question_id] || e.question_id,
+ score: Math.round(e.normalized_score),
+ }));
+
+ return (
+
+ {/* Background */}
+
+
+
+ {/* Header */}
+
+
+
+
+
+
Remi AI
+
/
+
Rapport d'entretien
+
+
+ {report.cv_url && (
+
+
+ CV du candidat
+
+ )}
+
+
+
+
+
+ {/* Candidate header + recommendation */}
+
+ {/* Top row: candidate info + recommendation badge */}
+
+
+
Rapport d'entretien
+
{candidateName}
+
{report.candidate_summary.current_title || 'Candidat'}
+ {targetRole && (
+
Évalué pour : {targetRole}
+ )}
+
+ {report.candidate_summary.seniority}
+ ·
+
+ {Math.round(report.candidate_summary.years_of_experience)} ans d'exp.
+
+ ·
+
+ {report.per_question_evaluations.length} questions répondues
+
+
+
+
+ {/* Recommendation badge */}
+
+ {rec.icon}
+ {rec.label}
+
+
+
+ {/* Score circles row */}
+
+
+ {hrflowGrade !== null ? (
+
+ ) : (
+
+
+ Score HRFlow indisponible
+
+
HRFlow
+
+ )}
+
+
+
+
+
+ {/* Summary */}
+
+
{report.final_summary}
+
+
+
+ {/* Tabs */}
+
+ {(['overview', 'questions'] as const).map((tab) => (
+
+ ))}
+
+
+ {/* Overview tab */}
+ {activeTab === 'overview' && (
+
+
+ {/* Radar chart */}
+
+
+
+ Scores par dimension
+
+
+
+
+
+
+
+
+
+
+
+ {/* Bar chart */}
+
+
Scores par question
+
+
+
+
+
+
+
+ {barData.map((entry, i) => (
+ |
+ ))}
+
+
+
+
+
+
+ {/* Strengths & Concerns */}
+
+
+
+
+ Points forts
+
+ {report.strengths.length === 0 ? (
+
Aucun point fort identifié.
+ ) : (
+
+ {report.strengths.map((s, i) => (
+ -
+ ✓
+ {s}
+
+ ))}
+
+ )}
+
+
+
+
+ Points d'attention
+
+ {report.concerns.length === 0 ? (
+
Aucun point d'attention majeur identifié.
+ ) : (
+
+ {report.concerns.map((c, i) => (
+ -
+ !
+ {c}
+
+ ))}
+
+ )}
+
+
+
+ {/* Category scores */}
+
+
Scores par catégorie
+
+
+ {hrflowGrade !== null && (
+
+ )}
+
+
+
+
+
+
+
+ {/* Behavioral signals */}
+ {report.gaze_summary != null && (() => {
+ const g = report.gaze_summary;
+ const totalSec = Math.round(g.total_look_away_ms / 1000);
+ // Verdict: suspicious if >15s total look-away
+ const suspicious = g.total_look_away_ms > 15_000;
+ return (
+
+
+
+
+
+ {suspicious ? 'Comportement suspect' : 'Aucun comportement suspect'}
+
+ {g.look_away_count > 0 && (
+
+ {g.look_away_count} détournement{g.look_away_count > 1 ? 's' : ''} · {totalSec}s au total
+ {g.events.some(e => e.reason === 'no_face') ? ' · visage absent' : ''}
+
+ )}
+
+
+
+ {suspicious ? 'Triche probable' : 'Fiable'}
+
+
+ );
+ })()}
+
+ )}
+
+ {/* Q&A Breakdown tab */}
+ {activeTab === 'questions' && (
+
+ {report.per_question_evaluations.map((ev, idx) => (
+
+
+
+
+ {idx + 1}
+
+
+ {Q_LABELS[ev.question_id] || ev.question_id}
+
+
+
+
+ {Math.round(ev.normalized_score)}
+
+ /100
+
+
+
+
{ev.rationale}
+
+
+
+ {/* Subscores */}
+
+
+
+
+
+
+ {ev.subscores.technical_accuracy !== null && (
+
+ )}
+
+
+ {/* Strengths & Concerns */}
+ {(ev.strengths.length > 0 || ev.concerns.length > 0) && (
+
+ {ev.strengths.length > 0 && (
+
+
Points forts
+
+ {ev.strengths.map((s, i) => (
+ -
+ +{s}
+
+ ))}
+
+
+ )}
+ {ev.concerns.length > 0 && (
+
+
Points d'attention
+
+ {ev.concerns.map((c, i) => (
+ -
+ !{c}
+
+ ))}
+
+
+ )}
+
+ )}
+
+ ))}
+
+ )}
+
+
+ );
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/types.speech.d.ts b/404jobnotfound-remi-ai/frontend/src/types.speech.d.ts
new file mode 100644
index 0000000..6255cfa
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/types.speech.d.ts
@@ -0,0 +1,46 @@
+// Web Speech API type declarations
+interface SpeechRecognitionEvent extends Event {
+ resultIndex: number;
+ results: SpeechRecognitionResultList;
+}
+
+interface SpeechRecognitionResultList {
+ length: number;
+ item(index: number): SpeechRecognitionResult;
+ [index: number]: SpeechRecognitionResult;
+}
+
+interface SpeechRecognitionResult {
+ isFinal: boolean;
+ length: number;
+ item(index: number): SpeechRecognitionAlternative;
+ [index: number]: SpeechRecognitionAlternative;
+}
+
+interface SpeechRecognitionAlternative {
+ transcript: string;
+ confidence: number;
+}
+
+interface SpeechRecognition extends EventTarget {
+ continuous: boolean;
+ interimResults: boolean;
+ lang: string;
+ maxAlternatives: number;
+ onresult: ((event: SpeechRecognitionEvent) => void) | null;
+ onend: ((event: Event) => void) | null;
+ onerror: ((event: Event) => void) | null;
+ start(): void;
+ stop(): void;
+ abort(): void;
+}
+
+declare var SpeechRecognition: {
+ prototype: SpeechRecognition;
+ new (): SpeechRecognition;
+};
+
+interface Window {
+ SpeechRecognition: typeof SpeechRecognition;
+ webkitSpeechRecognition: typeof SpeechRecognition;
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/types.ts b/404jobnotfound-remi-ai/frontend/src/types.ts
new file mode 100644
index 0000000..8005636
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/types.ts
@@ -0,0 +1,157 @@
+export type AppPage = 'landing' | 'briefing' | 'interview' | 'report' | 'hr_dashboard' | 'hr_report';
+
+export interface JobSection {
+ title: string;
+ description: string;
+}
+
+export interface JobListing {
+ key: string;
+ board_key: string;
+ title: string;
+ company: string;
+ location: string;
+ contract_type: string;
+ skills: string[];
+ summary: string;
+ sections: JobSection[];
+ requirements: string;
+ responsibilities: string;
+ benefits: string;
+ url: string;
+ created_at: string;
+}
+
+export interface InterviewSummary {
+ session_id: string;
+ candidate_name: string;
+ completed_at: string;
+ overall_score: number;
+ recommendation: 'strong_yes' | 'yes' | 'mixed' | 'no';
+}
+
+export interface Experience {
+ title: string;
+ company: string;
+ summary: string;
+ duration_years: number;
+}
+
+export interface NormalizedProfile {
+ profile_key: string | null;
+ name: string;
+ title: string | null;
+ years_of_experience: number;
+ top_skills: string[];
+ experiences: Experience[];
+ certifications: string[];
+ languages: string[];
+ profile_text: string;
+}
+
+export interface CandidateBrief {
+ profile_key: string;
+ candidate_name: string;
+ current_title: string;
+ years_of_experience: number;
+ seniority: 'junior' | 'mid' | 'senior';
+ top_skills: string[];
+ strongest_experiences: Experience[];
+ target_job?: {
+ target_role?: string;
+ target_company?: string | null;
+ target_skills?: string[];
+ key_requirements?: string[];
+ job_text?: string;
+ };
+}
+
+export interface SessionData {
+ session_id: string;
+ normalized_profile: NormalizedProfile;
+ candidate_brief: CandidateBrief;
+ normalized_job_offer?: {
+ title?: string;
+ company?: string | null;
+ top_skills?: string[];
+ } | null;
+}
+
+export interface Question {
+ id: string;
+ category:
+ | 'intro_synthesis'
+ | 'experience_validation'
+ | 'skill_validation'
+ | 'situational_or_technical'
+ | 'projection_motivation'
+ | 'language_proficiency';
+ question: string;
+ why_it_matters: string;
+ expected_signals: string[];
+ scoring_criteria: string[];
+ priority: number;
+}
+
+export interface Subscores {
+ relevance: number;
+ specificity: number;
+ consistency_with_profile: number;
+ job_alignment: number;
+ clarity: number;
+ technical_accuracy: number | null;
+}
+
+export interface Evaluation {
+ question_id: string;
+ normalized_score: number;
+ subscores: Subscores;
+ strengths: string[];
+ concerns: string[];
+ rationale: string;
+ transcript?: string;
+ question_text?: string;
+}
+
+export interface AnswerResponse {
+ evaluation: Evaluation;
+ next_question: Question | null;
+ interview_completed: boolean;
+}
+
+export interface StartResponse {
+ generated_questions: Question[];
+ current_question: Question;
+ audio_base64: string | null;
+}
+
+export interface GazeEvent {
+ timestamp: number;
+ duration_ms: number;
+ question_index: number;
+ reason: 'look_away' | 'no_face';
+}
+
+export interface GazeSummary {
+ events: GazeEvent[];
+ total_look_away_ms: number;
+ look_away_count: number;
+}
+
+export interface Report {
+ session_id: string;
+ candidate_summary: CandidateBrief;
+ per_question_evaluations: Evaluation[];
+ overall_score: number;
+ communication_score: number;
+ technical_score: number;
+ profile_consistency_score: number;
+ job_alignment_score: number;
+ hrflow_profile_job_grade?: unknown;
+ recommendation: 'strong_yes' | 'yes' | 'mixed' | 'no';
+ strengths: string[];
+ concerns: string[];
+ final_summary: string;
+ gaze_summary?: GazeSummary | null;
+ cv_url?: string | null;
+}
diff --git a/404jobnotfound-remi-ai/frontend/src/vite-env.d.ts b/404jobnotfound-remi-ai/frontend/src/vite-env.d.ts
new file mode 100644
index 0000000..b82f050
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/src/vite-env.d.ts
@@ -0,0 +1,11 @@
+///
+
+interface ImportMetaEnv {
+ readonly VITE_HRFLOW_API_KEY: string;
+ readonly VITE_HRFLOW_USER_EMAIL: string;
+ readonly VITE_HRFLOW_SOURCE_KEY: string;
+}
+
+interface ImportMeta {
+ readonly env: ImportMetaEnv;
+}
diff --git a/404jobnotfound-remi-ai/frontend/tailwind.config.js b/404jobnotfound-remi-ai/frontend/tailwind.config.js
new file mode 100644
index 0000000..e2bd326
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/tailwind.config.js
@@ -0,0 +1,40 @@
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
+ theme: {
+ extend: {
+ animation: {
+ 'spin-slow': 'spin 8s linear infinite',
+ 'pulse-slow': 'pulse 3s ease-in-out infinite',
+ 'bounce-bar': 'bounceBar 0.8s ease-in-out infinite alternate',
+ 'fade-in': 'fadeIn 0.5s ease-out',
+ 'slide-up': 'slideUp 0.4s ease-out',
+ 'scale-in': 'scaleIn 0.3s ease-out',
+ 'glow': 'glow 2s ease-in-out infinite',
+ },
+ keyframes: {
+ bounceBar: {
+ '0%': { transform: 'scaleY(0.3)' },
+ '100%': { transform: 'scaleY(1)' },
+ },
+ fadeIn: {
+ '0%': { opacity: '0' },
+ '100%': { opacity: '1' },
+ },
+ slideUp: {
+ '0%': { opacity: '0', transform: 'translateY(20px)' },
+ '100%': { opacity: '1', transform: 'translateY(0)' },
+ },
+ scaleIn: {
+ '0%': { opacity: '0', transform: 'scale(0.9)' },
+ '100%': { opacity: '1', transform: 'scale(1)' },
+ },
+ glow: {
+ '0%, 100%': { boxShadow: '0 0 20px rgba(59, 130, 246, 0.4)' },
+ '50%': { boxShadow: '0 0 40px rgba(59, 130, 246, 0.8)' },
+ },
+ },
+ },
+ },
+ plugins: [],
+}
diff --git a/404jobnotfound-remi-ai/frontend/tsconfig.json b/404jobnotfound-remi-ai/frontend/tsconfig.json
new file mode 100644
index 0000000..17f43b1
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+ "strict": true,
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/404jobnotfound-remi-ai/frontend/tsconfig.node.json b/404jobnotfound-remi-ai/frontend/tsconfig.node.json
new file mode 100644
index 0000000..42872c5
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/tsconfig.node.json
@@ -0,0 +1,10 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "skipLibCheck": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/404jobnotfound-remi-ai/frontend/vite.config.ts b/404jobnotfound-remi-ai/frontend/vite.config.ts
new file mode 100644
index 0000000..78728fd
--- /dev/null
+++ b/404jobnotfound-remi-ai/frontend/vite.config.ts
@@ -0,0 +1,22 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+export default defineConfig({
+ plugins: [react()],
+ server: {
+ port: 3000,
+ proxy: {
+ '/api': {
+ target: 'http://localhost:8000',
+ changeOrigin: true,
+ rewrite: (path) => path.replace(/^\/api/, ''),
+ },
+ '/hrflow-api': {
+ target: 'https://api.hrflow.ai/v1',
+ changeOrigin: true,
+ secure: true,
+ rewrite: (path) => path.replace(/^\/hrflow-api/, ''),
+ },
+ },
+ },
+})
diff --git a/404jobnotfound-remi-ai/pyproject.toml b/404jobnotfound-remi-ai/pyproject.toml
new file mode 100644
index 0000000..ca198fb
--- /dev/null
+++ b/404jobnotfound-remi-ai/pyproject.toml
@@ -0,0 +1,2 @@
+[tool.uv.workspace]
+members = ["agent", "backend"]
diff --git a/404jobnotfound-remi-ai/uv.lock b/404jobnotfound-remi-ai/uv.lock
new file mode 100644
index 0000000..54dc54e
--- /dev/null
+++ b/404jobnotfound-remi-ai/uv.lock
@@ -0,0 +1,2087 @@
+version = 1
+revision = 3
+requires-python = ">=3.11"
+resolution-markers = [
+ "python_full_version >= '3.14'",
+ "python_full_version == '3.13.*'",
+ "python_full_version < '3.13'",
+]
+
+[manifest]
+members = [
+ "agent",
+ "backend",
+]
+
+[[package]]
+name = "agent"
+version = "0.1.0"
+source = { editable = "agent" }
+dependencies = [
+ { name = "httpx" },
+]
+
+[package.metadata]
+requires-dist = [{ name = "httpx" }]
+
+[[package]]
+name = "aiohappyeyeballs"
+version = "2.6.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" },
+]
+
+[[package]]
+name = "aiohttp"
+version = "3.13.5"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "aiohappyeyeballs" },
+ { name = "aiosignal" },
+ { name = "attrs" },
+ { name = "frozenlist" },
+ { name = "multidict" },
+ { name = "propcache" },
+ { name = "yarl" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/77/9a/152096d4808df8e4268befa55fba462f440f14beab85e8ad9bf990516918/aiohttp-3.13.5.tar.gz", hash = "sha256:9d98cc980ecc96be6eb4c1994ce35d28d8b1f5e5208a23b421187d1209dbb7d1", size = 7858271, upload-time = "2026-03-31T22:01:03.343Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d6/f5/a20c4ac64aeaef1679e25c9983573618ff765d7aa829fa2b84ae7573169e/aiohttp-3.13.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ab7229b6f9b5c1ba4910d6c41a9eb11f543eadb3f384df1b4c293f4e73d44d6", size = 757513, upload-time = "2026-03-31T21:57:02.146Z" },
+ { url = "https://files.pythonhosted.org/packages/75/0a/39fa6c6b179b53fcb3e4b3d2b6d6cad0180854eda17060c7218540102bef/aiohttp-3.13.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8f14c50708bb156b3a3ca7230b3d820199d56a48e3af76fa21c2d6087190fe3d", size = 506748, upload-time = "2026-03-31T21:57:04.275Z" },
+ { url = "https://files.pythonhosted.org/packages/87/ec/e38ce072e724fd7add6243613f8d1810da084f54175353d25ccf9f9c7e5a/aiohttp-3.13.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7d2f8616f0ff60bd332022279011776c3ac0faa0f1b463f7bb12326fbc97a1c", size = 501673, upload-time = "2026-03-31T21:57:06.208Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/ba/3bc7525d7e2beaa11b309a70d48b0d3cfc3c2089ec6a7d0820d59c657053/aiohttp-3.13.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2567b72e1ffc3ab25510db43f355b29eeada56c0a622e58dcdb19530eb0a3cb", size = 1763757, upload-time = "2026-03-31T21:57:07.882Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/ab/e87744cf18f1bd78263aba24924d4953b41086bd3a31d22452378e9028a0/aiohttp-3.13.5-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fb0540c854ac9c0c5ad495908fdfd3e332d553ec731698c0e29b1877ba0d2ec6", size = 1720152, upload-time = "2026-03-31T21:57:09.946Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/f3/ed17a6f2d742af17b50bae2d152315ed1b164b07a5fd5cc1754d99e4dfa5/aiohttp-3.13.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9883051c6972f58bfc4ebb2116345ee2aa151178e99c3f2b2bbe2af712abd13", size = 1818010, upload-time = "2026-03-31T21:57:12.157Z" },
+ { url = "https://files.pythonhosted.org/packages/53/06/ecbc63dc937192e2a5cb46df4d3edb21deb8225535818802f210a6ea5816/aiohttp-3.13.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2294172ce08a82fb7c7273485895de1fa1186cc8294cfeb6aef4af42ad261174", size = 1907251, upload-time = "2026-03-31T21:57:14.023Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/a5/0521aa32c1ddf3aa1e71dcc466be0b7db2771907a13f18cddaa45967d97b/aiohttp-3.13.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a807cabd5115fb55af198b98178997a5e0e57dead43eb74a93d9c07d6d4a7dc", size = 1759969, upload-time = "2026-03-31T21:57:16.146Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/78/a38f8c9105199dd3b9706745865a8a59d0041b6be0ca0cc4b2ccf1bab374/aiohttp-3.13.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aa6d0d932e0f39c02b80744273cd5c388a2d9bc07760a03164f229c8e02662f6", size = 1616871, upload-time = "2026-03-31T21:57:17.856Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/41/27392a61ead8ab38072105c71aa44ff891e71653fe53d576a7067da2b4e8/aiohttp-3.13.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:60869c7ac4aaabe7110f26499f3e6e5696eae98144735b12a9c3d9eae2b51a49", size = 1739844, upload-time = "2026-03-31T21:57:19.679Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/55/5564e7ae26d94f3214250009a0b1c65a0c6af4bf88924ccb6fdab901de28/aiohttp-3.13.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:26d2f8546f1dfa75efa50c3488215a903c0168d253b75fba4210f57ab77a0fb8", size = 1731969, upload-time = "2026-03-31T21:57:22.006Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/c5/705a3929149865fc941bcbdd1047b238e4a72bcb215a9b16b9d7a2e8d992/aiohttp-3.13.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1162a1492032c82f14271e831c8f4b49f2b6078f4f5fc74de2c912fa225d51d", size = 1795193, upload-time = "2026-03-31T21:57:24.256Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/19/edabed62f718d02cff7231ca0db4ef1c72504235bc467f7b67adb1679f48/aiohttp-3.13.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:8b14eb3262fad0dc2f89c1a43b13727e709504972186ff6a99a3ecaa77102b6c", size = 1606477, upload-time = "2026-03-31T21:57:26.364Z" },
+ { url = "https://files.pythonhosted.org/packages/de/fc/76f80ef008675637d88d0b21584596dc27410a990b0918cb1e5776545b5b/aiohttp-3.13.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ca9ac61ac6db4eb6c2a0cd1d0f7e1357647b638ccc92f7e9d8d133e71ed3c6ac", size = 1813198, upload-time = "2026-03-31T21:57:28.316Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/67/5b3ac26b80adb20ea541c487f73730dc8fa107d632c998f25bbbab98fcda/aiohttp-3.13.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7996023b2ed59489ae4762256c8516df9820f751cf2c5da8ed2fb20ee50abab3", size = 1752321, upload-time = "2026-03-31T21:57:30.549Z" },
+ { url = "https://files.pythonhosted.org/packages/88/06/e4a2e49255ea23fa4feeb5ab092d90240d927c15e47b5b5c48dff5a9ce29/aiohttp-3.13.5-cp311-cp311-win32.whl", hash = "sha256:77dfa48c9f8013271011e51c00f8ada19851f013cde2c48fca1ba5e0caf5bb06", size = 439069, upload-time = "2026-03-31T21:57:32.388Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/43/8c7163a596dab4f8be12c190cf467a1e07e4734cf90eebb39f7f5d53fc6a/aiohttp-3.13.5-cp311-cp311-win_amd64.whl", hash = "sha256:d3a4834f221061624b8887090637db9ad4f61752001eae37d56c52fddade2dc8", size = 462859, upload-time = "2026-03-31T21:57:34.455Z" },
+ { url = "https://files.pythonhosted.org/packages/be/6f/353954c29e7dcce7cf00280a02c75f30e133c00793c7a2ed3776d7b2f426/aiohttp-3.13.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:023ecba036ddd840b0b19bf195bfae970083fd7024ce1ac22e9bba90464620e9", size = 748876, upload-time = "2026-03-31T21:57:36.319Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/1b/428a7c64687b3b2e9cd293186695affc0e1e54a445d0361743b231f11066/aiohttp-3.13.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:15c933ad7920b7d9a20de151efcd05a6e38302cbf0e10c9b2acb9a42210a2416", size = 499557, upload-time = "2026-03-31T21:57:38.236Z" },
+ { url = "https://files.pythonhosted.org/packages/29/47/7be41556bfbb6917069d6a6634bb7dd5e163ba445b783a90d40f5ac7e3a7/aiohttp-3.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab2899f9fa2f9f741896ebb6fa07c4c883bfa5c7f2ddd8cf2aafa86fa981b2d2", size = 500258, upload-time = "2026-03-31T21:57:39.923Z" },
+ { url = "https://files.pythonhosted.org/packages/67/84/c9ecc5828cb0b3695856c07c0a6817a99d51e2473400f705275a2b3d9239/aiohttp-3.13.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60eaa2d440cd4707696b52e40ed3e2b0f73f65be07fd0ef23b6b539c9c0b0b4", size = 1749199, upload-time = "2026-03-31T21:57:41.938Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/d3/3c6d610e66b495657622edb6ae7c7fd31b2e9086b4ec50b47897ad6042a9/aiohttp-3.13.5-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55b3bdd3292283295774ab585160c4004f4f2f203946997f49aac032c84649e9", size = 1721013, upload-time = "2026-03-31T21:57:43.904Z" },
+ { url = "https://files.pythonhosted.org/packages/49/a0/24409c12217456df0bae7babe3b014e460b0b38a8e60753d6cb339f6556d/aiohttp-3.13.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2b2355dc094e5f7d45a7bb262fe7207aa0460b37a0d87027dcf21b5d890e7d5", size = 1781501, upload-time = "2026-03-31T21:57:46.285Z" },
+ { url = "https://files.pythonhosted.org/packages/98/9d/b65ec649adc5bccc008b0957a9a9c691070aeac4e41cea18559fef49958b/aiohttp-3.13.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b38765950832f7d728297689ad78f5f2cf79ff82487131c4d26fe6ceecdc5f8e", size = 1878981, upload-time = "2026-03-31T21:57:48.734Z" },
+ { url = "https://files.pythonhosted.org/packages/57/d8/8d44036d7eb7b6a8ec4c5494ea0c8c8b94fbc0ed3991c1a7adf230df03bf/aiohttp-3.13.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b18f31b80d5a33661e08c89e202edabf1986e9b49c42b4504371daeaa11b47c1", size = 1767934, upload-time = "2026-03-31T21:57:51.171Z" },
+ { url = "https://files.pythonhosted.org/packages/31/04/d3f8211f273356f158e3464e9e45484d3fb8c4ce5eb2f6fe9405c3273983/aiohttp-3.13.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:33add2463dde55c4f2d9635c6ab33ce154e5ecf322bd26d09af95c5f81cfa286", size = 1566671, upload-time = "2026-03-31T21:57:53.326Z" },
+ { url = "https://files.pythonhosted.org/packages/41/db/073e4ebe00b78e2dfcacff734291651729a62953b48933d765dc513bf798/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:327cc432fdf1356fb4fbc6fe833ad4e9f6aacb71a8acaa5f1855e4b25910e4a9", size = 1705219, upload-time = "2026-03-31T21:57:55.385Z" },
+ { url = "https://files.pythonhosted.org/packages/48/45/7dfba71a2f9fd97b15c95c06819de7eb38113d2cdb6319669195a7d64270/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7c35b0bf0b48a70b4cb4fc5d7bed9b932532728e124874355de1a0af8ec4bc88", size = 1743049, upload-time = "2026-03-31T21:57:57.341Z" },
+ { url = "https://files.pythonhosted.org/packages/18/71/901db0061e0f717d226386a7f471bb59b19566f2cae5f0d93874b017271f/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:df23d57718f24badef8656c49743e11a89fd6f5358fa8a7b96e728fda2abf7d3", size = 1749557, upload-time = "2026-03-31T21:57:59.626Z" },
+ { url = "https://files.pythonhosted.org/packages/08/d5/41eebd16066e59cd43728fe74bce953d7402f2b4ddfdfef2c0e9f17ca274/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:02e048037a6501a5ec1f6fc9736135aec6eb8a004ce48838cb951c515f32c80b", size = 1558931, upload-time = "2026-03-31T21:58:01.972Z" },
+ { url = "https://files.pythonhosted.org/packages/30/e6/4a799798bf05740e66c3a1161079bda7a3dd8e22ca392481d7a7f9af82a6/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31cebae8b26f8a615d2b546fee45d5ffb76852ae6450e2a03f42c9102260d6fe", size = 1774125, upload-time = "2026-03-31T21:58:04.007Z" },
+ { url = "https://files.pythonhosted.org/packages/84/63/7749337c90f92bc2cb18f9560d67aa6258c7060d1397d21529b8004fcf6f/aiohttp-3.13.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:888e78eb5ca55a615d285c3c09a7a91b42e9dd6fc699b166ebd5dee87c9ccf14", size = 1732427, upload-time = "2026-03-31T21:58:06.337Z" },
+ { url = "https://files.pythonhosted.org/packages/98/de/cf2f44ff98d307e72fb97d5f5bbae3bfcb442f0ea9790c0bf5c5c2331404/aiohttp-3.13.5-cp312-cp312-win32.whl", hash = "sha256:8bd3ec6376e68a41f9f95f5ed170e2fcf22d4eb27a1f8cb361d0508f6e0557f3", size = 433534, upload-time = "2026-03-31T21:58:08.712Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/ca/eadf6f9c8fa5e31d40993e3db153fb5ed0b11008ad5d9de98a95045bed84/aiohttp-3.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:110e448e02c729bcebb18c60b9214a87ba33bac4a9fa5e9a5f139938b56c6cb1", size = 460446, upload-time = "2026-03-31T21:58:10.945Z" },
+ { url = "https://files.pythonhosted.org/packages/78/e9/d76bf503005709e390122d34e15256b88f7008e246c4bdbe915cd4f1adce/aiohttp-3.13.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5029cc80718bbd545123cd8fe5d15025eccaaaace5d0eeec6bd556ad6163d61", size = 742930, upload-time = "2026-03-31T21:58:13.155Z" },
+ { url = "https://files.pythonhosted.org/packages/57/00/4b7b70223deaebd9bb85984d01a764b0d7bd6526fcdc73cca83bcbe7243e/aiohttp-3.13.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4bb6bf5811620003614076bdc807ef3b5e38244f9d25ca5fe888eaccea2a9832", size = 496927, upload-time = "2026-03-31T21:58:15.073Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/f5/0fb20fb49f8efdcdce6cd8127604ad2c503e754a8f139f5e02b01626523f/aiohttp-3.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a84792f8631bf5a94e52d9cc881c0b824ab42717165a5579c760b830d9392ac9", size = 497141, upload-time = "2026-03-31T21:58:17.009Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/86/b7c870053e36a94e8951b803cb5b909bfbc9b90ca941527f5fcafbf6b0fa/aiohttp-3.13.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:57653eac22c6a4c13eb22ecf4d673d64a12f266e72785ab1c8b8e5940d0e8090", size = 1732476, upload-time = "2026-03-31T21:58:18.925Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/e5/4e161f84f98d80c03a238671b4136e6530453d65262867d989bbe78244d0/aiohttp-3.13.5-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5e5f7debc7a57af53fdf5c5009f9391d9f4c12867049d509bf7bb164a6e295b", size = 1706507, upload-time = "2026-03-31T21:58:21.094Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/56/ea11a9f01518bd5a2a2fcee869d248c4b8a0cfa0bb13401574fa31adf4d4/aiohttp-3.13.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c719f65bebcdf6716f10e9eff80d27567f7892d8988c06de12bbbd39307c6e3a", size = 1773465, upload-time = "2026-03-31T21:58:23.159Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/40/333ca27fb74b0383f17c90570c748f7582501507307350a79d9f9f3c6eb1/aiohttp-3.13.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d97f93fdae594d886c5a866636397e2bcab146fd7a132fd6bb9ce182224452f8", size = 1873523, upload-time = "2026-03-31T21:58:25.59Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/d2/e2f77eef1acb7111405433c707dc735e63f67a56e176e72e9e7a2cd3f493/aiohttp-3.13.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df334e39d4c2f899a914f1dba283c1aadc311790733f705182998c6f7cae665", size = 1754113, upload-time = "2026-03-31T21:58:27.624Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/56/3f653d7f53c89669301ec9e42c95233e2a0c0a6dd051269e6e678db4fdb0/aiohttp-3.13.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe6970addfea9e5e081401bcbadf865d2b6da045472f58af08427e108d618540", size = 1562351, upload-time = "2026-03-31T21:58:29.918Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/a6/9b3e91eb8ae791cce4ee736da02211c85c6f835f1bdfac0594a8a3b7018c/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7becdf835feff2f4f335d7477f121af787e3504b48b449ff737afb35869ba7bb", size = 1693205, upload-time = "2026-03-31T21:58:32.214Z" },
+ { url = "https://files.pythonhosted.org/packages/98/fc/bfb437a99a2fcebd6b6eaec609571954de2ed424f01c352f4b5504371dd3/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:676e5651705ad5d8a70aeb8eb6936c436d8ebbd56e63436cb7dd9bb36d2a9a46", size = 1730618, upload-time = "2026-03-31T21:58:34.728Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/b6/c8534862126191a034f68153194c389addc285a0f1347d85096d349bbc15/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9b16c653d38eb1a611cc898c41e76859ca27f119d25b53c12875fd0474ae31a8", size = 1745185, upload-time = "2026-03-31T21:58:36.909Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/93/4ca8ee2ef5236e2707e0fd5fecb10ce214aee1ff4ab307af9c558bda3b37/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:999802d5fa0389f58decd24b537c54aa63c01c3219ce17d1214cbda3c2b22d2d", size = 1557311, upload-time = "2026-03-31T21:58:39.38Z" },
+ { url = "https://files.pythonhosted.org/packages/57/ae/76177b15f18c5f5d094f19901d284025db28eccc5ae374d1d254181d33f4/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec707059ee75732b1ba130ed5f9580fe10ff75180c812bc267ded039db5128c6", size = 1773147, upload-time = "2026-03-31T21:58:41.476Z" },
+ { url = "https://files.pythonhosted.org/packages/01/a4/62f05a0a98d88af59d93b7fcac564e5f18f513cb7471696ac286db970d6a/aiohttp-3.13.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d6d44a5b48132053c2f6cd5c8cb14bc67e99a63594e336b0f2af81e94d5530c", size = 1730356, upload-time = "2026-03-31T21:58:44.049Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/85/fc8601f59dfa8c9523808281f2da571f8b4699685f9809a228adcc90838d/aiohttp-3.13.5-cp313-cp313-win32.whl", hash = "sha256:329f292ed14d38a6c4c435e465f48bebb47479fd676a0411936cc371643225cc", size = 432637, upload-time = "2026-03-31T21:58:46.167Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/1b/ac685a8882896acf0f6b31d689e3792199cfe7aba37969fa91da63a7fa27/aiohttp-3.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:69f571de7500e0557801c0b51f4780482c0ec5fe2ac851af5a92cfce1af1cb83", size = 458896, upload-time = "2026-03-31T21:58:48.119Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/ce/46572759afc859e867a5bc8ec3487315869013f59281ce61764f76d879de/aiohttp-3.13.5-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:eb4639f32fd4a9904ab8fb45bf3383ba71137f3d9d4ba25b3b3f3109977c5b8c", size = 745721, upload-time = "2026-03-31T21:58:50.229Z" },
+ { url = "https://files.pythonhosted.org/packages/13/fe/8a2efd7626dbe6049b2ef8ace18ffda8a4dfcbe1bcff3ac30c0c7575c20b/aiohttp-3.13.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:7e5dc4311bd5ac493886c63cbf76ab579dbe4641268e7c74e48e774c74b6f2be", size = 497663, upload-time = "2026-03-31T21:58:52.232Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/91/cc8cc78a111826c54743d88651e1687008133c37e5ee615fee9b57990fac/aiohttp-3.13.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:756c3c304d394977519824449600adaf2be0ccee76d206ee339c5e76b70ded25", size = 499094, upload-time = "2026-03-31T21:58:54.566Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/33/a8362cb15cf16a3af7e86ed11962d5cd7d59b449202dc576cdc731310bde/aiohttp-3.13.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecc26751323224cf8186efcf7fbcbc30f4e1d8c7970659daf25ad995e4032a56", size = 1726701, upload-time = "2026-03-31T21:58:56.864Z" },
+ { url = "https://files.pythonhosted.org/packages/45/0c/c091ac5c3a17114bd76cbf85d674650969ddf93387876cf67f754204bd77/aiohttp-3.13.5-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10a75acfcf794edf9d8db50e5a7ec5fc818b2a8d3f591ce93bc7b1210df016d2", size = 1683360, upload-time = "2026-03-31T21:58:59.072Z" },
+ { url = "https://files.pythonhosted.org/packages/23/73/bcee1c2b79bc275e964d1446c55c54441a461938e70267c86afaae6fba27/aiohttp-3.13.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0f7a18f258d124cd678c5fe072fe4432a4d5232b0657fca7c1847f599233c83a", size = 1773023, upload-time = "2026-03-31T21:59:01.776Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/ef/720e639df03004fee2d869f771799d8c23046dec47d5b81e396c7cda583a/aiohttp-3.13.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:df6104c009713d3a89621096f3e3e88cc323fd269dbd7c20afe18535094320be", size = 1853795, upload-time = "2026-03-31T21:59:04.568Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/c9/989f4034fb46841208de7aeeac2c6d8300745ab4f28c42f629ba77c2d916/aiohttp-3.13.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:241a94f7de7c0c3b616627aaad530fe2cb620084a8b144d3be7b6ecfe95bae3b", size = 1730405, upload-time = "2026-03-31T21:59:07.221Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/75/ee1fd286ca7dc599d824b5651dad7b3be7ff8d9a7e7b3fe9820d9180f7db/aiohttp-3.13.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c974fb66180e58709b6fc402846f13791240d180b74de81d23913abe48e96d94", size = 1558082, upload-time = "2026-03-31T21:59:09.484Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/20/1e9e6650dfc436340116b7aa89ff8cb2bbdf0abc11dfaceaad8f74273a10/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6e27ea05d184afac78aabbac667450c75e54e35f62238d44463131bd3f96753d", size = 1692346, upload-time = "2026-03-31T21:59:12.068Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/40/8ebc6658d48ea630ac7903912fe0dd4e262f0e16825aa4c833c56c9f1f56/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a79a6d399cef33a11b6f004c67bb07741d91f2be01b8d712d52c75711b1e07c7", size = 1698891, upload-time = "2026-03-31T21:59:14.552Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/78/ea0ae5ec8ba7a5c10bdd6e318f1ba5e76fcde17db8275188772afc7917a4/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c632ce9c0b534fbe25b52c974515ed674937c5b99f549a92127c85f771a78772", size = 1742113, upload-time = "2026-03-31T21:59:17.068Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/66/9d308ed71e3f2491be1acb8769d96c6f0c47d92099f3bc9119cada27b357/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fceedde51fbd67ee2bcc8c0b33d0126cc8b51ef3bbde2f86662bd6d5a6f10ec5", size = 1553088, upload-time = "2026-03-31T21:59:19.541Z" },
+ { url = "https://files.pythonhosted.org/packages/da/a6/6cc25ed8dfc6e00c90f5c6d126a98e2cf28957ad06fa1036bd34b6f24a2c/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f92995dfec9420bb69ae629abf422e516923ba79ba4403bc750d94fb4a6c68c1", size = 1757976, upload-time = "2026-03-31T21:59:22.311Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/2b/cce5b0ffe0de99c83e5e36d8f828e4161e415660a9f3e58339d07cce3006/aiohttp-3.13.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20ae0ff08b1f2c8788d6fb85afcb798654ae6ba0b747575f8562de738078457b", size = 1712444, upload-time = "2026-03-31T21:59:24.635Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/cf/9e1795b4160c58d29421eafd1a69c6ce351e2f7c8d3c6b7e4ca44aea1a5b/aiohttp-3.13.5-cp314-cp314-win32.whl", hash = "sha256:b20df693de16f42b2472a9c485e1c948ee55524786a0a34345511afdd22246f3", size = 438128, upload-time = "2026-03-31T21:59:27.291Z" },
+ { url = "https://files.pythonhosted.org/packages/22/4d/eaedff67fc805aeba4ba746aec891b4b24cebb1a7d078084b6300f79d063/aiohttp-3.13.5-cp314-cp314-win_amd64.whl", hash = "sha256:f85c6f327bf0b8c29da7d93b1cabb6363fb5e4e160a32fa241ed2dce21b73162", size = 464029, upload-time = "2026-03-31T21:59:29.429Z" },
+ { url = "https://files.pythonhosted.org/packages/79/11/c27d9332ee20d68dd164dc12a6ecdef2e2e35ecc97ed6cf0d2442844624b/aiohttp-3.13.5-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1efb06900858bb618ff5cee184ae2de5828896c448403d51fb633f09e109be0a", size = 778758, upload-time = "2026-03-31T21:59:31.547Z" },
+ { url = "https://files.pythonhosted.org/packages/04/fb/377aead2e0a3ba5f09b7624f702a964bdf4f08b5b6728a9799830c80041e/aiohttp-3.13.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fee86b7c4bd29bdaf0d53d14739b08a106fdda809ca5fe032a15f52fae5fe254", size = 512883, upload-time = "2026-03-31T21:59:34.098Z" },
+ { url = "https://files.pythonhosted.org/packages/bb/a6/aa109a33671f7a5d3bd78b46da9d852797c5e665bfda7d6b373f56bff2ec/aiohttp-3.13.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:20058e23909b9e65f9da62b396b77dfa95965cbe840f8def6e572538b1d32e36", size = 516668, upload-time = "2026-03-31T21:59:36.497Z" },
+ { url = "https://files.pythonhosted.org/packages/79/b3/ca078f9f2fa9563c36fb8ef89053ea2bb146d6f792c5104574d49d8acb63/aiohttp-3.13.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cf20a8d6868cb15a73cab329ffc07291ba8c22b1b88176026106ae39aa6df0f", size = 1883461, upload-time = "2026-03-31T21:59:38.723Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/e3/a7ad633ca1ca497b852233a3cce6906a56c3225fb6d9217b5e5e60b7419d/aiohttp-3.13.5-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:330f5da04c987f1d5bdb8ae189137c77139f36bd1cb23779ca1a354a4b027800", size = 1747661, upload-time = "2026-03-31T21:59:41.187Z" },
+ { url = "https://files.pythonhosted.org/packages/33/b9/cd6fe579bed34a906d3d783fe60f2fa297ef55b27bb4538438ee49d4dc41/aiohttp-3.13.5-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f1cbf0c7926d315c3c26c2da41fd2b5d2fe01ac0e157b78caefc51a782196cf", size = 1863800, upload-time = "2026-03-31T21:59:43.84Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/3f/2c1e2f5144cefa889c8afd5cf431994c32f3b29da9961698ff4e3811b79a/aiohttp-3.13.5-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:53fc049ed6390d05423ba33103ded7281fe897cf97878f369a527070bd95795b", size = 1958382, upload-time = "2026-03-31T21:59:46.187Z" },
+ { url = "https://files.pythonhosted.org/packages/66/1d/f31ec3f1013723b3babe3609e7f119c2c2fb6ef33da90061a705ef3e1bc8/aiohttp-3.13.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:898703aa2667e3c5ca4c54ca36cd73f58b7a38ef87a5606414799ebce4d3fd3a", size = 1803724, upload-time = "2026-03-31T21:59:48.656Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/b4/57712dfc6f1542f067daa81eb61da282fab3e6f1966fca25db06c4fc62d5/aiohttp-3.13.5-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0494a01ca9584eea1e5fbd6d748e61ecff218c51b576ee1999c23db7066417d8", size = 1640027, upload-time = "2026-03-31T21:59:51.284Z" },
+ { url = "https://files.pythonhosted.org/packages/25/3c/734c878fb43ec083d8e31bf029daae1beafeae582d1b35da234739e82ee7/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6cf81fe010b8c17b09495cbd15c1d35afbc8fb405c0c9cf4738e5ae3af1d65be", size = 1806644, upload-time = "2026-03-31T21:59:53.753Z" },
+ { url = "https://files.pythonhosted.org/packages/20/a5/f671e5cbec1c21d044ff3078223f949748f3a7f86b14e34a365d74a5d21f/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:c564dd5f09ddc9d8f2c2d0a301cd30a79a2cc1b46dd1a73bef8f0038863d016b", size = 1791630, upload-time = "2026-03-31T21:59:56.239Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/63/fb8d0ad63a0b8a99be97deac8c04dacf0785721c158bdf23d679a87aa99e/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2994be9f6e51046c4f864598fd9abeb4fba6e88f0b2152422c9666dcd4aea9c6", size = 1809403, upload-time = "2026-03-31T21:59:59.103Z" },
+ { url = "https://files.pythonhosted.org/packages/59/0c/bfed7f30662fcf12206481c2aac57dedee43fe1c49275e85b3a1e1742294/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:157826e2fa245d2ef46c83ea8a5faf77ca19355d278d425c29fda0beb3318037", size = 1634924, upload-time = "2026-03-31T22:00:02.116Z" },
+ { url = "https://files.pythonhosted.org/packages/17/d6/fd518d668a09fd5a3319ae5e984d4d80b9a4b3df4e21c52f02251ef5a32e/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a8aca50daa9493e9e13c0f566201a9006f080e7c50e5e90d0b06f53146a54500", size = 1836119, upload-time = "2026-03-31T22:00:04.756Z" },
+ { url = "https://files.pythonhosted.org/packages/78/b7/15fb7a9d52e112a25b621c67b69c167805cb1f2ab8f1708a5c490d1b52fe/aiohttp-3.13.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3b13560160d07e047a93f23aaa30718606493036253d5430887514715b67c9d9", size = 1772072, upload-time = "2026-03-31T22:00:07.494Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/df/57ba7f0c4a553fc2bd8b6321df236870ec6fd64a2a473a8a13d4f733214e/aiohttp-3.13.5-cp314-cp314t-win32.whl", hash = "sha256:9a0f4474b6ea6818b41f82172d799e4b3d29e22c2c520ce4357856fced9af2f8", size = 471819, upload-time = "2026-03-31T22:00:10.277Z" },
+ { url = "https://files.pythonhosted.org/packages/62/29/2f8418269e46454a26171bfdd6a055d74febf32234e474930f2f60a17145/aiohttp-3.13.5-cp314-cp314t-win_amd64.whl", hash = "sha256:18a2f6c1182c51baa1d28d68fea51513cb2a76612f038853c0ad3c145423d3d9", size = 505441, upload-time = "2026-03-31T22:00:12.791Z" },
+]
+
+[[package]]
+name = "aiosignal"
+version = "1.4.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "frozenlist" },
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" },
+]
+
+[[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.13.0"
+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/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" },
+]
+
+[[package]]
+name = "attrs"
+version = "26.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" },
+]
+
+[[package]]
+name = "backend"
+version = "0.1.0"
+source = { editable = "backend" }
+dependencies = [
+ { name = "agent" },
+ { name = "certifi" },
+ { name = "fastapi" },
+ { name = "gradium" },
+ { name = "httpx" },
+ { name = "mlx-whisper" },
+ { name = "pydantic" },
+ { name = "python-dotenv" },
+ { name = "python-multipart" },
+ { name = "uvicorn" },
+]
+
+[package.metadata]
+requires-dist = [
+ { name = "agent", editable = "agent" },
+ { name = "certifi" },
+ { name = "fastapi" },
+ { name = "gradium" },
+ { name = "httpx" },
+ { name = "mlx-whisper" },
+ { name = "pydantic" },
+ { name = "python-dotenv" },
+ { name = "python-multipart" },
+ { name = "uvicorn" },
+]
+
+[[package]]
+name = "certifi"
+version = "2026.2.25"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" },
+]
+
+[[package]]
+name = "charset-normalizer"
+version = "3.4.7"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/c2/d7/b5b7020a0565c2e9fa8c09f4b5fa6232feb326b8c20081ccded47ea368fd/charset_normalizer-3.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7641bb8895e77f921102f72833904dcd9901df5d6d72a2ab8f31d04b7e51e4e7", size = 309705, upload-time = "2026-04-02T09:26:02.191Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/53/58c29116c340e5456724ecd2fff4196d236b98f3da97b404bc5e51ac3493/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:202389074300232baeb53ae2569a60901f7efadd4245cf3a3bf0617d60b439d7", size = 206419, upload-time = "2026-04-02T09:26:03.583Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/02/e8146dc6591a37a00e5144c63f29fb7c97a734ea8a111190783c0e60ab63/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:30b8d1d8c52a48c2c5690e152c169b673487a2a58de1ec7393196753063fcd5e", size = 227901, upload-time = "2026-04-02T09:26:04.738Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/73/77486c4cd58f1267bf17db420e930c9afa1b3be3fe8c8b8ebbebc9624359/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:532bc9bf33a68613fd7d65e4b1c71a6a38d7d42604ecf239c77392e9b4e8998c", size = 222742, upload-time = "2026-04-02T09:26:06.36Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/fa/f74eb381a7d94ded44739e9d94de18dc5edc9c17fb8c11f0a6890696c0a9/charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fe249cb4651fd12605b7288b24751d8bfd46d35f12a20b1ba33dea122e690df", size = 214061, upload-time = "2026-04-02T09:26:08.347Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/92/42bd3cefcf7687253fb86694b45f37b733c97f59af3724f356fa92b8c344/charset_normalizer-3.4.7-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:65bcd23054beab4d166035cabbc868a09c1a49d1efe458fe8e4361215df40265", size = 199239, upload-time = "2026-04-02T09:26:09.823Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/3d/069e7184e2aa3b3cddc700e3dd267413dc259854adc3380421c805c6a17d/charset_normalizer-3.4.7-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:08e721811161356f97b4059a9ba7bafb23ea5ee2255402c42881c214e173c6b4", size = 210173, upload-time = "2026-04-02T09:26:10.953Z" },
+ { url = "https://files.pythonhosted.org/packages/62/51/9d56feb5f2e7074c46f93e0ebdbe61f0848ee246e2f0d89f8e20b89ebb8f/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e060d01aec0a910bdccb8be71faf34e7799ce36950f8294c8bf612cba65a2c9e", size = 209841, upload-time = "2026-04-02T09:26:12.142Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/59/893d8f99cc4c837dda1fe2f1139079703deb9f321aabcb032355de13b6c7/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:38c0109396c4cfc574d502df99742a45c72c08eff0a36158b6f04000043dbf38", size = 200304, upload-time = "2026-04-02T09:26:13.711Z" },
+ { url = "https://files.pythonhosted.org/packages/7d/1d/ee6f3be3464247578d1ed5c46de545ccc3d3ff933695395c402c21fa6b77/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1c2a768fdd44ee4a9339a9b0b130049139b8ce3c01d2ce09f67f5a68048d477c", size = 229455, upload-time = "2026-04-02T09:26:14.941Z" },
+ { url = "https://files.pythonhosted.org/packages/54/bb/8fb0a946296ea96a488928bdce8ef99023998c48e4713af533e9bb98ef07/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:1a87ca9d5df6fe460483d9a5bbf2b18f620cbed41b432e2bddb686228282d10b", size = 210036, upload-time = "2026-04-02T09:26:16.478Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/bc/015b2387f913749f82afd4fcba07846d05b6d784dd16123cb66860e0237d/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d635aab80466bc95771bb78d5370e74d36d1fe31467b6b29b8b57b2a3cd7d22c", size = 224739, upload-time = "2026-04-02T09:26:17.751Z" },
+ { url = "https://files.pythonhosted.org/packages/17/ab/63133691f56baae417493cba6b7c641571a2130eb7bceba6773367ab9ec5/charset_normalizer-3.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ae196f021b5e7c78e918242d217db021ed2a6ace2bc6ae94c0fc596221c7f58d", size = 216277, upload-time = "2026-04-02T09:26:18.981Z" },
+ { url = "https://files.pythonhosted.org/packages/06/6d/3be70e827977f20db77c12a97e6a9f973631a45b8d186c084527e53e77a4/charset_normalizer-3.4.7-cp311-cp311-win32.whl", hash = "sha256:adb2597b428735679446b46c8badf467b4ca5f5056aae4d51a19f9570301b1ad", size = 147819, upload-time = "2026-04-02T09:26:20.295Z" },
+ { url = "https://files.pythonhosted.org/packages/20/d9/5f67790f06b735d7c7637171bbfd89882ad67201891b7275e51116ed8207/charset_normalizer-3.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:8e385e4267ab76874ae30db04c627faaaf0b509e1ccc11a95b3fc3e83f855c00", size = 159281, upload-time = "2026-04-02T09:26:21.74Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/83/6413f36c5a34afead88ce6f66684d943d91f233d76dd083798f9602b75ae/charset_normalizer-3.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:d4a48e5b3c2a489fae013b7589308a40146ee081f6f509e047e0e096084ceca1", size = 147843, upload-time = "2026-04-02T09:26:22.901Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328, upload-time = "2026-04-02T09:26:24.331Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061, upload-time = "2026-04-02T09:26:25.568Z" },
+ { url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031, upload-time = "2026-04-02T09:26:26.865Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239, upload-time = "2026-04-02T09:26:28.044Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589, upload-time = "2026-04-02T09:26:29.239Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733, upload-time = "2026-04-02T09:26:30.5Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652, upload-time = "2026-04-02T09:26:31.709Z" },
+ { url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229, upload-time = "2026-04-02T09:26:33.282Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552, upload-time = "2026-04-02T09:26:34.845Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806, upload-time = "2026-04-02T09:26:36.152Z" },
+ { url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316, upload-time = "2026-04-02T09:26:37.672Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274, upload-time = "2026-04-02T09:26:38.93Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468, upload-time = "2026-04-02T09:26:40.17Z" },
+ { url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460, upload-time = "2026-04-02T09:26:41.416Z" },
+ { url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330, upload-time = "2026-04-02T09:26:42.554Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828, upload-time = "2026-04-02T09:26:44.075Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627, upload-time = "2026-04-02T09:26:45.198Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008, upload-time = "2026-04-02T09:26:46.824Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303, upload-time = "2026-04-02T09:26:48.397Z" },
+ { url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282, upload-time = "2026-04-02T09:26:49.684Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595, upload-time = "2026-04-02T09:26:50.915Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986, upload-time = "2026-04-02T09:26:52.197Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711, upload-time = "2026-04-02T09:26:53.49Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036, upload-time = "2026-04-02T09:26:54.975Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998, upload-time = "2026-04-02T09:26:56.303Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056, upload-time = "2026-04-02T09:26:57.554Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537, upload-time = "2026-04-02T09:26:58.843Z" },
+ { url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176, upload-time = "2026-04-02T09:27:00.437Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723, upload-time = "2026-04-02T09:27:02.021Z" },
+ { url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085, upload-time = "2026-04-02T09:27:03.192Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819, upload-time = "2026-04-02T09:27:04.454Z" },
+ { url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915, upload-time = "2026-04-02T09:27:05.971Z" },
+ { url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" },
+ { url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" },
+ { url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" },
+ { url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" },
+ { url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" },
+ { url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" },
+ { url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" },
+ { url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" },
+ { url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" },
+ { url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" },
+ { url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" },
+ { url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" },
+ { url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" },
+ { url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" },
+ { url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" },
+ { url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" },
+]
+
+[[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 = "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 = "cuda-bindings"
+version = "13.2.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cuda-pathfinder" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e0/a9/3a8241c6e19483ac1f1dcf5c10238205dcb8a6e9d0d4d4709240dff28ff4/cuda_bindings-13.2.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:721104c603f059780d287969be3d194a18d0cc3b713ed9049065a1107706759d", size = 5730273, upload-time = "2026-03-11T00:12:37.18Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/94/2748597f47bb1600cd466b20cab4159f1530a3a33fe7f70fee199b3abb9e/cuda_bindings-13.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1eba9504ac70667dd48313395fe05157518fd6371b532790e96fbb31bbb5a5e1", size = 6313924, upload-time = "2026-03-11T00:12:39.462Z" },
+ { url = "https://files.pythonhosted.org/packages/52/c8/b2589d68acf7e3d63e2be330b84bc25712e97ed799affbca7edd7eae25d6/cuda_bindings-13.2.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e865447abfb83d6a98ad5130ed3c70b1fc295ae3eeee39fd07b4ddb0671b6788", size = 5722404, upload-time = "2026-03-11T00:12:44.041Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/92/f899f7bbb5617bb65ec52a6eac1e9a1447a86b916c4194f8a5001b8cde0c/cuda_bindings-13.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:46d8776a55d6d5da9dd6e9858fba2efcda2abe6743871dee47dd06eb8cb6d955", size = 6320619, upload-time = "2026-03-11T00:12:45.939Z" },
+ { url = "https://files.pythonhosted.org/packages/df/93/eef988860a3ca985f82c4f3174fc0cdd94e07331ba9a92e8e064c260337f/cuda_bindings-13.2.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6629ca2df6f795b784752409bcaedbd22a7a651b74b56a165ebc0c9dcbd504d0", size = 5614610, upload-time = "2026-03-11T00:12:50.337Z" },
+ { url = "https://files.pythonhosted.org/packages/18/23/6db3aba46864aee357ab2415135b3fe3da7e9f1fa0221fa2a86a5968099c/cuda_bindings-13.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7dca0da053d3b4cc4869eff49c61c03f3c5dbaa0bcd712317a358d5b8f3f385d", size = 6149914, upload-time = "2026-03-11T00:12:52.374Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/87/87a014f045b77c6de5c8527b0757fe644417b184e5367db977236a141602/cuda_bindings-13.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6464b30f46692d6c7f65d4a0e0450d81dd29de3afc1bb515653973d01c2cd6e", size = 5685673, upload-time = "2026-03-11T00:12:56.371Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/5e/c0fe77a73aaefd3fff25ffaccaac69c5a63eafdf8b9a4c476626ef0ac703/cuda_bindings-13.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4af9f3e1be603fa12d5ad6cfca7844c9d230befa9792b5abdf7dd79979c3626", size = 6191386, upload-time = "2026-03-11T00:12:58.965Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/58/ed2c3b39c8dd5f96aa7a4abef0d47a73932c7a988e30f5fa428f00ed0da1/cuda_bindings-13.2.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df850a1ff8ce1b3385257b08e47b70e959932f5f432d0a4e46a355962b4e4771", size = 5507469, upload-time = "2026-03-11T00:13:04.063Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/01/0c941b112ceeb21439b05895eace78ca1aa2eaaf695c8521a068fd9b4c00/cuda_bindings-13.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8a16384c6494e5485f39314b0b4afb04bee48d49edb16d5d8593fd35bbd231b", size = 6059693, upload-time = "2026-03-11T00:13:06.003Z" },
+]
+
+[[package]]
+name = "cuda-pathfinder"
+version = "1.5.0"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/93/66/0c02bd330e7d976f83fa68583d6198d76f23581bcbb5c0e98a6148f326e5/cuda_pathfinder-1.5.0-py3-none-any.whl", hash = "sha256:498f90a9e9de36044a7924742aecce11c50c49f735f1bc53e05aa46de9ea4110", size = 49739, upload-time = "2026-03-24T21:14:30.869Z" },
+]
+
+[[package]]
+name = "cuda-toolkit"
+version = "13.0.2"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/57/b2/453099f5f3b698d7d0eab38916aac44c7f76229f451709e2eb9db6615dcd/cuda_toolkit-13.0.2-py2.py3-none-any.whl", hash = "sha256:b198824cf2f54003f50d64ada3a0f184b42ca0846c1c94192fa269ecd97a66eb", size = 2364, upload-time = "2025-12-19T23:24:07.328Z" },
+]
+
+[package.optional-dependencies]
+cublas = [
+ { name = "nvidia-cublas", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+cudart = [
+ { name = "nvidia-cuda-runtime", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+cufft = [
+ { name = "nvidia-cufft", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+cufile = [
+ { name = "nvidia-cufile", marker = "sys_platform == 'linux'" },
+]
+cupti = [
+ { name = "nvidia-cuda-cupti", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+curand = [
+ { name = "nvidia-curand", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+cusolver = [
+ { name = "nvidia-cusolver", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+cusparse = [
+ { name = "nvidia-cusparse", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+nvjitlink = [
+ { name = "nvidia-nvjitlink", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+nvrtc = [
+ { name = "nvidia-cuda-nvrtc", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+nvtx = [
+ { name = "nvidia-nvtx", marker = "sys_platform == 'linux' or sys_platform == 'win32'" },
+]
+
+[[package]]
+name = "fastapi"
+version = "0.135.2"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "annotated-doc" },
+ { name = "pydantic" },
+ { name = "starlette" },
+ { name = "typing-extensions" },
+ { name = "typing-inspection" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/c4/73/5903c4b13beae98618d64eb9870c3fac4f605523dd0312ca5c80dadbd5b9/fastapi-0.135.2.tar.gz", hash = "sha256:88a832095359755527b7f63bb4c6bc9edb8329a026189eed83d6c1afcf419d56", size = 395833, upload-time = "2026-03-23T14:12:41.697Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/8f/ea/18f6d0457f9efb2fc6fa594857f92810cadb03024975726db6546b3d6fcf/fastapi-0.135.2-py3-none-any.whl", hash = "sha256:0af0447d541867e8db2a6a25c23a8c4bd80e2394ac5529bd87501bbb9e240ca5", size = 117407, upload-time = "2026-03-23T14:12:43.284Z" },
+]
+
+[[package]]
+name = "filelock"
+version = "3.25.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/94/b8/00651a0f559862f3bb7d6f7477b192afe3f583cc5e26403b44e59a55ab34/filelock-3.25.2.tar.gz", hash = "sha256:b64ece2b38f4ca29dd3e810287aa8c48182bbecd1ae6e9ae126c9b35f1382694", size = 40480, upload-time = "2026-03-11T20:45:38.487Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a4/a5/842ae8f0c08b61d6484b52f99a03510a3a72d23141942d216ebe81fefbce/filelock-3.25.2-py3-none-any.whl", hash = "sha256:ca8afb0da15f229774c9ad1b455ed96e85a81373065fb10446672f64444ddf70", size = 26759, upload-time = "2026-03-11T20:45:37.437Z" },
+]
+
+[[package]]
+name = "frozenlist"
+version = "1.8.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" },
+ { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" },
+ { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" },
+ { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" },
+ { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" },
+ { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" },
+ { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" },
+ { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" },
+ { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" },
+ { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" },
+ { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" },
+ { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" },
+ { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" },
+ { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" },
+ { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" },
+ { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" },
+ { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" },
+ { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" },
+ { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" },
+ { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" },
+ { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" },
+ { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" },
+ { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" },
+ { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" },
+ { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" },
+ { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" },
+ { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" },
+ { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" },
+ { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" },
+ { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" },
+ { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" },
+]
+
+[[package]]
+name = "fsspec"
+version = "2026.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/e1/cf/b50ddf667c15276a9ab15a70ef5f257564de271957933ffea49d2cdbcdfb/fsspec-2026.3.0.tar.gz", hash = "sha256:1ee6a0e28677557f8c2f994e3eea77db6392b4de9cd1f5d7a9e87a0ae9d01b41", size = 313547, upload-time = "2026-03-27T19:11:14.892Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d5/1f/5f4a3cd9e4440e9d9bc78ad0a91a1c8d46b4d429d5239ebe6793c9fe5c41/fsspec-2026.3.0-py3-none-any.whl", hash = "sha256:d2ceafaad1b3457968ed14efa28798162f1638dbb5d2a6868a2db002a5ee39a4", size = 202595, upload-time = "2026-03-27T19:11:13.595Z" },
+]
+
+[[package]]
+name = "gradium"
+version = "0.5.11"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "aiohttp" },
+ { name = "numpy" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/84/cb/2d94d3f3c4e5ca6c5ce26a776ae405833cdcb43a595d59b7090d7938db07/gradium-0.5.11.tar.gz", hash = "sha256:506537a85d6cab3a71145ac09e1e25fc3715b4c269115a5cce8eda341ec8ac41", size = 2506883, upload-time = "2026-03-06T11:26:45.038Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a7/43/8766af7835393deae98539f565c27a3b442e538077a9f2293b7dfb016452/gradium-0.5.11-py3-none-any.whl", hash = "sha256:010482381fcb773dcfbf3ade16beb90d388580c8e537d72e981d51c0ce656067", size = 22792, upload-time = "2026-03-06T11:26:43.468Z" },
+]
+
+[[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 = "hf-xet"
+version = "1.4.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477, upload-time = "2026-03-31T22:40:07.874Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/72/43/724d307b34e353da0abd476e02f72f735cdd2bc86082dee1b32ea0bfee1d/hf_xet-1.4.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:7551659ba4f1e1074e9623996f28c3873682530aee0a846b7f2f066239228144", size = 3800935, upload-time = "2026-03-31T22:39:49.618Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/d2/8bee5996b699262edb87dbb54118d287c0e1b2fc78af7cdc41857ba5e3c4/hf_xet-1.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bee693ada985e7045997f05f081d0e12c4c08bd7626dc397f8a7c487e6c04f7f", size = 3558942, upload-time = "2026-03-31T22:39:47.938Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/a1/e993d09cbe251196fb60812b09a58901c468127b7259d2bf0f68bf6088eb/hf_xet-1.4.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:21644b404bb0100fe3857892f752c4d09642586fd988e61501c95bbf44b393a3", size = 4207657, upload-time = "2026-03-31T22:39:39.69Z" },
+ { url = "https://files.pythonhosted.org/packages/64/44/9eb6d21e5c34c63e5e399803a6932fa983cabdf47c0ecbcfe7ea97684b8c/hf_xet-1.4.3-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:987f09cfe418237812896a6736b81b1af02a3a6dcb4b4944425c4c4fca7a7cf8", size = 3986765, upload-time = "2026-03-31T22:39:37.936Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/7b/8ad6f16fdb82f5f7284a34b5ec48645bd575bdcd2f6f0d1644775909c486/hf_xet-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:60cf7fc43a99da0a853345cf86d23738c03983ee5249613a6305d3e57a5dca74", size = 4188162, upload-time = "2026-03-31T22:39:58.382Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/c4/39d6e136cbeea9ca5a23aad4b33024319222adbdc059ebcda5fc7d9d5ff4/hf_xet-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2815a49a7a59f3e2edf0cf113ae88e8cb2ca2a221bf353fb60c609584f4884d4", size = 4424525, upload-time = "2026-03-31T22:40:00.225Z" },
+ { url = "https://files.pythonhosted.org/packages/46/f2/adc32dae6bdbc367853118b9878139ac869419a4ae7ba07185dc31251b76/hf_xet-1.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:42ee323265f1e6a81b0e11094564fb7f7e0ec75b5105ffd91ae63f403a11931b", size = 3671610, upload-time = "2026-03-31T22:40:10.42Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/19/25d897dcc3f81953e0c2cde9ec186c7a0fee413eb0c9a7a9130d87d94d3a/hf_xet-1.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:27c976ba60079fb8217f485b9c5c7fcd21c90b0367753805f87cb9f3cdc4418a", size = 3528529, upload-time = "2026-03-31T22:40:09.106Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/36/3e8f85ca9fe09b8de2b2e10c63b3b3353d7dda88a0b3d426dffbe7b8313b/hf_xet-1.4.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5251d5ece3a81815bae9abab41cf7ddb7bcb8f56411bce0827f4a3071c92fdc6", size = 3801019, upload-time = "2026-03-31T22:39:56.651Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/9c/defb6cb1de28bccb7bd8d95f6e60f72a3d3fa4cb3d0329c26fb9a488bfe7/hf_xet-1.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1feb0f3abeacee143367c326a128a2e2b60868ec12a36c225afb1d6c5a05e6d2", size = 3558746, upload-time = "2026-03-31T22:39:54.766Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/bd/8d001191893178ff8e826e46ad5299446e62b93cd164e17b0ffea08832ec/hf_xet-1.4.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b301fc150290ca90b4fccd079829b84bb4786747584ae08b94b4577d82fb791", size = 4207692, upload-time = "2026-03-31T22:39:46.246Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/48/6790b402803250e9936435613d3a78b9aaeee7973439f0918848dde58309/hf_xet-1.4.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:d972fbe95ddc0d3c0fc49b31a8a69f47db35c1e3699bf316421705741aab6653", size = 3986281, upload-time = "2026-03-31T22:39:44.648Z" },
+ { url = "https://files.pythonhosted.org/packages/51/56/ea62552fe53db652a9099eda600b032d75554d0e86c12a73824bfedef88b/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c5b48db1ee344a805a1b9bd2cda9b6b65fe77ed3787bd6e87ad5521141d317cd", size = 4187414, upload-time = "2026-03-31T22:40:04.951Z" },
+ { url = "https://files.pythonhosted.org/packages/7d/f5/bc1456d4638061bea997e6d2db60a1a613d7b200e0755965ec312dc1ef79/hf_xet-1.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:22bdc1f5fb8b15bf2831440b91d1c9bbceeb7e10c81a12e8d75889996a5c9da8", size = 4424368, upload-time = "2026-03-31T22:40:06.347Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/76/ab597bae87e1f06d18d3ecb8ed7f0d3c9a37037fc32ce76233d369273c64/hf_xet-1.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0392c79b7cf48418cd61478c1a925246cf10639f4cd9d94368d8ca1e8df9ea07", size = 3672280, upload-time = "2026-03-31T22:40:16.401Z" },
+ { url = "https://files.pythonhosted.org/packages/62/05/2e462d34e23a09a74d73785dbed71cc5dbad82a72eee2ad60a72a554155d/hf_xet-1.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:681c92a07796325778a79d76c67011764ecc9042a8c3579332b61b63ae512075", size = 3528945, upload-time = "2026-03-31T22:40:14.995Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/9f/9c23e4a447b8f83120798f9279d0297a4d1360bdbf59ef49ebec78fe2545/hf_xet-1.4.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025", size = 3805048, upload-time = "2026-03-31T22:39:53.105Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178, upload-time = "2026-03-31T22:39:51.295Z" },
+ { url = "https://files.pythonhosted.org/packages/df/9a/a24b26dc8a65f0ecc0fe5be981a19e61e7ca963b85e062c083f3a9100529/hf_xet-1.4.3-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08", size = 4212320, upload-time = "2026-03-31T22:39:42.922Z" },
+ { url = "https://files.pythonhosted.org/packages/53/60/46d493db155d2ee2801b71fb1b0fd67696359047fdd8caee2c914cc50c79/hf_xet-1.4.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f", size = 3991546, upload-time = "2026-03-31T22:39:41.335Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/f5/067363e1c96c6b17256910830d1b54099d06287e10f4ec6ec4e7e08371fc/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac", size = 4193200, upload-time = "2026-03-31T22:40:01.936Z" },
+ { url = "https://files.pythonhosted.org/packages/42/4b/53951592882d9c23080c7644542fda34a3813104e9e11fa1a7d82d419cb8/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba", size = 4429392, upload-time = "2026-03-31T22:40:03.492Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/21/75a6c175b4e79662ad8e62f46a40ce341d8d6b206b06b4320d07d55b188c/hf_xet-1.4.3-cp37-abi3-win_amd64.whl", hash = "sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021", size = 3677359, upload-time = "2026-03-31T22:40:13.619Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/7c/44314ecd0e89f8b2b51c9d9e5e7a60a9c1c82024ac471d415860557d3cd8/hf_xet-1.4.3-cp37-abi3-win_arm64.whl", hash = "sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47", size = 3533664, upload-time = "2026-03-31T22:40:12.152Z" },
+]
+
+[[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 = "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 = "huggingface-hub"
+version = "1.9.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "filelock" },
+ { name = "fsspec" },
+ { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" },
+ { name = "httpx" },
+ { name = "packaging" },
+ { name = "pyyaml" },
+ { name = "tqdm" },
+ { name = "typer" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/88/bb/62c7aa86f63a05e2f9b96642fdef9b94526a23979820b09f5455deff4983/huggingface_hub-1.9.0.tar.gz", hash = "sha256:0ea5be7a56135c91797cae6ad726e38eaeb6eb4b77cefff5c9d38ba0ecf874f7", size = 750326, upload-time = "2026-04-03T08:35:55.888Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/73/37/0d15d16150e1829f3e90962c99f28257f6de9e526a680b4c6f5acdb54fd2/huggingface_hub-1.9.0-py3-none-any.whl", hash = "sha256:2999328c058d39fd19ab748dd09bd4da2fbaa4f4c1ddea823eab103051e14a1f", size = 637355, upload-time = "2026-04-03T08:35:53.897Z" },
+]
+
+[[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 = "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 = "llvmlite"
+version = "0.47.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz", hash = "sha256:62031ce968ec74e95092184d4b0e857e444f8fdff0b8f9213707699570c33ccc", size = 193614, upload-time = "2026-03-31T18:29:53.497Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/34/0b/b9d1911cfefa61399821dfb37f486d83e0f42630a8d12f7194270c417002/llvmlite-0.47.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74090f0dcfd6f24ebbef3f21f11e38111c4d7e6919b54c4416e1e357c3446b07", size = 37232770, upload-time = "2026-03-31T18:28:26.765Z" },
+ { url = "https://files.pythonhosted.org/packages/46/27/5799b020e4cdfb25a7c951c06a96397c135efcdc21b78d853bbd9c814c7d/llvmlite-0.47.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ca14f02e29134e837982497959a8e2193d6035235de1cb41a9cb2bd6da4eedbb", size = 56275177, upload-time = "2026-03-31T18:28:31.01Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/51/48a53fedf01cb1f3f43ef200be17ebf83c8d9a04018d3783c1a226c342c2/llvmlite-0.47.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:12a69d4bb05f402f30477e21eeabe81911e7c251cecb192bed82cd83c9db10d8", size = 55128631, upload-time = "2026-03-31T18:28:36.046Z" },
+ { url = "https://files.pythonhosted.org/packages/a2/50/59227d06bdc96e23322713c381af4e77420949d8cd8a042c79e0043096cc/llvmlite-0.47.0-cp311-cp311-win_amd64.whl", hash = "sha256:c37d6eb7aaabfa83ab9c2ff5b5cdb95a5e6830403937b2c588b7490724e05327", size = 38138400, upload-time = "2026-03-31T18:28:40.076Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/48/4b7fe0e34c169fa2f12532916133e0b219d2823b540733651b34fdac509a/llvmlite-0.47.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:306a265f408c259067257a732c8e159284334018b4083a9e35f67d19792b164f", size = 37232769, upload-time = "2026-03-31T18:28:43.735Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/4b/e3f2cd17822cf772a4a51a0a8080b0032e6d37b2dbe8cfb724eac4e31c52/llvmlite-0.47.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5853bf26160857c0c2573415ff4efe01c4c651e59e2c55c2a088740acfee51cd", size = 56275178, upload-time = "2026-03-31T18:28:48.342Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/55/a3b4a543185305a9bdf3d9759d53646ed96e55e7dfd43f53e7a421b8fbae/llvmlite-0.47.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:003bcf7fa579e14db59c1a1e113f93ab8a06b56a4be31c7f08264d1d4072d077", size = 55128632, upload-time = "2026-03-31T18:28:52.901Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl", hash = "sha256:f3079f25bdc24cd9d27c4b2b5e68f5f60c4fdb7e8ad5ee2b9b006007558f9df7", size = 38138692, upload-time = "2026-03-31T18:28:57.147Z" },
+ { url = "https://files.pythonhosted.org/packages/77/6f/4615353e016799f80fa52ccb270a843c413b22361fadda2589b2922fb9b0/llvmlite-0.47.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a3c6a735d4e1041808434f9d440faa3d78d9b4af2ee64d05a66f351883b6ceec", size = 37232771, upload-time = "2026-03-31T18:29:01.324Z" },
+ { url = "https://files.pythonhosted.org/packages/31/b8/69f5565f1a280d032525878a86511eebed0645818492feeb169dfb20ae8e/llvmlite-0.47.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2699a74321189e812d476a43d6d7f652f51811e7b5aad9d9bba842a1c7927acb", size = 56275178, upload-time = "2026-03-31T18:29:05.748Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/da/b32cafcb926fb0ce2aa25553bf32cb8764af31438f40e2481df08884c947/llvmlite-0.47.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c6951e2b29930227963e53ee152441f0e14be92e9d4231852102d986c761e40", size = 55128632, upload-time = "2026-03-31T18:29:11.235Z" },
+ { url = "https://files.pythonhosted.org/packages/46/9f/4898b44e4042c60fafcb1162dfb7014f6f15b1ec19bf29cfea6bf26df90d/llvmlite-0.47.0-cp313-cp313-win_amd64.whl", hash = "sha256:c2e9adf8698d813a9a5efb2d4370caf344dbc1e145019851fee6a6f319ba760e", size = 38138695, upload-time = "2026-03-31T18:29:15.43Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/d4/33c8af00f0bf6f552d74f3a054f648af2c5bc6bece97972f3bfadce4f5ec/llvmlite-0.47.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:de966c626c35c9dff5ae7bf12db25637738d0df83fc370cf793bc94d43d92d14", size = 37232773, upload-time = "2026-03-31T18:29:19.453Z" },
+ { url = "https://files.pythonhosted.org/packages/64/1d/a760e993e0c0ba6db38d46b9f48f6c7dceb8ac838824997fb9e25f97bc04/llvmlite-0.47.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ddbccff2aeaff8670368340a158abefc032fe9b3ccf7d9c496639263d00151aa", size = 56275176, upload-time = "2026-03-31T18:29:24.149Z" },
+ { url = "https://files.pythonhosted.org/packages/84/3b/e679bc3b29127182a7f4aa2d2e9e5bea42adb93fb840484147d59c236299/llvmlite-0.47.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4a7b778a2e144fc64468fb9bf509ac1226c9813a00b4d7afea5d988c4e22fca", size = 55128631, upload-time = "2026-03-31T18:29:29.536Z" },
+ { url = "https://files.pythonhosted.org/packages/be/f7/19e2a09c62809c9e63bbd14ce71fb92c6ff7b7b3045741bb00c781efc3c9/llvmlite-0.47.0-cp314-cp314-win_amd64.whl", hash = "sha256:694e3c2cdc472ed2bd8bd4555ca002eec4310961dd58ef791d508f57b5cc4c94", size = 39153826, upload-time = "2026-03-31T18:29:33.681Z" },
+ { url = "https://files.pythonhosted.org/packages/40/a1/581a8c707b5e80efdbbe1dd94527404d33fe50bceb71f39d5a7e11bd57b7/llvmlite-0.47.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:92ec8a169a20b473c1c54d4695e371bde36489fc1efa3688e11e99beba0abf9c", size = 37232772, upload-time = "2026-03-31T18:29:37.952Z" },
+ { url = "https://files.pythonhosted.org/packages/11/03/16090dd6f74ba2b8b922276047f15962fbeea0a75d5601607edb301ba945/llvmlite-0.47.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fa1cbd800edd3b20bc141521f7fd45a6185a5b84109aa6855134e81397ffe72b", size = 56275178, upload-time = "2026-03-31T18:29:42.58Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/cb/0abf1dd4c5286a95ffe0c1d8c67aec06b515894a0dd2ac97f5e27b82ab0b/llvmlite-0.47.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6725179b89f03b17dabe236ff3422cb8291b4c1bf40af152826dfd34e350ae8", size = 55128632, upload-time = "2026-03-31T18:29:46.939Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/79/d3bbab197e86e0ff4f9c07122895b66a3e0d024247fcff7f12c473cb36d9/llvmlite-0.47.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6842cf6f707ec4be3d985a385ad03f72b2d724439e118fcbe99b2929964f0453", size = 39153839, upload-time = "2026-03-31T18:29:51.004Z" },
+]
+
+[[package]]
+name = "markdown-it-py"
+version = "4.0.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "mdurl" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" },
+]
+
+[[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/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" },
+ { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" },
+ { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" },
+ { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" },
+ { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" },
+ { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" },
+ { 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 = "mdurl"
+version = "0.1.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
+]
+
+[[package]]
+name = "mlx"
+version = "0.31.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "mlx-metal", marker = "sys_platform == 'darwin'" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/75/32/25dc2eae1d6f867224ef2bca2c644e3e913fe8067991f8394c090b720e3e/mlx-0.31.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:8863835fb36c7c4f65008b1426ddb9ff7931a13c975e0ef58a40002ae8048922", size = 574311, upload-time = "2026-03-12T02:16:02.651Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/bf/c5aa1d1154f5a216139c8162cd3e6568b7eb427390d655f7f5ae3a1a61e7/mlx-0.31.1-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:0de504c1f1fe73b32fc3cf457b8eac30d1f7ce22440ef075c1970f96712e6fff", size = 574312, upload-time = "2026-03-12T02:16:04.231Z" },
+ { url = "https://files.pythonhosted.org/packages/3a/88/ef57747552c9e9da0c28465d9266c05a0009b698d90fb0bc63eb81840b8d/mlx-0.31.1-cp311-cp311-macosx_26_0_arm64.whl", hash = "sha256:10715b895e1f3e984c2c54257b7db956ff8af1fa93255412794a3724fe2dd3b1", size = 574385, upload-time = "2026-03-12T02:16:05.528Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/51/dbea4bbe7a2e4cd05226965b34198d49459cfaef8b9b37b72f006a9811ab/mlx-0.31.1-cp311-cp311-manylinux_2_35_aarch64.whl", hash = "sha256:d065625ab3101adcd7f5824297243fe40a0615099a06f5597ab67284483aa2f8", size = 641347, upload-time = "2026-03-12T02:16:07.013Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/86/3db98e8805637fb56f078311d622e9500f5c9088f6d79a6e304ec8235b47/mlx-0.31.1-cp311-cp311-manylinux_2_35_x86_64.whl", hash = "sha256:b2cf8502d9d64dc6851034fcd4a656cbb26be20c36f190f2971f4ac0caed89cb", size = 674769, upload-time = "2026-03-12T02:16:08.51Z" },
+ { url = "https://files.pythonhosted.org/packages/38/29/71fe1f68756f515856e6930973c23245810d4aa3cd22fddd719d86a709dc/mlx-0.31.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:8a63b31a398c9519f2bb0c81cf3865d9baca4ff573ffc31ead465d18286184e8", size = 574308, upload-time = "2026-03-12T02:16:10.256Z" },
+ { url = "https://files.pythonhosted.org/packages/21/be/70654a2cee0d71fd10bd237a50a79d06ae51679a194db6a3b16c0c84e6a5/mlx-0.31.1-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:a7a9347df4dcc41f0d16ff70b65650820af4879f686534b233b16826a22afa00", size = 574309, upload-time = "2026-03-12T02:16:11.577Z" },
+ { url = "https://files.pythonhosted.org/packages/ad/69/c7bc7b04f76b0cbd678f328011d1634bd0bcfc2da45aba06e084cb031127/mlx-0.31.1-cp312-cp312-macosx_26_0_arm64.whl", hash = "sha256:6cdb797ea31787d1ce9e5be77991c4bd5cbf129ab15f7253b78e09737f535fce", size = 574289, upload-time = "2026-03-12T02:16:13.146Z" },
+ { url = "https://files.pythonhosted.org/packages/55/f7/dcc129228faab4d406041d91413c5999250ab79da6fe5417ac84f1616ff1/mlx-0.31.1-cp312-cp312-manylinux_2_35_aarch64.whl", hash = "sha256:1ed1991c8e39f841d5756c0c543beb819763a2f80fba3f4b150bc6cad4d973de", size = 626439, upload-time = "2026-03-12T02:16:14.741Z" },
+ { url = "https://files.pythonhosted.org/packages/90/1d/8b32e46ea98ab5c1c15cf1b37ac97af651977f84e72e1800412a700c51d9/mlx-0.31.1-cp312-cp312-manylinux_2_35_x86_64.whl", hash = "sha256:195c5cb27328380287c0ffe9ef48f860ab75ec5d3dfce153d475dc2c99369708", size = 668679, upload-time = "2026-03-12T02:16:16.012Z" },
+ { url = "https://files.pythonhosted.org/packages/44/45/04465da443634b23fb11670bbd2f7538b1ed43ffc5e0de44a95b3c29e9c1/mlx-0.31.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9a6d3410fc951bd28508fed9c1ab5d9903f6f6bb101c3a5d63d4191d49a384a1", size = 574268, upload-time = "2026-03-12T02:16:17.27Z" },
+ { url = "https://files.pythonhosted.org/packages/85/7b/84956960356ff36e8c1bbed68fac96709e98e6a1adbc8e3d0ff71022d84e/mlx-0.31.1-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:20bd7ba19882603ac22711092d0e799f1ff7b5183c2c641d417dab4d2423d99e", size = 574265, upload-time = "2026-03-12T02:16:18.479Z" },
+ { url = "https://files.pythonhosted.org/packages/86/01/d6f0ef5b8c0b390af08246d1301e9717dfb076b3920012b53105a888ed8c/mlx-0.31.1-cp313-cp313-macosx_26_0_arm64.whl", hash = "sha256:4c4565d6f4f8ce295613ee342d313ee5ab0b0eab9a6272954450f8343f7876bc", size = 574172, upload-time = "2026-03-12T02:16:19.898Z" },
+ { url = "https://files.pythonhosted.org/packages/df/05/eb29e9eb0cff9c7dfd872e26663e6e9512629730740e1db629086c80ac5a/mlx-0.31.1-cp313-cp313-manylinux_2_35_aarch64.whl", hash = "sha256:9dc564a8b38b9aec279a1c7d34551068b1cc1f8e43b5ac044b56b2a9a4205195", size = 626558, upload-time = "2026-03-12T02:16:21.652Z" },
+ { url = "https://files.pythonhosted.org/packages/25/45/ecb746fbb6acb75d03760e41cc7bd21c2e2b544528b3033f7d70402334ac/mlx-0.31.1-cp313-cp313-manylinux_2_35_x86_64.whl", hash = "sha256:78f51ab929278366006ee7793dbb5c942b121542c793c33eb9b894a2ce8e27e1", size = 668625, upload-time = "2026-03-12T02:16:23.103Z" },
+ { url = "https://files.pythonhosted.org/packages/99/65/208f511acd5fb1ed0b08f047bd6229583845cc6f4b5aa6547a3219332dbb/mlx-0.31.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:bba9d471ba20e050676292b1089a355c8042d3fc9462e4c1738a9735d7d40cfa", size = 576300, upload-time = "2026-03-12T02:16:24.545Z" },
+ { url = "https://files.pythonhosted.org/packages/98/58/2d925cb3fa3cd28d279ed6f44508ab7fbbf7359b17359914aa3652a7d734/mlx-0.31.1-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:d90b0529b22553eb1353b113b7233aa391ca55e24b1ba69024c732fcc21c5c49", size = 576303, upload-time = "2026-03-12T02:16:26.283Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/17/abec0bd0f9347dae13e60b33325cb199312798842901953495e19f3bb3c8/mlx-0.31.1-cp314-cp314-macosx_26_0_arm64.whl", hash = "sha256:69bc88b41ddd61b44cd6a4d417790f9971ba3fdf58d824934cea95a95b9b4031", size = 576275, upload-time = "2026-03-12T02:16:27.57Z" },
+ { url = "https://files.pythonhosted.org/packages/a2/91/85c73f7cc3a661416d05315623458c719eda7de958b05f4e10ba40c52d07/mlx-0.31.1-cp314-cp314-manylinux_2_35_aarch64.whl", hash = "sha256:b973506fd49ba39df6dc4ff655b77bd35ea193cee878e71d6ee3d1a951d2b3a6", size = 628701, upload-time = "2026-03-12T02:16:28.949Z" },
+ { url = "https://files.pythonhosted.org/packages/7d/e9/d87638e00a44dcf346fe838caaf1e2dae96a88d5779edbd66ce27d4bbdcc/mlx-0.31.1-cp314-cp314-manylinux_2_35_x86_64.whl", hash = "sha256:3987282a1e63252bdd7c636138812c67316c3f7c7a7acad08e76c8843648a056", size = 668959, upload-time = "2026-03-12T02:16:30.41Z" },
+]
+
+[[package]]
+name = "mlx-metal"
+version = "0.31.1"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/39/66/2313497fdbc7fbadf8e026c09366e3f049f9114e65ca4edc23cdb8699186/mlx_metal-0.31.1-py3-none-macosx_14_0_arm64.whl", hash = "sha256:70741174131dbf7fdd479cb730e06e08c358eac3bf7905d9e884e7960cfdd5b8", size = 38624074, upload-time = "2026-03-12T02:15:48.036Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/34/4c3c6890ce6095b2ab2ba2f5f15c9a7ba17208d47f8cacb572885a2dc0eb/mlx_metal-0.31.1-py3-none-macosx_15_0_arm64.whl", hash = "sha256:6c56bd8cd27743e635f5a90a22535af7c31bd22b4b126d46b6da2da52d72e413", size = 38618950, upload-time = "2026-03-12T02:15:51.908Z" },
+ { url = "https://files.pythonhosted.org/packages/51/bc/987cb99e3aafb296aa11ce5133838a10eae8447edd53168d0804d4fb3a14/mlx_metal-0.31.1-py3-none-macosx_26_0_arm64.whl", hash = "sha256:e7324b7c56b519ae67c025d3ced07e5d35bc3a9f19d4c45fe4927f385148c59e", size = 49256543, upload-time = "2026-03-12T02:15:54.851Z" },
+]
+
+[[package]]
+name = "mlx-whisper"
+version = "0.4.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "huggingface-hub" },
+ { name = "mlx" },
+ { name = "more-itertools" },
+ { name = "numba" },
+ { name = "numpy" },
+ { name = "scipy" },
+ { name = "tiktoken" },
+ { name = "torch" },
+ { name = "tqdm" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/22/b7/a35232812a2ccfffcb7614ba96a91338551a660a0e9815cee668bf5743f0/mlx_whisper-0.4.3-py3-none-any.whl", hash = "sha256:6b82b6597a994643a3e5496c7bc229a672e5ca308458455bfe276e76ae024489", size = 890544, upload-time = "2025-08-29T14:56:13.815Z" },
+]
+
+[[package]]
+name = "more-itertools"
+version = "11.0.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/24/24/e0acc4bf54cba50c1d432c70a72a3df96db4a321b2c4c68432a60759044f/more_itertools-11.0.1.tar.gz", hash = "sha256:fefaf25b7ab08f0b45fa9f1892cae93b9fc0089ef034d39213bce15f1cc9e199", size = 144739, upload-time = "2026-04-02T16:17:45.061Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d8/f4/5e52c7319b8087acef603ed6e50dc325c02eaa999355414830468611f13c/more_itertools-11.0.1-py3-none-any.whl", hash = "sha256:eaf287826069452a8f61026c597eae2428b2d1ba2859083abbf240b46842ce6d", size = 72182, upload-time = "2026-04-02T16:17:43.724Z" },
+]
+
+[[package]]
+name = "mpmath"
+version = "1.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" },
+]
+
+[[package]]
+name = "multidict"
+version = "6.7.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" },
+ { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" },
+ { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" },
+ { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" },
+ { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" },
+ { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" },
+ { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" },
+ { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" },
+ { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" },
+ { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" },
+ { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" },
+ { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" },
+ { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" },
+ { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" },
+ { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" },
+ { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" },
+ { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" },
+ { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" },
+ { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" },
+ { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" },
+ { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" },
+ { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" },
+ { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" },
+ { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" },
+ { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" },
+ { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" },
+ { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" },
+ { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" },
+ { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" },
+ { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" },
+ { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" },
+ { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" },
+ { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" },
+ { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" },
+ { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" },
+ { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" },
+ { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" },
+ { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" },
+]
+
+[[package]]
+name = "networkx"
+version = "3.6.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" },
+]
+
+[[package]]
+name = "numba"
+version = "0.65.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "llvmlite" },
+ { name = "numpy" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/49/61/7299643b9c18d669e04be7c5bcb64d985070d07553274817b45b049e7bfe/numba-0.65.0.tar.gz", hash = "sha256:edad0d9f6682e93624c00125a471ae4df186175d71fd604c983c377cdc03e68b", size = 2764131, upload-time = "2026-04-01T03:52:01.946Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ba/ce/d67c499703eb5479ce02420e8ccd65c5753d87d2e16d563f152d71405346/numba-0.65.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:28e547d0b18024f19cbaf9de02fc5c145790213d9be8a2c95b43f93ec162b9e4", size = 2680228, upload-time = "2026-04-01T03:51:25.401Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/a7/11e2b24251d57cf41fc9ad83f378d890d61a890e3f8eb6338b39833f67a4/numba-0.65.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:032b0b8e879512cd424d79eed6d772a1399c6387ded184c2cf3cc22c08d750a6", size = 3744674, upload-time = "2026-04-01T03:51:27.311Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/0b/7c63eb742859a6243f42288441f65ac9dac96ea59f409e43b713aafbe867/numba-0.65.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af143d823624033a128b5950c0aaf9ffc2386dfe954eb757119cf0432335534c", size = 3450620, upload-time = "2026-04-01T03:51:29.092Z" },
+ { url = "https://files.pythonhosted.org/packages/53/ff/1371cbbe955be340a46093a10b61462437e0fadc7a63290473a0e584cb03/numba-0.65.0-cp311-cp311-win_amd64.whl", hash = "sha256:15d159578e59a39df246b83480f78d7794b0fca40153b5684d3849a99c48a0fb", size = 2747081, upload-time = "2026-04-01T03:51:30.785Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/2f/8bd31a1ea43c01ac215283d83aa5f8d5acbe7a36c85b82f1757bfe9ccb31/numba-0.65.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:b27ee4847e1bfb17e9604d100417ee7c1d10f15a6711c6213404b3da13a0b2aa", size = 2680705, upload-time = "2026-04-01T03:51:32.597Z" },
+ { url = "https://files.pythonhosted.org/packages/73/36/88406bd58600cc696417b8e5dd6a056478da808f3eaf48d18e2421e0c2d9/numba-0.65.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a52d92ffd297c10364bce60cd1fcb88f99284ab5df085f2c6bcd1cb33b529a6f", size = 3801411, upload-time = "2026-04-01T03:51:34.321Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/61/ce753a1d7646dd477e16d15e89473703faebb8995d2f71d7ad69a540b565/numba-0.65.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da8e371e328c06d0010c3d8b44b21858652831b85bcfba78cb22c042e22dbd8e", size = 3501622, upload-time = "2026-04-01T03:51:36.348Z" },
+ { url = "https://files.pythonhosted.org/packages/7d/86/db87a5393f1b1fabef53ac3ba4e6b938bb27e40a04ad7cc512098fcae032/numba-0.65.0-cp312-cp312-win_amd64.whl", hash = "sha256:59bb9f2bb9f1238dfd8e927ba50645c18ae769fef4f3d58ea0ea22a2683b91f5", size = 2749979, upload-time = "2026-04-01T03:51:37.88Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/f8/eee0f1ff456218db036bfc9023995ec1f85a9dc8f2422f1594f6a87829e0/numba-0.65.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:c6334094563a456a695c812e6846288376ca02327cf246cdcc83e1bb27862367", size = 2680679, upload-time = "2026-04-01T03:51:39.491Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/8f/3d116e4b8e92f6abace431afa4b2b944f4d65bdee83af886f5c4b263df95/numba-0.65.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b8a9008411615c69d083d1dcf477f75a5aa727b30beb16e139799e2be945cdfd", size = 3809537, upload-time = "2026-04-01T03:51:41.42Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/2c/6a3ca4128e253cb67affe06deb47688f51ce968f5111e2a06d010e6f1fa6/numba-0.65.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af96c0cba53664efcb361528b8c75e011a6556c859c7e08424c2715201c6cf7a", size = 3508615, upload-time = "2026-04-01T03:51:43.444Z" },
+ { url = "https://files.pythonhosted.org/packages/96/0e/267f9a36fb282c104a971d7eecb685b411c47dce2a740fe69cf5fc2945d9/numba-0.65.0-cp313-cp313-win_amd64.whl", hash = "sha256:6254e73b9c929dc736a1fbd3d6f5680789709a5067cae1fa7198707385129c04", size = 2749938, upload-time = "2026-04-01T03:51:45.218Z" },
+ { url = "https://files.pythonhosted.org/packages/56/a4/90edb01e9176053578e343d7a7276bc28356741ee67059aed8ed2c1a4e59/numba-0.65.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:ee336b398a6fca51b1f626034de99f50cb1bd87d537a166275158a3cee744b82", size = 2680878, upload-time = "2026-04-01T03:51:46.91Z" },
+ { url = "https://files.pythonhosted.org/packages/24/8d/e12d6ff4b9119db3cbf7b2db1ce257576441bd3c76388c786dea74f20b02/numba-0.65.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:05c0a9fdf75d85f57dee47b719e8d6415707b80aae45d75f63f9dc1b935c29f7", size = 3778456, upload-time = "2026-04-01T03:51:48.552Z" },
+ { url = "https://files.pythonhosted.org/packages/17/89/abcd83e76f6a773276fe76244140671bcc5bf820f6e2ae1a15362ae4c8c9/numba-0.65.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:583680e0e8faf124d362df23b4b593f3221a8996341a63d1b664c122401bec2f", size = 3478464, upload-time = "2026-04-01T03:51:50.527Z" },
+ { url = "https://files.pythonhosted.org/packages/73/5b/fbce55ce3d933afbc7ade04df826853e4a846aaa47d58d2fbb669b8f2d08/numba-0.65.0-cp314-cp314-win_amd64.whl", hash = "sha256:add297d3e1c08dd884f44100152612fa41e66a51d15fdf91307f9dde31d06830", size = 2752012, upload-time = "2026-04-01T03:51:52.691Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/ab/af705f4257d9388fb2fd6d7416573e98b6ca9c786e8b58f02720978557bd/numba-0.65.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:194a243ba53a9157c8538cbb3166ec015d785a8c5d584d06cdd88bee902233c7", size = 2683961, upload-time = "2026-04-01T03:51:54.281Z" },
+ { url = "https://files.pythonhosted.org/packages/ff/e5/8267b0adb0c01b52b553df5062fbbb42c30ed5362d08b85cc913a36f838f/numba-0.65.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7fa502960f7a2f3f5cb025bc7bff888a3551277b92431bfdc5ba2f11a375749", size = 3816373, upload-time = "2026-04-01T03:51:56.18Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/f5/b8397ca360971669a93706b9274592b6864e4367a37d498fbbcb62aa2d48/numba-0.65.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5046c63f783ca3eb6195f826a50797465e7c4ce811daa17c9bea47e310c9b964", size = 3532782, upload-time = "2026-04-01T03:51:58.387Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/21/1e73fa16bf0393ebb74c5bb208d712152ffdfc84600a8e93a3180317856e/numba-0.65.0-cp314-cp314t-win_amd64.whl", hash = "sha256:46fd679ae4f68c7a5d5721efbd29ecee0b0f3013211591891d79b51bfdf73113", size = 2757611, upload-time = "2026-04-01T03:52:00.083Z" },
+]
+
+[[package]]
+name = "numpy"
+version = "2.2.6"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" },
+ { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" },
+ { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" },
+ { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" },
+ { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" },
+ { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" },
+ { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" },
+ { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" },
+ { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" },
+ { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" },
+ { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" },
+ { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" },
+ { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" },
+ { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" },
+ { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" },
+ { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" },
+ { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" },
+ { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" },
+ { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" },
+ { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" },
+]
+
+[[package]]
+name = "nvidia-cublas"
+version = "13.1.0.3"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e1/a5/fce49e2ae977e0ccc084e5adafceb4f0ac0c8333cb6863501618a7277f67/nvidia_cublas-13.1.0.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:c86fc7f7ae36d7528288c5d88098edcb7b02c633d262e7ddbb86b0ad91be5df2", size = 542851226, upload-time = "2025-10-09T08:59:04.818Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/44/423ac00af4dd95a5aeb27207e2c0d9b7118702149bf4704c3ddb55bb7429/nvidia_cublas-13.1.0.3-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:ee8722c1f0145ab246bccb9e452153b5e0515fd094c3678df50b2a0888b8b171", size = 423133236, upload-time = "2025-10-09T08:59:32.536Z" },
+]
+
+[[package]]
+name = "nvidia-cuda-cupti"
+version = "13.0.85"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2a/2a/80353b103fc20ce05ef51e928daed4b6015db4aaa9162ed0997090fe2250/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_aarch64.whl", hash = "sha256:796bd679890ee55fb14a94629b698b6db54bcfd833d391d5e94017dd9d7d3151", size = 10310827, upload-time = "2025-09-04T08:26:42.012Z" },
+ { url = "https://files.pythonhosted.org/packages/33/6d/737d164b4837a9bbd202f5ae3078975f0525a55730fe871d8ed4e3b952b0/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_x86_64.whl", hash = "sha256:4eb01c08e859bf924d222250d2e8f8b8ff6d3db4721288cf35d14252a4d933c8", size = 10715597, upload-time = "2025-09-04T08:26:51.312Z" },
+]
+
+[[package]]
+name = "nvidia-cuda-nvrtc"
+version = "13.0.88"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/c3/68/483a78f5e8f31b08fb1bb671559968c0ca3a065ac7acabfc7cee55214fd6/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:ad9b6d2ead2435f11cbb6868809d2adeeee302e9bb94bcf0539c7a40d80e8575", size = 90215200, upload-time = "2025-09-04T08:28:44.204Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/dc/6bb80850e0b7edd6588d560758f17e0550893a1feaf436807d64d2da040f/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d27f20a0ca67a4bb34268a5e951033496c5b74870b868bacd046b1b8e0c3267b", size = 43015449, upload-time = "2025-09-04T08:28:20.239Z" },
+]
+
+[[package]]
+name = "nvidia-cuda-runtime"
+version = "13.0.96"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/87/4f/17d7b9b8e285199c58ce28e31b5c5bbaa4d8271af06a89b6405258245de2/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ef9bcbe90493a2b9d810e43d249adb3d02e98dd30200d86607d8d02687c43f55", size = 2261060, upload-time = "2025-10-09T08:55:15.78Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/24/d1558f3b68b1d26e706813b1d10aa1d785e4698c425af8db8edc3dced472/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f82250d7782aa23b6cfe765ecc7db554bd3c2870c43f3d1821f1d18aebf0548", size = 2243632, upload-time = "2025-10-09T08:55:36.117Z" },
+]
+
+[[package]]
+name = "nvidia-cudnn-cu13"
+version = "9.19.0.56"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "nvidia-cublas" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f1/84/26025437c1e6b61a707442184fa0c03d083b661adf3a3eecfd6d21677740/nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:6ed29ffaee1176c612daf442e4dd6cfeb6a0caa43ddcbeb59da94953030b1be4", size = 433781201, upload-time = "2026-02-03T20:40:53.805Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/22/0b4b932655d17a6da1b92fa92ab12844b053bb2ac2475e179ba6f043da1e/nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:d20e1734305e9d68889a96e3f35094d733ff1f83932ebe462753973e53a572bf", size = 366066321, upload-time = "2026-02-03T20:44:52.837Z" },
+]
+
+[[package]]
+name = "nvidia-cufft"
+version = "12.0.0.61"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "nvidia-nvjitlink" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/2f/7b57e29836ea8714f81e9898409196f47d772d5ddedddf1592eadb8ab743/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c44f692dce8fd5ffd3e3df134b6cdb9c2f72d99cf40b62c32dde45eea9ddad3", size = 214085489, upload-time = "2025-09-04T08:31:56.044Z" },
+]
+
+[[package]]
+name = "nvidia-cufile"
+version = "1.15.1.6"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/3f/70/4f193de89a48b71714e74602ee14d04e4019ad36a5a9f20c425776e72cd6/nvidia_cufile-1.15.1.6-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:08a3ecefae5a01c7f5117351c64f17c7c62efa5fffdbe24fc7d298da19cd0b44", size = 1223672, upload-time = "2025-09-04T08:32:22.779Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/73/cc4a14c9813a8a0d509417cf5f4bdaba76e924d58beb9864f5a7baceefbf/nvidia_cufile-1.15.1.6-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:bdc0deedc61f548bddf7733bdc216456c2fdb101d020e1ab4b88d232d5e2f6d1", size = 1136992, upload-time = "2025-09-04T08:32:14.119Z" },
+]
+
+[[package]]
+name = "nvidia-curand"
+version = "10.4.0.35"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1e/72/7c2ae24fb6b63a32e6ae5d241cc65263ea18d08802aaae087d9f013335a2/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:133df5a7509c3e292aaa2b477afd0194f06ce4ea24d714d616ff36439cee349a", size = 61962106, upload-time = "2025-08-04T10:21:41.128Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/9f/be0a41ca4a4917abf5cb9ae0daff1a6060cc5de950aec0396de9f3b52bc5/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:1aee33a5da6e1db083fe2b90082def8915f30f3248d5896bcec36a579d941bfc", size = 59544258, upload-time = "2025-08-04T10:22:03.992Z" },
+]
+
+[[package]]
+name = "nvidia-cusolver"
+version = "12.0.4.66"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "nvidia-cublas" },
+ { name = "nvidia-cusparse" },
+ { name = "nvidia-nvjitlink" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/67/cba3777620cdacb99102da4042883709c41c709f4b6323c10781a9c3aa34/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:0a759da5dea5c0ea10fd307de75cdeb59e7ea4fcb8add0924859b944babf1112", size = 200941980, upload-time = "2025-09-04T08:33:22.767Z" },
+]
+
+[[package]]
+name = "nvidia-cusparse"
+version = "12.6.3.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "nvidia-nvjitlink" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" },
+ { url = "https://files.pythonhosted.org/packages/fa/18/623c77619c31d62efd55302939756966f3ecc8d724a14dab2b75f1508850/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2b3c89c88d01ee0e477cb7f82ef60a11a4bcd57b6b87c33f789350b59759360b", size = 145942937, upload-time = "2025-09-04T08:33:58.029Z" },
+]
+
+[[package]]
+name = "nvidia-cusparselt-cu13"
+version = "0.8.0"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/46/10/8dcd1175260706a2fc92a16a52e306b71d4c1ea0b0cc4a9484183399818a/nvidia_cusparselt_cu13-0.8.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:400c6ed1cf6780fc6efedd64ec9f1345871767e6a1a0a552a1ea0578117ea77c", size = 220791277, upload-time = "2025-08-13T19:22:40.982Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/53/43b0d71f4e702fa9733f8b4571fdca50a8813f1e450b656c239beff12315/nvidia_cusparselt_cu13-0.8.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:25e30a8a7323935d4ad0340b95a0b69926eee755767e8e0b1cf8dd85b197d3fd", size = 169884119, upload-time = "2025-08-13T19:23:41.967Z" },
+]
+
+[[package]]
+name = "nvidia-nccl-cu13"
+version = "2.28.9"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/39/55/1920646a2e43ffd4fc958536b276197ed740e9e0c54105b4bb3521591fc7/nvidia_nccl_cu13-2.28.9-py3-none-manylinux_2_18_aarch64.whl", hash = "sha256:01c873ba1626b54caa12272ed228dc5b2781545e0ae8ba3f432a8ef1c6d78643", size = 196561677, upload-time = "2025-11-18T05:49:03.45Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/b4/878fefaad5b2bcc6fcf8d474a25e3e3774bc5133e4b58adff4d0bca238bc/nvidia_nccl_cu13-2.28.9-py3-none-manylinux_2_18_x86_64.whl", hash = "sha256:e4553a30f34195f3fa1da02a6da3d6337d28f2003943aa0a3d247bbc25fefc42", size = 196493177, upload-time = "2025-11-18T05:49:17.677Z" },
+]
+
+[[package]]
+name = "nvidia-nvjitlink"
+version = "13.0.88"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/56/7a/123e033aaff487c77107195fa5a2b8686795ca537935a24efae476c41f05/nvidia_nvjitlink-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:13a74f429e23b921c1109976abefacc69835f2f433ebd323d3946e11d804e47b", size = 40713933, upload-time = "2025-09-04T08:35:43.553Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/2c/93c5250e64df4f894f1cbb397c6fd71f79813f9fd79d7cd61de3f97b3c2d/nvidia_nvjitlink-13.0.88-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e931536ccc7d467a98ba1d8b89ff7fa7f1fa3b13f2b0069118cd7f47bff07d0c", size = 38768748, upload-time = "2025-09-04T08:35:20.008Z" },
+]
+
+[[package]]
+name = "nvidia-nvshmem-cu13"
+version = "3.4.5"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/dc/0f/05cc9c720236dcd2db9c1ab97fff629e96821be2e63103569da0c9b72f19/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dc2a197f38e5d0376ad52cd1a2a3617d3cdc150fd5966f4aee9bcebb1d68fe9", size = 60215947, upload-time = "2025-09-06T00:32:20.022Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/35/a9bf80a609e74e3b000fef598933235c908fcefcef9026042b8e6dfde2a9/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:290f0a2ee94c9f3687a02502f3b9299a9f9fe826e6d0287ee18482e78d495b80", size = 60412546, upload-time = "2025-09-06T00:32:41.564Z" },
+]
+
+[[package]]
+name = "nvidia-nvtx"
+version = "13.0.85"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/c2/f3/d86c845465a2723ad7e1e5c36dcd75ddb82898b3f53be47ebd429fb2fa5d/nvidia_nvtx-13.0.85-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4936d1d6780fbe68db454f5e72a42ff64d1fd6397df9f363ae786930fd5c1cd4", size = 148047, upload-time = "2025-09-04T08:29:01.761Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/64/3708a90d1ebe202ffdeb7185f878a3c84d15c2b2c31858da2ce0583e2def/nvidia_nvtx-13.0.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb7780edb6b14107373c835bf8b72e7a178bac7367e23da7acb108f973f157a6", size = 148878, upload-time = "2025-09-04T08:28:53.627Z" },
+]
+
+[[package]]
+name = "packaging"
+version = "26.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" },
+]
+
+[[package]]
+name = "propcache"
+version = "0.4.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload-time = "2025-10-08T19:46:24.597Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload-time = "2025-10-08T19:46:25.733Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload-time = "2025-10-08T19:46:27.304Z" },
+ { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload-time = "2025-10-08T19:46:28.62Z" },
+ { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload-time = "2025-10-08T19:46:30.358Z" },
+ { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload-time = "2025-10-08T19:46:32.607Z" },
+ { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload-time = "2025-10-08T19:46:33.969Z" },
+ { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload-time = "2025-10-08T19:46:35.309Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload-time = "2025-10-08T19:46:36.993Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload-time = "2025-10-08T19:46:38.398Z" },
+ { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload-time = "2025-10-08T19:46:39.732Z" },
+ { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload-time = "2025-10-08T19:46:41.025Z" },
+ { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload-time = "2025-10-08T19:46:42.693Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload-time = "2025-10-08T19:46:43.778Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload-time = "2025-10-08T19:46:44.872Z" },
+ { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" },
+ { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" },
+ { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" },
+ { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" },
+ { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" },
+ { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" },
+ { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" },
+ { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" },
+ { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" },
+ { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" },
+ { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" },
+ { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" },
+ { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" },
+ { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" },
+ { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" },
+ { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" },
+ { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" },
+ { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" },
+ { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" },
+ { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" },
+ { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" },
+ { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152, upload-time = "2025-10-08T19:47:51.051Z" },
+ { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869, upload-time = "2025-10-08T19:47:52.594Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596, upload-time = "2025-10-08T19:47:54.073Z" },
+ { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981, upload-time = "2025-10-08T19:47:55.715Z" },
+ { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490, upload-time = "2025-10-08T19:47:57.499Z" },
+ { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371, upload-time = "2025-10-08T19:47:59.317Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424, upload-time = "2025-10-08T19:48:00.67Z" },
+ { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566, upload-time = "2025-10-08T19:48:02.604Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130, upload-time = "2025-10-08T19:48:04.499Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625, upload-time = "2025-10-08T19:48:06.213Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209, upload-time = "2025-10-08T19:48:08.432Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797, upload-time = "2025-10-08T19:48:09.968Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140, upload-time = "2025-10-08T19:48:11.232Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257, upload-time = "2025-10-08T19:48:12.707Z" },
+ { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097, upload-time = "2025-10-08T19:48:13.923Z" },
+ { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455, upload-time = "2025-10-08T19:48:15.16Z" },
+ { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372, upload-time = "2025-10-08T19:48:16.424Z" },
+ { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411, upload-time = "2025-10-08T19:48:17.577Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712, upload-time = "2025-10-08T19:48:18.901Z" },
+ { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557, upload-time = "2025-10-08T19:48:20.762Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015, upload-time = "2025-10-08T19:48:22.592Z" },
+ { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880, upload-time = "2025-10-08T19:48:23.947Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938, upload-time = "2025-10-08T19:48:25.656Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641, upload-time = "2025-10-08T19:48:27.207Z" },
+ { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510, upload-time = "2025-10-08T19:48:28.65Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161, upload-time = "2025-10-08T19:48:30.133Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393, upload-time = "2025-10-08T19:48:31.567Z" },
+ { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546, upload-time = "2025-10-08T19:48:32.872Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259, upload-time = "2025-10-08T19:48:34.226Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428, upload-time = "2025-10-08T19:48:35.441Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" },
+]
+
+[[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/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" },
+ { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" },
+ { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" },
+ { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" },
+ { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" },
+ { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" },
+ { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" },
+ { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" },
+ { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" },
+ { 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/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" },
+ { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" },
+ { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" },
+ { 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" },
+ { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" },
+ { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" },
+ { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" },
+ { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" },
+ { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" },
+]
+
+[[package]]
+name = "pygments"
+version = "2.20.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" },
+]
+
+[[package]]
+name = "python-dotenv"
+version = "1.2.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" },
+]
+
+[[package]]
+name = "python-multipart"
+version = "0.0.22"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3/python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58", size = 37612, upload-time = "2026-01-25T10:15:56.219Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579, upload-time = "2026-01-25T10:15:54.811Z" },
+]
+
+[[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/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" },
+ { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" },
+ { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" },
+ { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" },
+ { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" },
+ { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" },
+ { 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 = "regex"
+version = "2026.3.32"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/81/93/5ab3e899c47fa7994e524447135a71cd121685a35c8fe35029005f8b236f/regex-2026.3.32.tar.gz", hash = "sha256:f1574566457161678297a116fa5d1556c5a4159d64c5ff7c760e7c564bf66f16", size = 415605, upload-time = "2026-03-28T21:49:22.012Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/92/c1/c68163a6ce455996db71e249a65234b1c9f79a914ea2108c6c9af9e1812a/regex-2026.3.32-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d7855f5e59fcf91d0c9f4a51dc5d8847813832a2230c3e8e35912ccf20baaa2", size = 489568, upload-time = "2026-03-28T21:45:58.791Z" },
+ { url = "https://files.pythonhosted.org/packages/96/9c/0bdd47733b832b5caa11e63df14dccdb311b41ab33c1221e249af4421f8f/regex-2026.3.32-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:18eb45f711e942c27dbed4109830bd070d8d618e008d0db39705f3f57070a4c6", size = 291287, upload-time = "2026-03-28T21:46:00.46Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/ff/1977a595f15f8dc355f9cebd875dab67f3faeca1f36b905fe53305bbcaed/regex-2026.3.32-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed3b8281c5d0944d939c82db4ec2300409dd69ee087f7a75a94f2e301e855fb4", size = 289325, upload-time = "2026-03-28T21:46:02.285Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/68/dfa21aef5af4a144702befeb5ff20ea9f9fbe40a4dfd08d56148b5b48b0a/regex-2026.3.32-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ad5c53f2e8fcae9144009435ebe3d9832003508cf8935c04542a1b3b8deefa15", size = 790898, upload-time = "2026-03-28T21:46:04.079Z" },
+ { url = "https://files.pythonhosted.org/packages/36/26/9424e43e0e31ac3ce1ba0e7232ee91e113a04a579c53331bc0f16a4a5bf7/regex-2026.3.32-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:70c634e39c5cda0da05c93d6747fdc957599f7743543662b6dbabdd8d3ba8a96", size = 862462, upload-time = "2026-03-28T21:46:05.923Z" },
+ { url = "https://files.pythonhosted.org/packages/63/a8/06573154ac891c6b55b74a88e0fb7c10081c20916b82dd0abc8cef938e13/regex-2026.3.32-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1e0f6648fd48f4c73d801c55ab976cd602e2da87de99c07bff005b131f269c6a", size = 906522, upload-time = "2026-03-28T21:46:07.988Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/26/46673bb18448c51222c6272c850484a0092f364fae8d0315be9aa1e4baa7/regex-2026.3.32-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5e0fdb5744caf1036dec5510f543164f2144cb64932251f6dfd42fa872b7f9c", size = 798289, upload-time = "2026-03-28T21:46:09.959Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/cb/804f1bd5ff08687258e6a92b040aba9b770e626b8d3ba21fffdfa21db2db/regex-2026.3.32-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dab4178a0bc1ef13178832b12db7bc7f562e8f028b2b5be186e370090dc50652", size = 774823, upload-time = "2026-03-28T21:46:12.049Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/94/28a58258f8d822fb949c8ff87fc7e5f2a346922360ec084c193b3c95e51c/regex-2026.3.32-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f95bd07f301135771559101c060f558e2cf896c7df00bec050ca7f93bf11585a", size = 781381, upload-time = "2026-03-28T21:46:13.746Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/f3/71e69dbe0543586a3e3532cf36e8c9b38d6d93033161a9799c1e9090eb78/regex-2026.3.32-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2dcca2bceb823c9cc610e57b86a265d7ffc30e9fe98548c609eba8bd3c0c2488", size = 855968, upload-time = "2026-03-28T21:46:15.762Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/99/850feec404a02b62e048718ec1b4b98b5c3848cd9ca2316d0bdb65a53f6a/regex-2026.3.32-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:567b57eb987547a23306444e4f6f85d4314f83e65c71d320d898aa7550550443", size = 762785, upload-time = "2026-03-28T21:46:17.394Z" },
+ { url = "https://files.pythonhosted.org/packages/40/04/808ab0462a2d19b295a3b42134f5183692f798addfe6a8b6aa5f7c7a35b2/regex-2026.3.32-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b6acb765e7c1f2fa08ac9057a33595e26104d7d67046becae184a8f100932dd9", size = 845797, upload-time = "2026-03-28T21:46:19.269Z" },
+ { url = "https://files.pythonhosted.org/packages/06/53/8afcf0fd4bd55440b48442c86cddfe61b0d21c92d96e384c0c47d769f4c3/regex-2026.3.32-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c1ed17104d1be7f807fdec35ec99777168dd793a09510d753f8710590ba54cdd", size = 785200, upload-time = "2026-03-28T21:46:20.939Z" },
+ { url = "https://files.pythonhosted.org/packages/99/4d/23d992ab4115456fec520d6c3aae39e0e33739b244ddb39aa4102a0f7ef0/regex-2026.3.32-cp311-cp311-win32.whl", hash = "sha256:c60f1de066eb5a0fd8ee5974de4194bb1c2e7692941458807162ffbc39887303", size = 266351, upload-time = "2026-03-28T21:46:22.515Z" },
+ { url = "https://files.pythonhosted.org/packages/62/74/27c3cdb3a3fbbf67f7231b872877416ec817ae84271573d2fd14bf8723d3/regex-2026.3.32-cp311-cp311-win_amd64.whl", hash = "sha256:8fe14e24124ef41220e5992a0f09432f890037df6f93fd3d6b7a0feff2db16b2", size = 278639, upload-time = "2026-03-28T21:46:24.016Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/12/6a67bd509f38aec021d63096dbc884f39473e92adeb1e35d6fb6d89cbd59/regex-2026.3.32-cp311-cp311-win_arm64.whl", hash = "sha256:ded4fc0edf3de792850cb8b04bbf3c5bd725eeaf9df4c27aad510f6eed9c4e19", size = 270594, upload-time = "2026-03-28T21:46:25.857Z" },
+ { url = "https://files.pythonhosted.org/packages/38/94/69492c45b0e61b027109d8433a5c3d4f7a90709184c057c7cfc60acb1bfa/regex-2026.3.32-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ad8d372587e659940568afd009afeb72be939c769c552c9b28773d0337251391", size = 490572, upload-time = "2026-03-28T21:46:28.031Z" },
+ { url = "https://files.pythonhosted.org/packages/92/0a/7dcffeebe0fcac45a1f9caf80712002d3cbd66d7d69d719315ee142b280f/regex-2026.3.32-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3f5747501b69299c6b0b047853771e4ed390510bada68cb16da9c9c2078343f7", size = 292078, upload-time = "2026-03-28T21:46:29.789Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/ec/988486058ef49eb931476419bae00f164c4ceb44787c45dc7a54b7de0ea4/regex-2026.3.32-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db976be51375bca900e008941639448d148c655c9545071965d0571ecc04f5d0", size = 289786, upload-time = "2026-03-28T21:46:31.415Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/cf/1955bb5567bc491bd63068e17f75ab0c9ff5e9d08466beec7e347f5e768d/regex-2026.3.32-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:66a5083c3ffe5a5a95f8281ea47a88072d4f24001d562d1d9d28d4cdc005fec5", size = 796431, upload-time = "2026-03-28T21:46:33.101Z" },
+ { url = "https://files.pythonhosted.org/packages/27/8a/67fcbca511b792107540181ee0690df6de877bfbcb41b7ecae7028025ca5/regex-2026.3.32-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e83ce8008b48762be296f1401f19afd9ea29f3d035d1974e0cecb74e9afbd1df", size = 865785, upload-time = "2026-03-28T21:46:35.053Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/59/0677bc44f2c28305edcabc11933777b9ad34e9e8ded7ba573d24e4bc3ee7/regex-2026.3.32-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3aa21bad31db904e0b9055e12c8282df62d43169c4a9d2929407060066ebc74", size = 913593, upload-time = "2026-03-28T21:46:36.835Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/fe/661043d1c263b0d9d10c6ff4e9c9745f3df9641c62b51f96a3473638e7ce/regex-2026.3.32-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f54840bea73541652f1170dc63402a5b776fc851ad36a842da9e5163c1f504a0", size = 801512, upload-time = "2026-03-28T21:46:38.587Z" },
+ { url = "https://files.pythonhosted.org/packages/ff/27/74c986061380e1811a46cf04cdf9c939db9f8c0e63953eddfe37ffd633ea/regex-2026.3.32-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2ffbadc647325dd4e3118269bda93ded1eb5f5b0c3b7ba79a3da9fbd04f248e9", size = 776182, upload-time = "2026-03-28T21:46:40.69Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/c8/d833397b70cd1bacfcdc0a611f0e2c1f5b91fee8eedd88affcee770cbbb6/regex-2026.3.32-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:66d3126afe7eac41759cd5f0b3b246598086e88e70527c0d68c9e615b81771c4", size = 785837, upload-time = "2026-03-28T21:46:42.926Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/53/fa226b72989b5b93db6926fab5478115e085dfcf077e18d2cb386be0fd23/regex-2026.3.32-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f785f44a44702dea89b28bce5bc82552490694ce4e144e21a4f0545e364d2150", size = 860612, upload-time = "2026-03-28T21:46:44.8Z" },
+ { url = "https://files.pythonhosted.org/packages/04/28/bdd2fc0c055a1b15702bd4084829bbb6b06095f27990e5bee52b2898ea03/regex-2026.3.32-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b7836aa13721dbdef658aebd11f60d00de633a95726521860fe1f6be75fa225a", size = 765285, upload-time = "2026-03-28T21:46:46.625Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/da/21f5e2a35a191b27e5a47cccb3914c99e139b49b1342d3f36e64e8cc60f7/regex-2026.3.32-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5336b1506142eb0f23c96fb4a34b37c4fefd4fed2a7042069f3c8058efe17855", size = 851963, upload-time = "2026-03-28T21:46:48.341Z" },
+ { url = "https://files.pythonhosted.org/packages/18/f4/04ed04ebf335a44083695c22772be6a42efa31900415555563acf02cb4de/regex-2026.3.32-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b56993a7aeb4140c4770f4f7965c9e5af4f024457d06e23c01b0d47501cb18ed", size = 788332, upload-time = "2026-03-28T21:46:50.454Z" },
+ { url = "https://files.pythonhosted.org/packages/21/25/5355908f479d0dc13d044f88270cdcabc8723efc12e4c2b19e5a94ff1a96/regex-2026.3.32-cp312-cp312-win32.whl", hash = "sha256:d363660f9ef8c734495598d2f3e527fb41f745c73159dc0d743402f049fb6836", size = 266847, upload-time = "2026-03-28T21:46:52.125Z" },
+ { url = "https://files.pythonhosted.org/packages/00/e5/3be71c781a031db5df00735b613895ad5fdbf86c6e3bbea5fbbd7bfb5902/regex-2026.3.32-cp312-cp312-win_amd64.whl", hash = "sha256:c9f261ad3cd97257dc1d9355bfbaa7dd703e06574bffa0fa8fe1e31da915ee38", size = 278034, upload-time = "2026-03-28T21:46:54.096Z" },
+ { url = "https://files.pythonhosted.org/packages/31/5f/27f1e0b1eea4faa99c66daca34130af20c44fae0237bbc98b87999dbc4a8/regex-2026.3.32-cp312-cp312-win_arm64.whl", hash = "sha256:89e50667e7e8c0e7903e4d644a2764fffe9a3a5d6578f72ab7a7b4205bf204b7", size = 270673, upload-time = "2026-03-28T21:46:56.046Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/ba/9c1819f302b42b5fbd4139ead6280e9ec37d19bbe33379df0039b2a57bb4/regex-2026.3.32-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c6d9c6e783b348f719b6118bb3f187b2e138e3112576c9679eb458cc8b2e164b", size = 490394, upload-time = "2026-03-28T21:46:58.112Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/0b/f62b0ce79eb83ca82fffea1736289d29bc24400355968301406789bcebd2/regex-2026.3.32-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f21ae18dfd15752cdd98d03cbd7a3640be826bfd58482a93f730dbd24d7b9fb", size = 291993, upload-time = "2026-03-28T21:47:00.198Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/d8/ba0f8f81f88cd20c0b27acc123561ac5495ea33f800f0b8ebed2038b23eb/regex-2026.3.32-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:844d88509c968dd44b30daeefac72b038b1bf31ac372d5106358ab01d393c48b", size = 289618, upload-time = "2026-03-28T21:47:02.269Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/0d/b47a0e68bc511c195ff129c0311a4cd79b954b8676193a9d03a97c623a91/regex-2026.3.32-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8fc918cd003ba0d066bf0003deb05a259baaaab4dc9bd4f1207bbbe64224857a", size = 796427, upload-time = "2026-03-28T21:47:04.096Z" },
+ { url = "https://files.pythonhosted.org/packages/51/d7/32b05aa8fde7789ba316533c0f30e87b6b5d38d6d7f8765eadc5aab84671/regex-2026.3.32-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bbc458a292aee57d572075f22c035fa32969cdb7987d454e3e34d45a40a0a8b4", size = 865850, upload-time = "2026-03-28T21:47:05.982Z" },
+ { url = "https://files.pythonhosted.org/packages/dc/67/828d8095501f237b83f630d4069eea8c0e5cb6a204e859cf0b67c223ce12/regex-2026.3.32-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:987cdfcfb97a249abc3601ad53c7de5c370529f1981e4c8c46793e4a1e1bfe8e", size = 913578, upload-time = "2026-03-28T21:47:08.172Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/f8/acf1eb80f58852e85bd39a6ddfa78ce2243ddc8de8da7582e6ba657da593/regex-2026.3.32-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5d88fa37ba5e8a80ca8d956b9ea03805cfa460223ac94b7d4854ee5e30f3173", size = 801536, upload-time = "2026-03-28T21:47:10.206Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/05/986cdf8d12693451f5889aaf4ea4f65b2c49b1152ae814fa1fb75439e40b/regex-2026.3.32-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d082be64e51671dd5ee1c208c92da2ddda0f2f20d8ef387e57634f7e97b6aae", size = 776226, upload-time = "2026-03-28T21:47:12.891Z" },
+ { url = "https://files.pythonhosted.org/packages/32/02/945a6a2348ca1c6608cb1747275c8affd2ccd957d4885c25218a86377912/regex-2026.3.32-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c1d7fa44aece1fa02b8927441614c96520253a5cad6a96994e3a81e060feed55", size = 785933, upload-time = "2026-03-28T21:47:14.795Z" },
+ { url = "https://files.pythonhosted.org/packages/53/12/c5bab6cc679ad79a45427a98c4e70809586ac963c5ad54a9217533c4763e/regex-2026.3.32-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d478a2ca902b6ef28ffc9521e5f0f728d036abe35c0b250ee8ae78cfe7c5e44e", size = 860671, upload-time = "2026-03-28T21:47:16.985Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/68/8d85f98c2443469facabef62b82b851d369b13f92bec2ca7a3808deaa47b/regex-2026.3.32-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2820d2231885e97aff0fcf230a19ebd5d2b5b8a1ba338c20deb34f16db1c7897", size = 765335, upload-time = "2026-03-28T21:47:18.872Z" },
+ { url = "https://files.pythonhosted.org/packages/89/a7/d8a9c270916107a501fca63b748547c6c77e570d19f16a29b557ce734f3d/regex-2026.3.32-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc8ced733d6cd9af5e412f256a32f7c61cd2d7371280a65c689939ac4572499f", size = 851913, upload-time = "2026-03-28T21:47:20.793Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/8e/03d392b26679914ccf21f83d18ad4443232d2f8c3e2c30a962d4e3918d9c/regex-2026.3.32-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:847087abe98b3c1ebf1eb49d6ef320dbba75a83ee4f83c94704580f1df007dd4", size = 788447, upload-time = "2026-03-28T21:47:22.628Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/df/692227d23535a50604333068b39eb262626db780ab1e1b19d83fc66853aa/regex-2026.3.32-cp313-cp313-win32.whl", hash = "sha256:d21a07edddb3e0ca12a8b8712abc8452481c3d3db19ae87fc94e9842d005964b", size = 266834, upload-time = "2026-03-28T21:47:24.778Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/37/13e4e56adc16ba607cffa1fe880f233eb9ded8ab8a8580619683c9e4ce48/regex-2026.3.32-cp313-cp313-win_amd64.whl", hash = "sha256:3c054e39a9f85a3d76c62a1d50c626c5e9306964eaa675c53f61ff7ec1204bbb", size = 277972, upload-time = "2026-03-28T21:47:26.627Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/1c/80a86dbb2b416fec003b1801462bdcebbf1d43202ed5acb176e99c1ba369/regex-2026.3.32-cp313-cp313-win_arm64.whl", hash = "sha256:b2e9c2ea2e93223579308263f359eab8837dc340530b860cb59b713651889f14", size = 270649, upload-time = "2026-03-28T21:47:28.551Z" },
+ { url = "https://files.pythonhosted.org/packages/58/08/e38372da599dc1c39c599907ec535016d110034bd3701ce36554f59767ef/regex-2026.3.32-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5d86e3fb08c94f084a625c8dc2132a79a3a111c8bf6e2bc59351fa61753c2f6e", size = 494495, upload-time = "2026-03-28T21:47:30.642Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/27/6e29ece8c9ce01001ece1137fa21c8707529c2305b22828f63623b0eb262/regex-2026.3.32-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b6f366a5ef66a2df4d9e68035cfe9f0eb8473cdfb922c37fac1d169b468607b0", size = 293988, upload-time = "2026-03-28T21:47:32.553Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/98/8752e18bb87a2fe728b73b0f83c082eb162a470766063f8028759fb26844/regex-2026.3.32-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b8fca73e16c49dd972ce3a88278dfa5b93bf91ddef332a46e9443abe21ca2f7c", size = 292634, upload-time = "2026-03-28T21:47:34.651Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/7b/d7729fe294e23e9c7c3871cb69d49059fa7d65fd11e437a2cbea43f6615d/regex-2026.3.32-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b953d9d496d19786f4d46e6ba4b386c6e493e81e40f9c5392332458183b0599d", size = 810532, upload-time = "2026-03-28T21:47:36.839Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/49/4dae7b000659f611b17b9c1541fba800b0569e4060debc4635ef1b23982c/regex-2026.3.32-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b565f25171e04d4fad950d1fa837133e3af6ea6f509d96166eed745eb0cf63bc", size = 871919, upload-time = "2026-03-28T21:47:39.192Z" },
+ { url = "https://files.pythonhosted.org/packages/83/85/aa8ad3977b9399861db3df62b33fe5fef6932ee23a1b9f4f357f58f2094b/regex-2026.3.32-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f28eac18a8733a124444643a66ac96fef2c0ad65f50034e0a043b90333dc677f", size = 916550, upload-time = "2026-03-28T21:47:41.618Z" },
+ { url = "https://files.pythonhosted.org/packages/c8/c0/6379d7f5b59ff0656ba49cf666d5013ecee55e83245275b310b0ffc79143/regex-2026.3.32-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cdd508664430dd51b8888deb6c5b416d8de046b2e11837254378d31febe4a98", size = 814988, upload-time = "2026-03-28T21:47:43.681Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/af/2dfddc64074bd9b70e27e170ee9db900542e2870210b489ad4471416ba86/regex-2026.3.32-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5c35d097f509cf7e40d20d5bee548d35d6049b36eb9965e8d43e4659923405b9", size = 786337, upload-time = "2026-03-28T21:47:46.076Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/2f/4eb8abd705236402b4fe0e130971634deffb1855e2028bf02a2b7c0e841c/regex-2026.3.32-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:85c9b0c131427470a6423baa0a9330be6fd8c3630cc3ee6fdee03360724cbec5", size = 800029, upload-time = "2026-03-28T21:47:48.356Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/2c/77d9ca2c9df483b51b4b1291c96d79c9ae301077841c4db39bc822f6b4c6/regex-2026.3.32-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:e50af656c15e2723eeb7279c0837e07accc594b95ec18b86821a4d44b51b24bf", size = 865843, upload-time = "2026-03-28T21:47:50.762Z" },
+ { url = "https://files.pythonhosted.org/packages/48/10/306f477a509f4eed699071b1f031d89edd5a2b5fa28c8ede5b2638eaba82/regex-2026.3.32-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:4bc32b4dbdb4f9f300cf9f38f8ea2ce9511a068ffaa45ac1373ee7a943f1d810", size = 772473, upload-time = "2026-03-28T21:47:52.771Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/f6/54bd83ec46ac037de2beb049afc9dd5d2769c6ecaadf7856254ce610e62a/regex-2026.3.32-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e3e5d1802cba785210a4a800e63fcee7a228649a880f3bf7f2aadccb151a834b", size = 856805, upload-time = "2026-03-28T21:47:55.04Z" },
+ { url = "https://files.pythonhosted.org/packages/37/e8/ee0e7d14de1fc6582d5782f072db6c61465a38a4142f88e175dda494b536/regex-2026.3.32-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ef250a3f5e93182193f5c927c5e9575b2cb14b80d03e258bc0b89cc5de076b60", size = 801875, upload-time = "2026-03-28T21:47:57.434Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/06/0fa9daca59d07b6aabd8e0468d3b86fd578576a157206fbcddbfc2298f7d/regex-2026.3.32-cp313-cp313t-win32.whl", hash = "sha256:9cf7036dfa2370ccc8651521fcbb40391974841119e9982fa312b552929e6c85", size = 269892, upload-time = "2026-03-28T21:47:59.674Z" },
+ { url = "https://files.pythonhosted.org/packages/13/47/77f16b5ad9f10ca574f03d84a354b359b0ac33f85054f2f2daafc9f7b807/regex-2026.3.32-cp313-cp313t-win_amd64.whl", hash = "sha256:c940e00e8d3d10932c929d4b8657c2ea47d2560f31874c3e174c0d3488e8b865", size = 281318, upload-time = "2026-03-28T21:48:01.562Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/47/db4446faaea8d01c8315c9c89c7dc6abbb3305e8e712e9b23936095c4d58/regex-2026.3.32-cp313-cp313t-win_arm64.whl", hash = "sha256:ace48c5e157c1e58b7de633c5e257285ce85e567ac500c833349c363b3df69d4", size = 272366, upload-time = "2026-03-28T21:48:03.748Z" },
+ { url = "https://files.pythonhosted.org/packages/32/68/ff024bf6131b7446a791a636dbbb7fa732d586f33b276d84b3460ea49393/regex-2026.3.32-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:a416ee898ecbc5d8b283223b4cf4d560f93244f6f7615c1bd67359744b00c166", size = 490430, upload-time = "2026-03-28T21:48:05.654Z" },
+ { url = "https://files.pythonhosted.org/packages/61/72/039d9164817ee298f2a2d0246001afe662241dcbec0eedd1fe03e2a2555e/regex-2026.3.32-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d76d62909bfb14521c3f7cfd5b94c0c75ec94b0a11f647d2f604998962ec7b6c", size = 291948, upload-time = "2026-03-28T21:48:07.666Z" },
+ { url = "https://files.pythonhosted.org/packages/06/9d/77f684d90ffe3e99b828d3cabb87a0f1601d2b9decd1333ff345809b1d02/regex-2026.3.32-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:631f7d95c83f42bccfe18946a38ad27ff6b6717fb4807e60cf24860b5eb277fc", size = 289786, upload-time = "2026-03-28T21:48:09.562Z" },
+ { url = "https://files.pythonhosted.org/packages/83/70/bd76069a0304e924682b2efd8683a01617a7e1da9b651af73039d8da76a4/regex-2026.3.32-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:12917c6c6813ffcdfb11680a04e4d63c5532b88cf089f844721c5f41f41a63ad", size = 796672, upload-time = "2026-03-28T21:48:11.568Z" },
+ { url = "https://files.pythonhosted.org/packages/80/31/c2d7d9a5671e111a2c16d57e0cb03e1ce35b28a115901590528aa928bb5b/regex-2026.3.32-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3e221b615f83b15887636fcb90ed21f1a19541366f8b7ba14ba1ad8304f4ded4", size = 866556, upload-time = "2026-03-28T21:48:14.081Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/b9/9921a31931d0bc3416ac30205471e0e2ed60dcbd16fc922bbd69b427322b/regex-2026.3.32-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4f9ae4755fa90f1dc2d0d393d572ebc134c0fe30fcfc0ab7e67c1db15f192041", size = 912787, upload-time = "2026-03-28T21:48:16.548Z" },
+ { url = "https://files.pythonhosted.org/packages/41/ab/2c1bc8ab99f63cdabdbc7823af8f4cfcd6ddbb2babf01861826c3f1ad44d/regex-2026.3.32-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a094e9dcafedfb9d333db5cf880304946683f43a6582bb86688f123335122929", size = 800879, upload-time = "2026-03-28T21:48:18.971Z" },
+ { url = "https://files.pythonhosted.org/packages/49/e5/0be716eb2c0b2ae3a439e44432534e82b2f81848af64cb21c0473ad8ae46/regex-2026.3.32-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c1cecea3e477af105f32ef2119b8d895f297492e41d317e60d474bc4bffd62ff", size = 776332, upload-time = "2026-03-28T21:48:21.163Z" },
+ { url = "https://files.pythonhosted.org/packages/26/80/114a61bd25dec7d1070930eaef82aadf9b05961a37629e7cca7bc3fc2257/regex-2026.3.32-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f26262900edd16272b6360014495e8d68379c6c6e95983f9b7b322dc928a1194", size = 786384, upload-time = "2026-03-28T21:48:23.277Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/78/be0a6531f8db426e8e60d6356aeef8e9cc3f541655a648c4968b63c87a88/regex-2026.3.32-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1cb22fa9ee6a0acb22fc9aecce5f9995fe4d2426ed849357d499d62608fbd7f9", size = 861381, upload-time = "2026-03-28T21:48:25.371Z" },
+ { url = "https://files.pythonhosted.org/packages/45/b1/e5076fbe45b8fb39672584b1b606d512f5bd3a43155be68a95f6b88c1fc5/regex-2026.3.32-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:9b9118a78e031a2e4709cd2fcc3028432e89b718db70073a8da574c249b5b249", size = 765434, upload-time = "2026-03-28T21:48:27.494Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/da/fd65d68b897f8b52b1390d20d776fa753582484724a9cb4f4c26de657ae5/regex-2026.3.32-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:b193ed199848aa96618cd5959c1582a0bf23cd698b0b900cb0ffe81b02c8659c", size = 851501, upload-time = "2026-03-28T21:48:29.884Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/d6/1e9c991c32022a9312e9124cc974961b3a2501338de2cd1cce75a3612d7a/regex-2026.3.32-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:10fb2aaae1aaadf7d43c9f3c2450404253697bf8b9ce360bd5418d1d16292298", size = 788076, upload-time = "2026-03-28T21:48:32.025Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/5b/b23c72f6d607cbb24ef42acf0c7c2ef4eee1377a9f7ba43b312f889edfbb/regex-2026.3.32-cp314-cp314-win32.whl", hash = "sha256:110ba4920721374d16c4c8ea7ce27b09546d43e16aea1d7f43681b5b8f80ba61", size = 272255, upload-time = "2026-03-28T21:48:34.355Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/ec/32bbcc42366097a8cea2c481e02964be6c6fa5ccfb0fa9581686af0bec5f/regex-2026.3.32-cp314-cp314-win_amd64.whl", hash = "sha256:245667ad430745bae6a1e41081872d25819d86fbd9e0eec485ba00d9f78ad43d", size = 281160, upload-time = "2026-03-28T21:48:36.588Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/e4/89038a028cb68e719fa03ab1ad603649fc199bcda12270d2ac7b471b8f5d/regex-2026.3.32-cp314-cp314-win_arm64.whl", hash = "sha256:1ca02ff0ef33e9d8276a1fcd6d90ff6ea055a32c9149c0050b5b67e26c6d2c51", size = 273688, upload-time = "2026-03-28T21:48:38.976Z" },
+ { url = "https://files.pythonhosted.org/packages/30/6e/87caccd608837a1fa4f8c7edc48e206103452b9bbc94fc724fa39340e807/regex-2026.3.32-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:51fb7e26f91f9091fd8ec6a946f99b15d3bc3667cb5ddc73dd6cb2222dd4a1cc", size = 494506, upload-time = "2026-03-28T21:48:41.327Z" },
+ { url = "https://files.pythonhosted.org/packages/16/53/a922e6b24694d70bdd68fc3fd076950e15b1b418cff9d2cc362b3968d86f/regex-2026.3.32-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:51a93452034d671b0e21b883d48ea66c5d6a05620ee16a9d3f229e828568f3f0", size = 293986, upload-time = "2026-03-28T21:48:43.481Z" },
+ { url = "https://files.pythonhosted.org/packages/60/e4/0cb32203c1aebad0577fcd5b9af1fe764869e617d5234bc6a0ad284299ea/regex-2026.3.32-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:03c2ebd15ff51e7b13bb3dc28dd5ac18cd39e59ebb40430b14ae1a19e833cff1", size = 292677, upload-time = "2026-03-28T21:48:45.772Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/f8/5006b70291469d4174dd66ad162802e2f68419c0f2a7952d0c76c1288cfa/regex-2026.3.32-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5bf2f3c2c5bd8360d335c7dcd4a9006cf1dabae063ee2558ee1b07bbc8a20d88", size = 810661, upload-time = "2026-03-28T21:48:48.147Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/9b/438763a20d22cd1f65f95c8f030dd25df2d80a941068a891d21a5f240456/regex-2026.3.32-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a4a3189a99ecdd1c13f42513ab3fc7fa8311b38ba7596dd98537acb8cd9acc3", size = 872156, upload-time = "2026-03-28T21:48:50.739Z" },
+ { url = "https://files.pythonhosted.org/packages/6c/5b/1341287887ac982ed9f5f60125e440513ffe354aa7e3681940495af7c12a/regex-2026.3.32-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3c0bbfbd38506e1ea96a85da6782577f06239cb9fcf9696f1ea537c980c0680b", size = 916749, upload-time = "2026-03-28T21:48:53.57Z" },
+ { url = "https://files.pythonhosted.org/packages/42/e2/1d2b48b8e94debfffc6fefb84d2a86a178cc208652a1d6493d5f29821c70/regex-2026.3.32-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8aaf8ee8f34b677f90742ca089b9c83d64bdc410528767273c816a863ed57327", size = 814788, upload-time = "2026-03-28T21:48:55.905Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/d9/7dacb34c43adaeb954518d851f3e5d3ce495ac00a9d6010e3b4b59917c4a/regex-2026.3.32-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3ea568832eca219c2be1721afa073c1c9eb8f98a9733fdedd0a9747639fc22a5", size = 786594, upload-time = "2026-03-28T21:48:58.404Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/72/28295068c92dbd6d3ce4fd22554345cf504e957cc57dadeda4a64fa86a57/regex-2026.3.32-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e4c8fa46aad1a11ae2f8fcd1c90b9d55e18925829ac0d98c5bb107f93351745", size = 800167, upload-time = "2026-03-28T21:49:01.226Z" },
+ { url = "https://files.pythonhosted.org/packages/ca/17/b10745adeca5b8d52da050e7c746137f5d01dabc6dbbe6e8d9d821dc65c1/regex-2026.3.32-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cec365d44835b043d7b3266487797639d07d621bec9dc0ea224b00775797cc1", size = 865906, upload-time = "2026-03-28T21:49:03.484Z" },
+ { url = "https://files.pythonhosted.org/packages/45/9d/1acbcce765044ac0c87f453f4876e0897f7a61c10315262f960184310798/regex-2026.3.32-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:09e26cad1544d856da85881ad292797289e4406338afe98163f3db9f7fac816c", size = 772642, upload-time = "2026-03-28T21:49:06.811Z" },
+ { url = "https://files.pythonhosted.org/packages/24/41/1ef8b4811355ad7b9d7579d3aeca00f18b7bc043ace26c8c609b9287346d/regex-2026.3.32-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:6062c4ef581a3e9e503dccf4e1b7f2d33fdc1c13ad510b287741ac73bc4c6b27", size = 856927, upload-time = "2026-03-28T21:49:09.373Z" },
+ { url = "https://files.pythonhosted.org/packages/97/b1/0dc1d361be80ec1b8b707ada041090181133a7a29d438e432260a4b26f9a/regex-2026.3.32-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88ebc0783907468f17fca3d7821b30f9c21865a721144eb498cb0ff99a67bcac", size = 801910, upload-time = "2026-03-28T21:49:11.818Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/db/1a23f767fa250844772a9464306d34e0fafe2c317303b88a1415096b6324/regex-2026.3.32-cp314-cp314t-win32.whl", hash = "sha256:e480d3dac06c89bc2e0fd87524cc38c546ac8b4a38177650745e64acbbcfdeba", size = 275714, upload-time = "2026-03-28T21:49:14.528Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/2b/616d31b125ca76079d74d6b1d84ec0860ffdb41c379151135d06e35a8633/regex-2026.3.32-cp314-cp314t-win_amd64.whl", hash = "sha256:67015a8162d413af9e3309d9a24e385816666fbf09e48e3ec43342c8536f7df6", size = 285722, upload-time = "2026-03-28T21:49:16.642Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/91/043d9a00d6123c5fa22a3dc96b10445ce434a8110e1d5e53efb01f243c8b/regex-2026.3.32-cp314-cp314t-win_arm64.whl", hash = "sha256:1a6ac1ed758902e664e0d95c1ee5991aa6fb355423f378ed184c6ec47a1ec0e9", size = 275700, upload-time = "2026-03-28T21:49:19.348Z" },
+]
+
+[[package]]
+name = "requests"
+version = "2.33.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "certifi" },
+ { name = "charset-normalizer" },
+ { name = "idna" },
+ { name = "urllib3" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" },
+]
+
+[[package]]
+name = "rich"
+version = "14.3.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "markdown-it-py" },
+ { name = "pygments" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" },
+]
+
+[[package]]
+name = "scipy"
+version = "1.17.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "numpy" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/df/75/b4ce781849931fef6fd529afa6b63711d5a733065722d0c3e2724af9e40a/scipy-1.17.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1f95b894f13729334fb990162e911c9e5dc1ab390c58aa6cbecb389c5b5e28ec", size = 31613675, upload-time = "2026-02-23T00:16:00.13Z" },
+ { url = "https://files.pythonhosted.org/packages/f7/58/bccc2861b305abdd1b8663d6130c0b3d7cc22e8d86663edbc8401bfd40d4/scipy-1.17.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:e18f12c6b0bc5a592ed23d3f7b891f68fd7f8241d69b7883769eb5d5dfb52696", size = 28162057, upload-time = "2026-02-23T00:16:09.456Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/ee/18146b7757ed4976276b9c9819108adbc73c5aad636e5353e20746b73069/scipy-1.17.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a3472cfbca0a54177d0faa68f697d8ba4c80bbdc19908c3465556d9f7efce9ee", size = 20334032, upload-time = "2026-02-23T00:16:17.358Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/e6/cef1cf3557f0c54954198554a10016b6a03b2ec9e22a4e1df734936bd99c/scipy-1.17.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:766e0dc5a616d026a3a1cffa379af959671729083882f50307e18175797b3dfd", size = 22709533, upload-time = "2026-02-23T00:16:25.791Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/60/8804678875fc59362b0fb759ab3ecce1f09c10a735680318ac30da8cd76b/scipy-1.17.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:744b2bf3640d907b79f3fd7874efe432d1cf171ee721243e350f55234b4cec4c", size = 33062057, upload-time = "2026-02-23T00:16:36.931Z" },
+ { url = "https://files.pythonhosted.org/packages/09/7d/af933f0f6e0767995b4e2d705a0665e454d1c19402aa7e895de3951ebb04/scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43af8d1f3bea642559019edfe64e9b11192a8978efbd1539d7bc2aaa23d92de4", size = 35349300, upload-time = "2026-02-23T00:16:49.108Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/3d/7ccbbdcbb54c8fdc20d3b6930137c782a163fa626f0aef920349873421ba/scipy-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd96a1898c0a47be4520327e01f874acfd61fb48a9420f8aa9f6483412ffa444", size = 35127333, upload-time = "2026-02-23T00:17:01.293Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/19/f926cb11c42b15ba08e3a71e376d816ac08614f769b4f47e06c3580c836a/scipy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4eb6c25dd62ee8d5edf68a8e1c171dd71c292fdae95d8aeb3dd7d7de4c364082", size = 37741314, upload-time = "2026-02-23T00:17:12.576Z" },
+ { url = "https://files.pythonhosted.org/packages/95/da/0d1df507cf574b3f224ccc3d45244c9a1d732c81dcb26b1e8a766ae271a8/scipy-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:d30e57c72013c2a4fe441c2fcb8e77b14e152ad48b5464858e07e2ad9fbfceff", size = 36607512, upload-time = "2026-02-23T00:17:23.424Z" },
+ { url = "https://files.pythonhosted.org/packages/68/7f/bdd79ceaad24b671543ffe0ef61ed8e659440eb683b66f033454dcee90eb/scipy-1.17.1-cp311-cp311-win_arm64.whl", hash = "sha256:9ecb4efb1cd6e8c4afea0daa91a87fbddbce1b99d2895d151596716c0b2e859d", size = 24599248, upload-time = "2026-02-23T00:17:34.561Z" },
+ { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" },
+ { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" },
+ { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" },
+ { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" },
+ { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" },
+ { url = "https://files.pythonhosted.org/packages/a2/84/dc08d77fbf3d87d3ee27f6a0c6dcce1de5829a64f2eae85a0ecc1f0daa73/scipy-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:41b71f4a3a4cab9d366cd9065b288efc4d4f3c0b37a91a8e0947fb5bd7f31d87", size = 36549682, upload-time = "2026-02-23T00:19:07.67Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/98/fe9ae9ffb3b54b62559f52dedaebe204b408db8109a8c66fdd04869e6424/scipy-1.17.1-cp312-cp312-win_arm64.whl", hash = "sha256:f4115102802df98b2b0db3cce5cb9b92572633a1197c77b7553e5203f284a5b3", size = 24547340, upload-time = "2026-02-23T00:19:12.024Z" },
+ { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" },
+ { url = "https://files.pythonhosted.org/packages/35/e5/d6d0e51fc888f692a35134336866341c08655d92614f492c6860dc45bb2c/scipy-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:37425bc9175607b0268f493d79a292c39f9d001a357bebb6b88fdfaff13f6448", size = 36510943, upload-time = "2026-02-23T00:20:50.89Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/fd/3be73c564e2a01e690e19cc618811540ba5354c67c8680dce3281123fb79/scipy-1.17.1-cp313-cp313-win_arm64.whl", hash = "sha256:5cf36e801231b6a2059bf354720274b7558746f3b1a4efb43fcf557ccd484a87", size = 24545621, upload-time = "2026-02-23T00:20:55.871Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" },
+ { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" },
+ { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" },
+ { url = "https://files.pythonhosted.org/packages/06/1c/1172a88d507a4baaf72c5a09bb6c018fe2ae0ab622e5830b703a46cc9e44/scipy-1.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e30bdeaa5deed6bc27b4cc490823cd0347d7dae09119b8803ae576ea0ce52e4c", size = 36562980, upload-time = "2026-02-23T00:20:40.575Z" },
+ { url = "https://files.pythonhosted.org/packages/70/b0/eb757336e5a76dfa7911f63252e3b7d1de00935d7705cf772db5b45ec238/scipy-1.17.1-cp313-cp313t-win_arm64.whl", hash = "sha256:a720477885a9d2411f94a93d16f9d89bad0f28ca23c3f8daa521e2dcc3f44d49", size = 24856543, upload-time = "2026-02-23T00:20:45.313Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" },
+ { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" },
+ { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/39/f0e8ea762a764a9dc52aa7dabcfad51a354819de1f0d4652b6a1122424d6/scipy-1.17.1-cp314-cp314-win_amd64.whl", hash = "sha256:3877ac408e14da24a6196de0ddcace62092bfc12a83823e92e49e40747e52c19", size = 37290984, upload-time = "2026-02-23T00:22:35.023Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/56/fe201e3b0f93d1a8bcf75d3379affd228a63d7e2d80ab45467a74b494947/scipy-1.17.1-cp314-cp314-win_arm64.whl", hash = "sha256:f8885db0bc2bffa59d5c1b72fad7a6a92d3e80e7257f967dd81abb553a90d293", size = 25192877, upload-time = "2026-02-23T00:22:39.798Z" },
+ { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" },
+ { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" },
+ { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" },
+ { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" },
+ { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" },
+ { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" },
+ { url = "https://files.pythonhosted.org/packages/11/2f/b29eafe4a3fbc3d6de9662b36e028d5f039e72d345e05c250e121a230dd4/scipy-1.17.1-cp314-cp314t-win_amd64.whl", hash = "sha256:eb092099205ef62cd1782b006658db09e2fed75bffcae7cc0d44052d8aa0f484", size = 37345327, upload-time = "2026-02-23T00:22:24.442Z" },
+ { url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" },
+]
+
+[[package]]
+name = "setuptools"
+version = "81.0.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/0d/1c/73e719955c59b8e424d015ab450f51c0af856ae46ea2da83eba51cc88de1/setuptools-81.0.0.tar.gz", hash = "sha256:487b53915f52501f0a79ccfd0c02c165ffe06631443a886740b91af4b7a5845a", size = 1198299, upload-time = "2026-02-06T21:10:39.601Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e1/e3/c164c88b2e5ce7b24d667b9bd83589cf4f3520d97cad01534cd3c4f55fdb/setuptools-81.0.0-py3-none-any.whl", hash = "sha256:fdd925d5c5d9f62e4b74b30d6dd7828ce236fd6ed998a08d81de62ce5a6310d6", size = 1062021, upload-time = "2026-02-06T21:10:37.175Z" },
+]
+
+[[package]]
+name = "shellingham"
+version = "1.5.4"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" },
+]
+
+[[package]]
+name = "starlette"
+version = "1.0.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/81/69/17425771797c36cded50b7fe44e850315d039f28b15901ab44839e70b593/starlette-1.0.0.tar.gz", hash = "sha256:6a4beaf1f81bb472fd19ea9b918b50dc3a77a6f2e190a12954b25e6ed5eea149", size = 2655289, upload-time = "2026-03-22T18:29:46.779Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0b/c9/584bc9651441b4ba60cc4d557d8a547b5aff901af35bda3a4ee30c819b82/starlette-1.0.0-py3-none-any.whl", hash = "sha256:d3ec55e0bb321692d275455ddfd3df75fff145d009685eb40dc91fc66b03d38b", size = 72651, upload-time = "2026-03-22T18:29:45.111Z" },
+]
+
+[[package]]
+name = "sympy"
+version = "1.14.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "mpmath" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" },
+]
+
+[[package]]
+name = "tiktoken"
+version = "0.12.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "regex" },
+ { name = "requests" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806, upload-time = "2025-10-06T20:22:45.419Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/de/46/21ea696b21f1d6d1efec8639c204bdf20fde8bafb351e1355c72c5d7de52/tiktoken-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e227c7f96925003487c33b1b32265fad2fbcec2b7cf4817afb76d416f40f6bb", size = 1051565, upload-time = "2025-10-06T20:21:44.566Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/d9/35c5d2d9e22bb2a5f74ba48266fb56c63d76ae6f66e02feb628671c0283e/tiktoken-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c06cf0fcc24c2cb2adb5e185c7082a82cba29c17575e828518c2f11a01f445aa", size = 995284, upload-time = "2025-10-06T20:21:45.622Z" },
+ { url = "https://files.pythonhosted.org/packages/01/84/961106c37b8e49b9fdcf33fe007bb3a8fdcc380c528b20cc7fbba80578b8/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:f18f249b041851954217e9fd8e5c00b024ab2315ffda5ed77665a05fa91f42dc", size = 1129201, upload-time = "2025-10-06T20:21:47.074Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/d0/3d9275198e067f8b65076a68894bb52fd253875f3644f0a321a720277b8a/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:47a5bc270b8c3db00bb46ece01ef34ad050e364b51d406b6f9730b64ac28eded", size = 1152444, upload-time = "2025-10-06T20:21:48.139Z" },
+ { url = "https://files.pythonhosted.org/packages/78/db/a58e09687c1698a7c592e1038e01c206569b86a0377828d51635561f8ebf/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:508fa71810c0efdcd1b898fda574889ee62852989f7c1667414736bcb2b9a4bd", size = 1195080, upload-time = "2025-10-06T20:21:49.246Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/1b/a9e4d2bf91d515c0f74afc526fd773a812232dd6cda33ebea7f531202325/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1af81a6c44f008cba48494089dd98cccb8b313f55e961a52f5b222d1e507967", size = 1255240, upload-time = "2025-10-06T20:21:50.274Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/15/963819345f1b1fb0809070a79e9dd96938d4ca41297367d471733e79c76c/tiktoken-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e68e3e593637b53e56f7237be560f7a394451cb8c11079755e80ae64b9e6def", size = 879422, upload-time = "2025-10-06T20:21:51.734Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728, upload-time = "2025-10-06T20:21:52.756Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049, upload-time = "2025-10-06T20:21:53.782Z" },
+ { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008, upload-time = "2025-10-06T20:21:54.832Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665, upload-time = "2025-10-06T20:21:56.129Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230, upload-time = "2025-10-06T20:21:57.546Z" },
+ { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688, upload-time = "2025-10-06T20:21:58.619Z" },
+ { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694, upload-time = "2025-10-06T20:21:59.876Z" },
+ { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802, upload-time = "2025-10-06T20:22:00.96Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995, upload-time = "2025-10-06T20:22:02.788Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948, upload-time = "2025-10-06T20:22:03.814Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/da/c028aa0babf77315e1cef357d4d768800c5f8a6de04d0eac0f377cb619fa/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4a1a4fcd021f022bfc81904a911d3df0f6543b9e7627b51411da75ff2fe7a1be", size = 1151986, upload-time = "2025-10-06T20:22:05.173Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/5a/886b108b766aa53e295f7216b509be95eb7d60b166049ce2c58416b25f2a/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:981a81e39812d57031efdc9ec59fa32b2a5a5524d20d4776574c4b4bd2e9014a", size = 1194222, upload-time = "2025-10-06T20:22:06.265Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/f8/4db272048397636ac7a078d22773dd2795b1becee7bc4922fe6207288d57/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9baf52f84a3f42eef3ff4e754a0db79a13a27921b457ca9832cf944c6be4f8f3", size = 1255097, upload-time = "2025-10-06T20:22:07.403Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/32/45d02e2e0ea2be3a9ed22afc47d93741247e75018aac967b713b2941f8ea/tiktoken-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8a0cd0c789a61f31bf44851defbd609e8dd1e2c8589c614cc1060940ef1f697", size = 879117, upload-time = "2025-10-06T20:22:08.418Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/76/994fc868f88e016e6d05b0da5ac24582a14c47893f4474c3e9744283f1d5/tiktoken-0.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d5f89ea5680066b68bcb797ae85219c72916c922ef0fcdd3480c7d2315ffff16", size = 1050309, upload-time = "2025-10-06T20:22:10.939Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/b8/57ef1456504c43a849821920d582a738a461b76a047f352f18c0b26c6516/tiktoken-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b4e7ed1c6a7a8a60a3230965bdedba8cc58f68926b835e519341413370e0399a", size = 993712, upload-time = "2025-10-06T20:22:12.115Z" },
+ { url = "https://files.pythonhosted.org/packages/72/90/13da56f664286ffbae9dbcfadcc625439142675845baa62715e49b87b68b/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fc530a28591a2d74bce821d10b418b26a094bf33839e69042a6e86ddb7a7fb27", size = 1128725, upload-time = "2025-10-06T20:22:13.541Z" },
+ { url = "https://files.pythonhosted.org/packages/05/df/4f80030d44682235bdaecd7346c90f67ae87ec8f3df4a3442cb53834f7e4/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:06a9f4f49884139013b138920a4c393aa6556b2f8f536345f11819389c703ebb", size = 1151875, upload-time = "2025-10-06T20:22:14.559Z" },
+ { url = "https://files.pythonhosted.org/packages/22/1f/ae535223a8c4ef4c0c1192e3f9b82da660be9eb66b9279e95c99288e9dab/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:04f0e6a985d95913cabc96a741c5ffec525a2c72e9df086ff17ebe35985c800e", size = 1194451, upload-time = "2025-10-06T20:22:15.545Z" },
+ { url = "https://files.pythonhosted.org/packages/78/a7/f8ead382fce0243cb625c4f266e66c27f65ae65ee9e77f59ea1653b6d730/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ee8f9ae00c41770b5f9b0bb1235474768884ae157de3beb5439ca0fd70f3e25", size = 1253794, upload-time = "2025-10-06T20:22:16.624Z" },
+ { url = "https://files.pythonhosted.org/packages/93/e0/6cc82a562bc6365785a3ff0af27a2a092d57c47d7a81d9e2295d8c36f011/tiktoken-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dc2dd125a62cb2b3d858484d6c614d136b5b848976794edfb63688d539b8b93f", size = 878777, upload-time = "2025-10-06T20:22:18.036Z" },
+ { url = "https://files.pythonhosted.org/packages/72/05/3abc1db5d2c9aadc4d2c76fa5640134e475e58d9fbb82b5c535dc0de9b01/tiktoken-0.12.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a90388128df3b3abeb2bfd1895b0681412a8d7dc644142519e6f0a97c2111646", size = 1050188, upload-time = "2025-10-06T20:22:19.563Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/7b/50c2f060412202d6c95f32b20755c7a6273543b125c0985d6fa9465105af/tiktoken-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:da900aa0ad52247d8794e307d6446bd3cdea8e192769b56276695d34d2c9aa88", size = 993978, upload-time = "2025-10-06T20:22:20.702Z" },
+ { url = "https://files.pythonhosted.org/packages/14/27/bf795595a2b897e271771cd31cb847d479073497344c637966bdf2853da1/tiktoken-0.12.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:285ba9d73ea0d6171e7f9407039a290ca77efcdb026be7769dccc01d2c8d7fff", size = 1129271, upload-time = "2025-10-06T20:22:22.06Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/de/9341a6d7a8f1b448573bbf3425fa57669ac58258a667eb48a25dfe916d70/tiktoken-0.12.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:d186a5c60c6a0213f04a7a802264083dea1bbde92a2d4c7069e1a56630aef830", size = 1151216, upload-time = "2025-10-06T20:22:23.085Z" },
+ { url = "https://files.pythonhosted.org/packages/75/0d/881866647b8d1be4d67cb24e50d0c26f9f807f994aa1510cb9ba2fe5f612/tiktoken-0.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:604831189bd05480f2b885ecd2d1986dc7686f609de48208ebbbddeea071fc0b", size = 1194860, upload-time = "2025-10-06T20:22:24.602Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/1e/b651ec3059474dab649b8d5b69f5c65cd8fcd8918568c1935bd4136c9392/tiktoken-0.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8f317e8530bb3a222547b85a58583238c8f74fd7a7408305f9f63246d1a0958b", size = 1254567, upload-time = "2025-10-06T20:22:25.671Z" },
+ { url = "https://files.pythonhosted.org/packages/80/57/ce64fd16ac390fafde001268c364d559447ba09b509181b2808622420eec/tiktoken-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:399c3dd672a6406719d84442299a490420b458c44d3ae65516302a99675888f3", size = 921067, upload-time = "2025-10-06T20:22:26.753Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/a4/72eed53e8976a099539cdd5eb36f241987212c29629d0a52c305173e0a68/tiktoken-0.12.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2c714c72bc00a38ca969dae79e8266ddec999c7ceccd603cc4f0d04ccd76365", size = 1050473, upload-time = "2025-10-06T20:22:27.775Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/d7/0110b8f54c008466b19672c615f2168896b83706a6611ba6e47313dbc6e9/tiktoken-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cbb9a3ba275165a2cb0f9a83f5d7025afe6b9d0ab01a22b50f0e74fee2ad253e", size = 993855, upload-time = "2025-10-06T20:22:28.799Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/77/4f268c41a3957c418b084dd576ea2fad2e95da0d8e1ab705372892c2ca22/tiktoken-0.12.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:dfdfaa5ffff8993a3af94d1125870b1d27aed7cb97aa7eb8c1cefdbc87dbee63", size = 1129022, upload-time = "2025-10-06T20:22:29.981Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/2b/fc46c90fe5028bd094cd6ee25a7db321cb91d45dc87531e2bdbb26b4867a/tiktoken-0.12.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:584c3ad3d0c74f5269906eb8a659c8bfc6144a52895d9261cdaf90a0ae5f4de0", size = 1150736, upload-time = "2025-10-06T20:22:30.996Z" },
+ { url = "https://files.pythonhosted.org/packages/28/c0/3c7a39ff68022ddfd7d93f3337ad90389a342f761c4d71de99a3ccc57857/tiktoken-0.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:54c891b416a0e36b8e2045b12b33dd66fb34a4fe7965565f1b482da50da3e86a", size = 1194908, upload-time = "2025-10-06T20:22:32.073Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/0d/c1ad6f4016a3968c048545f5d9b8ffebf577774b2ede3e2e352553b685fe/tiktoken-0.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5edb8743b88d5be814b1a8a8854494719080c28faaa1ccbef02e87354fe71ef0", size = 1253706, upload-time = "2025-10-06T20:22:33.385Z" },
+ { url = "https://files.pythonhosted.org/packages/af/df/c7891ef9d2712ad774777271d39fdef63941ffba0a9d59b7ad1fd2765e57/tiktoken-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f61c0aea5565ac82e2ec50a05e02a6c44734e91b51c10510b084ea1b8e633a71", size = 920667, upload-time = "2025-10-06T20:22:34.444Z" },
+]
+
+[[package]]
+name = "torch"
+version = "2.11.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cuda-bindings", marker = "sys_platform == 'linux'" },
+ { name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "sys_platform == 'linux'" },
+ { name = "filelock" },
+ { name = "fsspec" },
+ { name = "jinja2" },
+ { name = "networkx" },
+ { name = "nvidia-cudnn-cu13", marker = "sys_platform == 'linux'" },
+ { name = "nvidia-cusparselt-cu13", marker = "sys_platform == 'linux'" },
+ { name = "nvidia-nccl-cu13", marker = "sys_platform == 'linux'" },
+ { name = "nvidia-nvshmem-cu13", marker = "sys_platform == 'linux'" },
+ { name = "setuptools" },
+ { name = "sympy" },
+ { name = "triton", marker = "sys_platform == 'linux'" },
+ { name = "typing-extensions" },
+]
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ae/0d/98b410492609e34a155fa8b121b55c7dca229f39636851c3a9ec20edea21/torch-2.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7b6a60d48062809f58595509c524b88e6ddec3ebe25833d6462eeab81e5f2ce4", size = 80529712, upload-time = "2026-03-23T18:12:02.608Z" },
+ { url = "https://files.pythonhosted.org/packages/84/03/acea680005f098f79fd70c1d9d5ccc0cb4296ec2af539a0450108232fc0c/torch-2.11.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:d91aac77f24082809d2c5a93f52a5f085032740a1ebc9252a7b052ef5a4fddc6", size = 419718178, upload-time = "2026-03-23T18:10:46.675Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/8b/d7be22fbec9ffee6cff31a39f8750d4b3a65d349a286cf4aec74c2375662/torch-2.11.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7aa2f9bbc6d4595ba72138026b2074be1233186150e9292865e04b7a63b8c67a", size = 530604548, upload-time = "2026-03-23T18:10:03.569Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/bd/9912d30b68845256aabbb4a40aeefeef3c3b20db5211ccda653544ada4b6/torch-2.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:73e24aaf8f36ab90d95cd1761208b2eb70841c2a9ca1a3f9061b39fc5331b708", size = 114519675, upload-time = "2026-03-23T18:11:52.995Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/8b/69e3008d78e5cee2b30183340cc425081b78afc5eff3d080daab0adda9aa/torch-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4b5866312ee6e52ea625cd211dcb97d6a2cdc1131a5f15cc0d87eec948f6dd34", size = 80606338, upload-time = "2026-03-23T18:11:34.781Z" },
+ { url = "https://files.pythonhosted.org/packages/13/16/42e5915ebe4868caa6bac83a8ed59db57f12e9a61b7d749d584776ed53d5/torch-2.11.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f99924682ef0aa6a4ab3b1b76f40dc6e273fca09f367d15a524266db100a723f", size = 419731115, upload-time = "2026-03-23T18:11:06.944Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/c9/82638ef24d7877510f83baf821f5619a61b45568ce21c0a87a91576510aa/torch-2.11.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:0f68f4ac6d95d12e896c3b7a912b5871619542ec54d3649cf48cc1edd4dd2756", size = 530712279, upload-time = "2026-03-23T18:10:31.481Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/ff/6756f1c7ee302f6d202120e0f4f05b432b839908f9071157302cedfc5232/torch-2.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:fbf39280699d1b869f55eac536deceaa1b60bd6788ba74f399cc67e60a5fab10", size = 114556047, upload-time = "2026-03-23T18:10:55.931Z" },
+ { url = "https://files.pythonhosted.org/packages/87/89/5ea6722763acee56b045435fb84258db7375c48165ec8be7880ab2b281c5/torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e6debd97ccd3205bbb37eb806a9d8219e1139d15419982c09e23ef7d4369d18", size = 80606801, upload-time = "2026-03-23T18:10:18.649Z" },
+ { url = "https://files.pythonhosted.org/packages/32/d1/8ed2173589cbfe744ed54e5a73efc107c0085ba5777ee93a5f4c1ab90553/torch-2.11.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:63a68fa59de8f87acc7e85a5478bb2dddbb3392b7593ec3e78827c793c4b73fd", size = 419732382, upload-time = "2026-03-23T18:08:30.835Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/e1/b73f7c575a4b8f87a5928f50a1e35416b5e27295d8be9397d5293e7e8d4c/torch-2.11.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:cc89b9b173d9adfab59fd227f0ab5e5516d9a52b658ae41d64e59d2e55a418db", size = 530711509, upload-time = "2026-03-23T18:08:47.213Z" },
+ { url = "https://files.pythonhosted.org/packages/66/82/3e3fcdd388fbe54e29fd3f991f36846ff4ac90b0d0181e9c8f7236565f82/torch-2.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:4dda3b3f52d121063a731ddb835f010dc137b920d7fec2778e52f60d8e4bf0cd", size = 114555842, upload-time = "2026-03-23T18:09:52.111Z" },
+ { url = "https://files.pythonhosted.org/packages/db/38/8ac78069621b8c2b4979c2f96dc8409ef5e9c4189f6aac629189a78677ca/torch-2.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8b394322f49af4362d4f80e424bcaca7efcd049619af03a4cf4501520bdf0fb4", size = 80959574, upload-time = "2026-03-23T18:10:14.214Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/6c/56bfb37073e7136e6dd86bfc6af7339946dd684e0ecf2155ac0eee687ae1/torch-2.11.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:2658f34ce7e2dabf4ec73b45e2ca68aedad7a5be87ea756ad656eaf32bf1e1ea", size = 419732324, upload-time = "2026-03-23T18:09:36.604Z" },
+ { url = "https://files.pythonhosted.org/packages/07/f4/1b666b6d61d3394cca306ea543ed03a64aad0a201b6cd159f1d41010aeb1/torch-2.11.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:98bb213c3084cfe176302949bdc360074b18a9da7ab59ef2edc9d9f742504778", size = 530596026, upload-time = "2026-03-23T18:09:20.842Z" },
+ { url = "https://files.pythonhosted.org/packages/48/6b/30d1459fa7e4b67e9e3fe1685ca1d8bb4ce7c62ef436c3a615963c6c866c/torch-2.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a97b94bbf62992949b4730c6cd2cc9aee7b335921ee8dc207d930f2ed09ae2db", size = 114793702, upload-time = "2026-03-23T18:09:47.304Z" },
+ { url = "https://files.pythonhosted.org/packages/26/0d/8603382f61abd0db35841148ddc1ffd607bf3100b11c6e1dab6d2fc44e72/torch-2.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:01018087326984a33b64e04c8cb5c2795f9120e0d775ada1f6638840227b04d7", size = 80573442, upload-time = "2026-03-23T18:09:10.117Z" },
+ { url = "https://files.pythonhosted.org/packages/c7/86/7cd7c66cb9cec6be330fff36db5bd0eef386d80c031b581ec81be1d4b26c/torch-2.11.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:2bb3cc54bd0dea126b0060bb1ec9de0f9c7f7342d93d436646516b0330cd5be7", size = 419749385, upload-time = "2026-03-23T18:07:33.77Z" },
+ { url = "https://files.pythonhosted.org/packages/47/e8/b98ca2d39b2e0e4730c0ee52537e488e7008025bc77ca89552ff91021f7c/torch-2.11.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:4dc8b3809469b6c30b411bb8c4cad3828efd26236153d9beb6a3ec500f211a60", size = 530716756, upload-time = "2026-03-23T18:07:50.02Z" },
+ { url = "https://files.pythonhosted.org/packages/78/88/d4a4cda8362f8a30d1ed428564878c3cafb0d87971fbd3947d4c84552095/torch-2.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:2b4e811728bd0cc58fb2b0948fe939a1ee2bf1422f6025be2fca4c7bd9d79718", size = 114552300, upload-time = "2026-03-23T18:09:05.617Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/46/4419098ed6d801750f26567b478fc185c3432e11e2cad712bc6b4c2ab0d0/torch-2.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8245477871c3700d4370352ffec94b103cfcb737229445cf9946cddb7b2ca7cd", size = 80959460, upload-time = "2026-03-23T18:09:00.818Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/66/54a56a4a6ceaffb567231994a9745821d3af922a854ed33b0b3a278e0a99/torch-2.11.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:ab9a8482f475f9ba20e12db84b0e55e2f58784bdca43a854a6ccd3fd4b9f75e6", size = 419735835, upload-time = "2026-03-23T18:07:18.974Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/e7/0b6665f533aa9e337662dc190425abc0af1fe3234088f4454c52393ded61/torch-2.11.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:563ed3d25542d7e7bbc5b235ccfacfeb97fb470c7fee257eae599adb8005c8a2", size = 530613405, upload-time = "2026-03-23T18:08:07.014Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/bf/c8d12a2c86dbfd7f40fb2f56fbf5a505ccf2d9ce131eb559dfc7c51e1a04/torch-2.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b2a43985ff5ef6ddd923bbcf99943e5f58059805787c5c9a2622bf05ca2965b0", size = 114792991, upload-time = "2026-03-23T18:08:19.216Z" },
+]
+
+[[package]]
+name = "tqdm"
+version = "4.67.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" },
+]
+
+[[package]]
+name = "triton"
+version = "3.6.0"
+source = { registry = "https://pypi.org/simple" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0f/2c/96f92f3c60387e14cc45aed49487f3486f89ea27106c1b1376913c62abe4/triton-3.6.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49df5ef37379c0c2b5c0012286f80174fcf0e073e5ade1ca9a86c36814553651", size = 176081190, upload-time = "2026-01-20T16:16:00.523Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/12/b05ba554d2c623bffa59922b94b0775673de251f468a9609bc9e45de95e9/triton-3.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8e323d608e3a9bfcc2d9efcc90ceefb764a82b99dea12a86d643c72539ad5d3", size = 188214640, upload-time = "2026-01-20T16:00:35.869Z" },
+ { url = "https://files.pythonhosted.org/packages/17/5d/08201db32823bdf77a0e2b9039540080b2e5c23a20706ddba942924ebcd6/triton-3.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:374f52c11a711fd062b4bfbb201fd9ac0a5febd28a96fb41b4a0f51dde3157f4", size = 176128243, upload-time = "2026-01-20T16:16:07.857Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/a8/cdf8b3e4c98132f965f88c2313a4b493266832ad47fb52f23d14d4f86bb5/triton-3.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74caf5e34b66d9f3a429af689c1c7128daba1d8208df60e81106b115c00d6fca", size = 188266850, upload-time = "2026-01-20T16:00:43.041Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/12/34d71b350e89a204c2c7777a9bba0dcf2f19a5bfdd70b57c4dbc5ffd7154/triton-3.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:448e02fe6dc898e9e5aa89cf0ee5c371e99df5aa5e8ad976a80b93334f3494fd", size = 176133521, upload-time = "2026-01-20T16:16:13.321Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/0b/37d991d8c130ce81a8728ae3c25b6e60935838e9be1b58791f5997b24a54/triton-3.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10c7f76c6e72d2ef08df639e3d0d30729112f47a56b0c81672edc05ee5116ac9", size = 188289450, upload-time = "2026-01-20T16:00:49.136Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/4e/41b0c8033b503fd3cfcd12392cdd256945026a91ff02452bef40ec34bee7/triton-3.6.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1722e172d34e32abc3eb7711d0025bb69d7959ebea84e3b7f7a341cd7ed694d6", size = 176276087, upload-time = "2026-01-20T16:16:18.989Z" },
+ { url = "https://files.pythonhosted.org/packages/35/f8/9c66bfc55361ec6d0e4040a0337fb5924ceb23de4648b8a81ae9d33b2b38/triton-3.6.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d002e07d7180fd65e622134fbd980c9a3d4211fb85224b56a0a0efbd422ab72f", size = 188400296, upload-time = "2026-01-20T16:00:56.042Z" },
+ { url = "https://files.pythonhosted.org/packages/49/55/5ecf0dcaa0f2fbbd4420f7ef227ee3cb172e91e5fede9d0ecaddc43363b4/triton-3.6.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef5523241e7d1abca00f1d240949eebdd7c673b005edbbce0aca95b8191f1d43", size = 176138577, upload-time = "2026-01-20T16:16:25.426Z" },
+ { url = "https://files.pythonhosted.org/packages/df/3d/9e7eee57b37c80cec63322c0231bb6da3cfe535a91d7a4d64896fcb89357/triton-3.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a17a5d5985f0ac494ed8a8e54568f092f7057ef60e1b0fa09d3fd1512064e803", size = 188273063, upload-time = "2026-01-20T16:01:07.278Z" },
+ { url = "https://files.pythonhosted.org/packages/48/db/56ee649cab5eaff4757541325aca81f52d02d4a7cd3506776cad2451e060/triton-3.6.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b3a97e8ed304dfa9bd23bb41ca04cdf6b2e617d5e782a8653d616037a5d537d", size = 176274804, upload-time = "2026-01-20T16:16:31.528Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/56/6113c23ff46c00aae423333eb58b3e60bdfe9179d542781955a5e1514cb3/triton-3.6.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:46bd1c1af4b6704e554cad2eeb3b0a6513a980d470ccfa63189737340c7746a7", size = 188397994, upload-time = "2026-01-20T16:01:14.236Z" },
+]
+
+[[package]]
+name = "typer"
+version = "0.24.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "annotated-doc" },
+ { name = "click" },
+ { name = "rich" },
+ { name = "shellingham" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" },
+]
+
+[[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 = "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.42.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "click" },
+ { name = "h11" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/e3/ad/4a96c425be6fb67e0621e62d86c402b4a17ab2be7f7c055d9bd2f638b9e2/uvicorn-0.42.0.tar.gz", hash = "sha256:9b1f190ce15a2dd22e7758651d9b6d12df09a13d51ba5bf4fc33c383a48e1775", size = 85393, upload-time = "2026-03-16T06:19:50.077Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0a/89/f8827ccff89c1586027a105e5630ff6139a64da2515e24dafe860bd9ae4d/uvicorn-0.42.0-py3-none-any.whl", hash = "sha256:96c30f5c7abe6f74ae8900a70e92b85ad6613b745d4879eb9b16ccad15645359", size = 68830, upload-time = "2026-03-16T06:19:48.325Z" },
+]
+
+[[package]]
+name = "yarl"
+version = "1.23.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "idna" },
+ { name = "multidict" },
+ { name = "propcache" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/23/6e/beb1beec874a72f23815c1434518bfc4ed2175065173fb138c3705f658d4/yarl-1.23.0.tar.gz", hash = "sha256:53b1ea6ca88ebd4420379c330aea57e258408dd0df9af0992e5de2078dc9f5d5", size = 194676, upload-time = "2026-03-01T22:07:53.373Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a2/aa/60da938b8f0997ba3a911263c40d82b6f645a67902a490b46f3355e10fae/yarl-1.23.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b35d13d549077713e4414f927cdc388d62e543987c572baee613bf82f11a4b99", size = 123641, upload-time = "2026-03-01T22:04:42.841Z" },
+ { url = "https://files.pythonhosted.org/packages/24/84/e237607faf4e099dbb8a4f511cfd5efcb5f75918baad200ff7380635631b/yarl-1.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cbb0fef01f0c6b38cb0f39b1f78fc90b807e0e3c86a7ff3ce74ad77ce5c7880c", size = 86248, upload-time = "2026-03-01T22:04:44.757Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/0d/71ceabc14c146ba8ee3804ca7b3d42b1664c8440439de5214d366fec7d3a/yarl-1.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc52310451fc7c629e13c4e061cbe2dd01684d91f2f8ee2821b083c58bd72432", size = 85988, upload-time = "2026-03-01T22:04:46.365Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/6c/4a90d59c572e46b270ca132aca66954f1175abd691f74c1ef4c6711828e2/yarl-1.23.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2c6b50c7b0464165472b56b42d4c76a7b864597007d9c085e8b63e185cf4a7a", size = 100566, upload-time = "2026-03-01T22:04:47.639Z" },
+ { url = "https://files.pythonhosted.org/packages/49/fb/c438fb5108047e629f6282a371e6e91cf3f97ee087c4fb748a1f32ceef55/yarl-1.23.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:aafe5dcfda86c8af00386d7781d4c2181b5011b7be3f2add5e99899ea925df05", size = 92079, upload-time = "2026-03-01T22:04:48.925Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/13/d269aa1aed3e4f50a5a103f96327210cc5fa5dd2d50882778f13c7a14606/yarl-1.23.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9ee33b875f0b390564c1fb7bc528abf18c8ee6073b201c6ae8524aca778e2d83", size = 108741, upload-time = "2026-03-01T22:04:50.838Z" },
+ { url = "https://files.pythonhosted.org/packages/85/fb/115b16f22c37ea4437d323e472945bea97301c8ec6089868fa560abab590/yarl-1.23.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4c41e021bc6d7affb3364dc1e1e5fa9582b470f283748784bd6ea0558f87f42c", size = 108099, upload-time = "2026-03-01T22:04:52.499Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/64/c53487d9f4968045b8afa51aed7ca44f58b2589e772f32745f3744476c82/yarl-1.23.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:99c8a9ed30f4164bc4c14b37a90208836cbf50d4ce2a57c71d0f52c7fb4f7598", size = 102678, upload-time = "2026-03-01T22:04:55.176Z" },
+ { url = "https://files.pythonhosted.org/packages/85/59/cd98e556fbb2bf8fab29c1a722f67ad45c5f3447cac798ab85620d1e70af/yarl-1.23.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2af5c81a1f124609d5f33507082fc3f739959d4719b56877ab1ee7e7b3d602b", size = 100803, upload-time = "2026-03-01T22:04:56.588Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/c0/b39770b56d4a9f0bb5f77e2f1763cd2d75cc2f6c0131e3b4c360348fcd65/yarl-1.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6b41389c19b07c760c7e427a3462e8ab83c4bb087d127f0e854c706ce1b9215c", size = 100163, upload-time = "2026-03-01T22:04:58.492Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/64/6980f99ab00e1f0ff67cb84766c93d595b067eed07439cfccfc8fb28c1a6/yarl-1.23.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1dc702e42d0684f42d6519c8d581e49c96cefaaab16691f03566d30658ee8788", size = 93859, upload-time = "2026-03-01T22:05:00.268Z" },
+ { url = "https://files.pythonhosted.org/packages/38/69/912e6c5e146793e5d4b5fe39ff5b00f4d22463dfd5a162bec565ac757673/yarl-1.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0e40111274f340d32ebcc0a5668d54d2b552a6cca84c9475859d364b380e3222", size = 108202, upload-time = "2026-03-01T22:05:02.273Z" },
+ { url = "https://files.pythonhosted.org/packages/59/97/35ca6767524687ad64e5f5c31ad54bc76d585585a9fcb40f649e7e82ffed/yarl-1.23.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4764a6a7588561a9aef92f65bda2c4fb58fe7c675c0883862e6df97559de0bfb", size = 99866, upload-time = "2026-03-01T22:05:03.597Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/1c/1a3387ee6d73589f6f2a220ae06f2984f6c20b40c734989b0a44f5987308/yarl-1.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:03214408cfa590df47728b84c679ae4ef00be2428e11630277be0727eba2d7cc", size = 107852, upload-time = "2026-03-01T22:05:04.986Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/b8/35c0750fcd5a3f781058bfd954515dd4b1eab45e218cbb85cf11132215f1/yarl-1.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:170e26584b060879e29fac213e4228ef063f39128723807a312e5c7fec28eff2", size = 102919, upload-time = "2026-03-01T22:05:06.397Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/1c/9a1979aec4a81896d597bcb2177827f2dbee3f5b7cc48b2d0dadb644b41d/yarl-1.23.0-cp311-cp311-win32.whl", hash = "sha256:51430653db848d258336cfa0244427b17d12db63d42603a55f0d4546f50f25b5", size = 82602, upload-time = "2026-03-01T22:05:08.444Z" },
+ { url = "https://files.pythonhosted.org/packages/93/22/b85eca6fa2ad9491af48c973e4c8cf6b103a73dbb271fe3346949449fca0/yarl-1.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf49a3ae946a87083ef3a34c8f677ae4243f5b824bfc4c69672e72b3d6719d46", size = 87461, upload-time = "2026-03-01T22:05:10.145Z" },
+ { url = "https://files.pythonhosted.org/packages/93/95/07e3553fe6f113e6864a20bdc53a78113cda3b9ced8784ee52a52c9f80d8/yarl-1.23.0-cp311-cp311-win_arm64.whl", hash = "sha256:b39cb32a6582750b6cc77bfb3c49c0f8760dc18dc96ec9fb55fbb0f04e08b928", size = 82336, upload-time = "2026-03-01T22:05:11.554Z" },
+ { url = "https://files.pythonhosted.org/packages/88/8a/94615bc31022f711add374097ad4144d569e95ff3c38d39215d07ac153a0/yarl-1.23.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1932b6b8bba8d0160a9d1078aae5838a66039e8832d41d2992daa9a3a08f7860", size = 124737, upload-time = "2026-03-01T22:05:12.897Z" },
+ { url = "https://files.pythonhosted.org/packages/e3/6f/c6554045d59d64052698add01226bc867b52fe4a12373415d7991fdca95d/yarl-1.23.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:411225bae281f114067578891bc75534cfb3d92a3b4dfef7a6ca78ba354e6069", size = 87029, upload-time = "2026-03-01T22:05:14.376Z" },
+ { url = "https://files.pythonhosted.org/packages/19/2a/725ecc166d53438bc88f76822ed4b1e3b10756e790bafd7b523fe97c322d/yarl-1.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13a563739ae600a631c36ce096615fe307f131344588b0bc0daec108cdb47b25", size = 86310, upload-time = "2026-03-01T22:05:15.71Z" },
+ { url = "https://files.pythonhosted.org/packages/99/30/58260ed98e6ff7f90ba84442c1ddd758c9170d70327394a6227b310cd60f/yarl-1.23.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cbf44c5cb4a7633d078788e1b56387e3d3cf2b8139a3be38040b22d6c3221c8", size = 97587, upload-time = "2026-03-01T22:05:17.384Z" },
+ { url = "https://files.pythonhosted.org/packages/76/0a/8b08aac08b50682e65759f7f8dde98ae8168f72487e7357a5d684c581ef9/yarl-1.23.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53ad387048f6f09a8969631e4de3f1bf70c50e93545d64af4f751b2498755072", size = 92528, upload-time = "2026-03-01T22:05:18.804Z" },
+ { url = "https://files.pythonhosted.org/packages/52/07/0b7179101fe5f8385ec6c6bb5d0cb9f76bd9fb4a769591ab6fb5cdbfc69a/yarl-1.23.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4a59ba56f340334766f3a4442e0efd0af895fae9e2b204741ef885c446b3a1a8", size = 105339, upload-time = "2026-03-01T22:05:20.235Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/8a/36d82869ab5ec829ca8574dfcb92b51286fcfb1e9c7a73659616362dc880/yarl-1.23.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:803a3c3ce4acc62eaf01eaca1208dcf0783025ef27572c3336502b9c232005e7", size = 105061, upload-time = "2026-03-01T22:05:22.268Z" },
+ { url = "https://files.pythonhosted.org/packages/66/3e/868e5c3364b6cee19ff3e1a122194fa4ce51def02c61023970442162859e/yarl-1.23.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3d2bff8f37f8d0f96c7ec554d16945050d54462d6e95414babaa18bfafc7f51", size = 100132, upload-time = "2026-03-01T22:05:23.638Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/26/9c89acf82f08a52cb52d6d39454f8d18af15f9d386a23795389d1d423823/yarl-1.23.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c75eb09e8d55bceb4367e83496ff8ef2bc7ea6960efb38e978e8073ea59ecb67", size = 99289, upload-time = "2026-03-01T22:05:25.749Z" },
+ { url = "https://files.pythonhosted.org/packages/6f/54/5b0db00d2cb056922356104468019c0a132e89c8d3ab67d8ede9f4483d2a/yarl-1.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877b0738624280e34c55680d6054a307aa94f7d52fa0e3034a9cc6e790871da7", size = 96950, upload-time = "2026-03-01T22:05:27.318Z" },
+ { url = "https://files.pythonhosted.org/packages/f6/40/10fa93811fd439341fad7e0718a86aca0de9548023bbb403668d6555acab/yarl-1.23.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b5405bb8f0e783a988172993cfc627e4d9d00432d6bbac65a923041edacf997d", size = 93960, upload-time = "2026-03-01T22:05:28.738Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/d2/8ae2e6cd77d0805f4526e30ec43b6f9a3dfc542d401ac4990d178e4bf0cf/yarl-1.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c3a3598a832590c5a3ce56ab5576361b5688c12cb1d39429cf5dba30b510760", size = 104703, upload-time = "2026-03-01T22:05:30.438Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/0c/b3ceacf82c3fe21183ce35fa2acf5320af003d52bc1fcf5915077681142e/yarl-1.23.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8419ebd326430d1cbb7efb5292330a2cf39114e82df5cc3d83c9a0d5ebeaf2f2", size = 98325, upload-time = "2026-03-01T22:05:31.835Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/e0/12900edd28bdab91a69bd2554b85ad7b151f64e8b521fe16f9ad2f56477a/yarl-1.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:be61f6fff406ca40e3b1d84716fde398fc08bc63dd96d15f3a14230a0973ed86", size = 105067, upload-time = "2026-03-01T22:05:33.358Z" },
+ { url = "https://files.pythonhosted.org/packages/15/61/74bb1182cf79c9bbe4eb6b1f14a57a22d7a0be5e9cedf8e2d5c2086474c3/yarl-1.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ceb13c5c858d01321b5d9bb65e4cf37a92169ea470b70fec6f236b2c9dd7e34", size = 100285, upload-time = "2026-03-01T22:05:35.4Z" },
+ { url = "https://files.pythonhosted.org/packages/69/7f/cd5ef733f2550de6241bd8bd8c3febc78158b9d75f197d9c7baa113436af/yarl-1.23.0-cp312-cp312-win32.whl", hash = "sha256:fffc45637bcd6538de8b85f51e3df3223e4ad89bccbfca0481c08c7fc8b7ed7d", size = 82359, upload-time = "2026-03-01T22:05:36.811Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/be/25216a49daeeb7af2bec0db22d5e7df08ed1d7c9f65d78b14f3b74fd72fc/yarl-1.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:f69f57305656a4852f2a7203efc661d8c042e6cc67f7acd97d8667fb448a426e", size = 87674, upload-time = "2026-03-01T22:05:38.171Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/35/aeab955d6c425b227d5b7247eafb24f2653fedc32f95373a001af5dfeb9e/yarl-1.23.0-cp312-cp312-win_arm64.whl", hash = "sha256:6e87a6e8735b44816e7db0b2fbc9686932df473c826b0d9743148432e10bb9b9", size = 81879, upload-time = "2026-03-01T22:05:40.006Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/4b/a0a6e5d0ee8a2f3a373ddef8a4097d74ac901ac363eea1440464ccbe0898/yarl-1.23.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:16c6994ac35c3e74fb0ae93323bf8b9c2a9088d55946109489667c510a7d010e", size = 123796, upload-time = "2026-03-01T22:05:41.412Z" },
+ { url = "https://files.pythonhosted.org/packages/67/b6/8925d68af039b835ae876db5838e82e76ec87b9782ecc97e192b809c4831/yarl-1.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a42e651629dafb64fd5b0286a3580613702b5809ad3f24934ea87595804f2c5", size = 86547, upload-time = "2026-03-01T22:05:42.841Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/50/06d511cc4b8e0360d3c94af051a768e84b755c5eb031b12adaaab6dec6e5/yarl-1.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c6b9461a2a8b47c65eef63bb1c76a4f1c119618ffa99ea79bc5bb1e46c5821b", size = 85854, upload-time = "2026-03-01T22:05:44.85Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/f4/4e30b250927ffdab4db70da08b9b8d2194d7c7b400167b8fbeca1e4701ca/yarl-1.23.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2569b67d616eab450d262ca7cb9f9e19d2f718c70a8b88712859359d0ab17035", size = 98351, upload-time = "2026-03-01T22:05:46.836Z" },
+ { url = "https://files.pythonhosted.org/packages/86/fc/4118c5671ea948208bdb1492d8b76bdf1453d3e73df051f939f563e7dcc5/yarl-1.23.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e9d9a4d06d3481eab79803beb4d9bd6f6a8e781ec078ac70d7ef2dcc29d1bea5", size = 92711, upload-time = "2026-03-01T22:05:48.316Z" },
+ { url = "https://files.pythonhosted.org/packages/56/11/1ed91d42bd9e73c13dc9e7eb0dd92298d75e7ac4dd7f046ad0c472e231cd/yarl-1.23.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f514f6474e04179d3d33175ed3f3e31434d3130d42ec153540d5b157deefd735", size = 106014, upload-time = "2026-03-01T22:05:50.028Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/c9/74e44e056a23fbc33aca71779ef450ca648a5bc472bdad7a82339918f818/yarl-1.23.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fda207c815b253e34f7e1909840fd14299567b1c0eb4908f8c2ce01a41265401", size = 105557, upload-time = "2026-03-01T22:05:51.416Z" },
+ { url = "https://files.pythonhosted.org/packages/66/fe/b1e10b08d287f518994f1e2ff9b6d26f0adeecd8dd7d533b01bab29a3eda/yarl-1.23.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34b6cf500e61c90f305094911f9acc9c86da1a05a7a3f5be9f68817043f486e4", size = 101559, upload-time = "2026-03-01T22:05:52.872Z" },
+ { url = "https://files.pythonhosted.org/packages/72/59/c5b8d94b14e3d3c2a9c20cb100119fd534ab5a14b93673ab4cc4a4141ea5/yarl-1.23.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d7504f2b476d21653e4d143f44a175f7f751cd41233525312696c76aa3dbb23f", size = 100502, upload-time = "2026-03-01T22:05:54.954Z" },
+ { url = "https://files.pythonhosted.org/packages/77/4f/96976cb54cbfc5c9fd73ed4c51804f92f209481d1fb190981c0f8a07a1d7/yarl-1.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:578110dd426f0d209d1509244e6d4a3f1a3e9077655d98c5f22583d63252a08a", size = 98027, upload-time = "2026-03-01T22:05:56.409Z" },
+ { url = "https://files.pythonhosted.org/packages/63/6e/904c4f476471afdbad6b7e5b70362fb5810e35cd7466529a97322b6f5556/yarl-1.23.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:609d3614d78d74ebe35f54953c5bbd2ac647a7ddb9c30a5d877580f5e86b22f2", size = 95369, upload-time = "2026-03-01T22:05:58.141Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/40/acfcdb3b5f9d68ef499e39e04d25e141fe90661f9d54114556cf83be8353/yarl-1.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4966242ec68afc74c122f8459abd597afd7d8a60dc93d695c1334c5fd25f762f", size = 105565, upload-time = "2026-03-01T22:06:00.286Z" },
+ { url = "https://files.pythonhosted.org/packages/5e/c6/31e28f3a6ba2869c43d124f37ea5260cac9c9281df803c354b31f4dd1f3c/yarl-1.23.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e0fd068364a6759bc794459f0a735ab151d11304346332489c7972bacbe9e72b", size = 99813, upload-time = "2026-03-01T22:06:01.712Z" },
+ { url = "https://files.pythonhosted.org/packages/08/1f/6f65f59e72d54aa467119b63fc0b0b1762eff0232db1f4720cd89e2f4a17/yarl-1.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:39004f0ad156da43e86aa71f44e033de68a44e5a31fc53507b36dd253970054a", size = 105632, upload-time = "2026-03-01T22:06:03.188Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/c4/18b178a69935f9e7a338127d5b77d868fdc0f0e49becd286d51b3a18c61d/yarl-1.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e5723c01a56c5028c807c701aa66722916d2747ad737a046853f6c46f4875543", size = 101895, upload-time = "2026-03-01T22:06:04.651Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/54/f5b870b5505663911dba950a8e4776a0dbd51c9c54c0ae88e823e4b874a0/yarl-1.23.0-cp313-cp313-win32.whl", hash = "sha256:1b6b572edd95b4fa8df75de10b04bc81acc87c1c7d16bcdd2035b09d30acc957", size = 82356, upload-time = "2026-03-01T22:06:06.04Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/84/266e8da36879c6edcd37b02b547e2d9ecdfea776be49598e75696e3316e1/yarl-1.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:baaf55442359053c7d62f6f8413a62adba3205119bcb6f49594894d8be47e5e3", size = 87515, upload-time = "2026-03-01T22:06:08.107Z" },
+ { url = "https://files.pythonhosted.org/packages/00/fd/7e1c66efad35e1649114fa13f17485f62881ad58edeeb7f49f8c5e748bf9/yarl-1.23.0-cp313-cp313-win_arm64.whl", hash = "sha256:fb4948814a2a98e3912505f09c9e7493b1506226afb1f881825368d6fb776ee3", size = 81785, upload-time = "2026-03-01T22:06:10.181Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/fc/119dd07004f17ea43bb91e3ece6587759edd7519d6b086d16bfbd3319982/yarl-1.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:aecfed0b41aa72b7881712c65cf764e39ce2ec352324f5e0837c7048d9e6daaa", size = 130719, upload-time = "2026-03-01T22:06:11.708Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/0d/9f2348502fbb3af409e8f47730282cd6bc80dec6630c1e06374d882d6eb2/yarl-1.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a41bcf68efd19073376eb8cf948b8d9be0af26256403e512bb18f3966f1f9120", size = 89690, upload-time = "2026-03-01T22:06:13.429Z" },
+ { url = "https://files.pythonhosted.org/packages/50/93/e88f3c80971b42cfc83f50a51b9d165a1dbf154b97005f2994a79f212a07/yarl-1.23.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cde9a2ecd91668bcb7f077c4966d8ceddb60af01b52e6e3e2680e4cf00ad1a59", size = 89851, upload-time = "2026-03-01T22:06:15.53Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/07/61c9dd8ba8f86473263b4036f70fb594c09e99c0d9737a799dfd8bc85651/yarl-1.23.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5023346c4ee7992febc0068e7593de5fa2bf611848c08404b35ebbb76b1b0512", size = 95874, upload-time = "2026-03-01T22:06:17.553Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/e9/f9ff8ceefba599eac6abddcfb0b3bee9b9e636e96dbf54342a8577252379/yarl-1.23.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1009abedb49ae95b136a8904a3f71b342f849ffeced2d3747bf29caeda218c4", size = 88710, upload-time = "2026-03-01T22:06:19.004Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/78/0231bfcc5d4c8eec220bc2f9ef82cb4566192ea867a7c5b4148f44f6cbcd/yarl-1.23.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a8d00f29b42f534cc8aa3931cfe773b13b23e561e10d2b26f27a8d309b0e82a1", size = 101033, upload-time = "2026-03-01T22:06:21.203Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/9b/30ea5239a61786f18fd25797151a17fbb3be176977187a48d541b5447dd4/yarl-1.23.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:95451e6ce06c3e104556d73b559f5da6c34a069b6b62946d3ad66afcd51642ea", size = 100817, upload-time = "2026-03-01T22:06:22.738Z" },
+ { url = "https://files.pythonhosted.org/packages/62/e2/a4980481071791bc83bce2b7a1a1f7adcabfa366007518b4b845e92eeee3/yarl-1.23.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531ef597132086b6cf96faa7c6c1dcd0361dd5f1694e5cc30375907b9b7d3ea9", size = 97482, upload-time = "2026-03-01T22:06:24.21Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/1e/304a00cf5f6100414c4b5a01fc7ff9ee724b62158a08df2f8170dfc72a2d/yarl-1.23.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88f9fb0116fbfcefcab70f85cf4b74a2b6ce5d199c41345296f49d974ddb4123", size = 95949, upload-time = "2026-03-01T22:06:25.697Z" },
+ { url = "https://files.pythonhosted.org/packages/68/03/093f4055ed4cae649ac53bca3d180bd37102e9e11d048588e9ab0c0108d0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e7b0460976dc75cb87ad9cc1f9899a4b97751e7d4e77ab840fc9b6d377b8fd24", size = 95839, upload-time = "2026-03-01T22:06:27.309Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/28/4c75ebb108f322aa8f917ae10a8ffa4f07cae10a8a627b64e578617df6a0/yarl-1.23.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:115136c4a426f9da976187d238e84139ff6b51a20839aa6e3720cd1026d768de", size = 90696, upload-time = "2026-03-01T22:06:29.048Z" },
+ { url = "https://files.pythonhosted.org/packages/23/9c/42c2e2dd91c1a570402f51bdf066bfdb1241c2240ba001967bad778e77b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ead11956716a940c1abc816b7df3fa2b84d06eaed8832ca32f5c5e058c65506b", size = 100865, upload-time = "2026-03-01T22:06:30.525Z" },
+ { url = "https://files.pythonhosted.org/packages/74/05/1bcd60a8a0a914d462c305137246b6f9d167628d73568505fce3f1cb2e65/yarl-1.23.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:fe8f8f5e70e6dbdfca9882cd9deaac058729bcf323cf7a58660901e55c9c94f6", size = 96234, upload-time = "2026-03-01T22:06:32.692Z" },
+ { url = "https://files.pythonhosted.org/packages/90/b2/f52381aac396d6778ce516b7bc149c79e65bfc068b5de2857ab69eeea3b7/yarl-1.23.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:a0e317df055958a0c1e79e5d2aa5a5eaa4a6d05a20d4b0c9c3f48918139c9fc6", size = 100295, upload-time = "2026-03-01T22:06:34.268Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/e8/638bae5bbf1113a659b2435d8895474598afe38b4a837103764f603aba56/yarl-1.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f0fd84de0c957b2d280143522c4f91a73aada1923caee763e24a2b3fda9f8a5", size = 97784, upload-time = "2026-03-01T22:06:35.864Z" },
+ { url = "https://files.pythonhosted.org/packages/80/25/a3892b46182c586c202629fc2159aa13975d3741d52ebd7347fd501d48d5/yarl-1.23.0-cp313-cp313t-win32.whl", hash = "sha256:93a784271881035ab4406a172edb0faecb6e7d00f4b53dc2f55919d6c9688595", size = 88313, upload-time = "2026-03-01T22:06:37.39Z" },
+ { url = "https://files.pythonhosted.org/packages/43/68/8c5b36aa5178900b37387937bc2c2fe0e9505537f713495472dcf6f6fccc/yarl-1.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dd00607bffbf30250fe108065f07453ec124dbf223420f57f5e749b04295e090", size = 94932, upload-time = "2026-03-01T22:06:39.579Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/cc/d79ba8292f51f81f4dc533a8ccfb9fc6992cabf0998ed3245de7589dc07c/yarl-1.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ac09d42f48f80c9ee1635b2fcaa819496a44502737660d3c0f2ade7526d29144", size = 84786, upload-time = "2026-03-01T22:06:41.988Z" },
+ { url = "https://files.pythonhosted.org/packages/90/98/b85a038d65d1b92c3903ab89444f48d3cee490a883477b716d7a24b1a78c/yarl-1.23.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:21d1b7305a71a15b4794b5ff22e8eef96ff4a6d7f9657155e5aa419444b28912", size = 124455, upload-time = "2026-03-01T22:06:43.615Z" },
+ { url = "https://files.pythonhosted.org/packages/39/54/bc2b45559f86543d163b6e294417a107bb87557609007c007ad889afec18/yarl-1.23.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:85610b4f27f69984932a7abbe52703688de3724d9f72bceb1cca667deff27474", size = 86752, upload-time = "2026-03-01T22:06:45.425Z" },
+ { url = "https://files.pythonhosted.org/packages/24/f9/e8242b68362bffe6fb536c8db5076861466fc780f0f1b479fc4ffbebb128/yarl-1.23.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23f371bd662cf44a7630d4d113101eafc0cfa7518a2760d20760b26021454719", size = 86291, upload-time = "2026-03-01T22:06:46.974Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/d8/d1cb2378c81dd729e98c716582b1ccb08357e8488e4c24714658cc6630e8/yarl-1.23.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4a80f77dc1acaaa61f0934176fccca7096d9b1ff08c8ba9cddf5ae034a24319", size = 99026, upload-time = "2026-03-01T22:06:48.459Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/ff/7196790538f31debe3341283b5b0707e7feb947620fc5e8236ef28d44f72/yarl-1.23.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:bd654fad46d8d9e823afbb4f87c79160b5a374ed1ff5bde24e542e6ba8f41434", size = 92355, upload-time = "2026-03-01T22:06:50.306Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/56/25d58c3eddde825890a5fe6aa1866228377354a3c39262235234ab5f616b/yarl-1.23.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:682bae25f0a0dd23a056739f23a134db9f52a63e2afd6bfb37ddc76292bbd723", size = 106417, upload-time = "2026-03-01T22:06:52.1Z" },
+ { url = "https://files.pythonhosted.org/packages/51/8a/882c0e7bc8277eb895b31bce0138f51a1ba551fc2e1ec6753ffc1e7c1377/yarl-1.23.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a82836cab5f197a0514235aaf7ffccdc886ccdaa2324bc0aafdd4ae898103039", size = 106422, upload-time = "2026-03-01T22:06:54.424Z" },
+ { url = "https://files.pythonhosted.org/packages/42/2b/fef67d616931055bf3d6764885990a3ac647d68734a2d6a9e1d13de437a2/yarl-1.23.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c57676bdedc94cd3bc37724cf6f8cd2779f02f6aba48de45feca073e714fe52", size = 101915, upload-time = "2026-03-01T22:06:55.895Z" },
+ { url = "https://files.pythonhosted.org/packages/18/6a/530e16aebce27c5937920f3431c628a29a4b6b430fab3fd1c117b26ff3f6/yarl-1.23.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c7f8dc16c498ff06497c015642333219871effba93e4a2e8604a06264aca5c5c", size = 100690, upload-time = "2026-03-01T22:06:58.21Z" },
+ { url = "https://files.pythonhosted.org/packages/88/08/93749219179a45e27b036e03260fda05190b911de8e18225c294ac95bbc9/yarl-1.23.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5ee586fb17ff8f90c91cf73c6108a434b02d69925f44f5f8e0d7f2f260607eae", size = 98750, upload-time = "2026-03-01T22:06:59.794Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/cf/ea424a004969f5d81a362110a6ac1496d79efdc6d50c2c4b2e3ea0fc2519/yarl-1.23.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:17235362f580149742739cc3828b80e24029d08cbb9c4bda0242c7b5bc610a8e", size = 94685, upload-time = "2026-03-01T22:07:01.375Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/b7/14341481fe568e2b0408bcf1484c652accafe06a0ade9387b5d3fd9df446/yarl-1.23.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0793e2bd0cf14234983bbb371591e6bea9e876ddf6896cdcc93450996b0b5c85", size = 106009, upload-time = "2026-03-01T22:07:03.151Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/e6/5c744a9b54f4e8007ad35bce96fbc9218338e84812d36f3390cea616881a/yarl-1.23.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3650dc2480f94f7116c364096bc84b1d602f44224ef7d5c7208425915c0475dd", size = 100033, upload-time = "2026-03-01T22:07:04.701Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/23/e3bfc188d0b400f025bc49d99793d02c9abe15752138dcc27e4eaf0c4a9e/yarl-1.23.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f40e782d49630ad384db66d4d8b73ff4f1b8955dc12e26b09a3e3af064b3b9d6", size = 106483, upload-time = "2026-03-01T22:07:06.231Z" },
+ { url = "https://files.pythonhosted.org/packages/72/42/f0505f949a90b3f8b7a363d6cbdf398f6e6c58946d85c6d3a3bc70595b26/yarl-1.23.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94f8575fbdf81749008d980c17796097e645574a3b8c28ee313931068dad14fe", size = 102175, upload-time = "2026-03-01T22:07:08.4Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/65/b39290f1d892a9dd671d1c722014ca062a9c35d60885d57e5375db0404b5/yarl-1.23.0-cp314-cp314-win32.whl", hash = "sha256:c8aa34a5c864db1087d911a0b902d60d203ea3607d91f615acd3f3108ac32169", size = 83871, upload-time = "2026-03-01T22:07:09.968Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/5b/9b92f54c784c26e2a422e55a8d2607ab15b7ea3349e28359282f84f01d43/yarl-1.23.0-cp314-cp314-win_amd64.whl", hash = "sha256:63e92247f383c85ab00dd0091e8c3fa331a96e865459f5ee80353c70a4a42d70", size = 89093, upload-time = "2026-03-01T22:07:11.501Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/7d/8a84dc9381fd4412d5e7ff04926f9865f6372b4c2fd91e10092e65d29eb8/yarl-1.23.0-cp314-cp314-win_arm64.whl", hash = "sha256:70efd20be968c76ece7baa8dafe04c5be06abc57f754d6f36f3741f7aa7a208e", size = 83384, upload-time = "2026-03-01T22:07:13.069Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/8d/d2fad34b1c08aa161b74394183daa7d800141aaaee207317e82c790b418d/yarl-1.23.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:9a18d6f9359e45722c064c97464ec883eb0e0366d33eda61cb19a244bf222679", size = 131019, upload-time = "2026-03-01T22:07:14.903Z" },
+ { url = "https://files.pythonhosted.org/packages/19/ff/33009a39d3ccf4b94d7d7880dfe17fb5816c5a4fe0096d9b56abceea9ac7/yarl-1.23.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2803ed8b21ca47a43da80a6fd1ed3019d30061f7061daa35ac54f63933409412", size = 89894, upload-time = "2026-03-01T22:07:17.372Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/f1/dab7ac5e7306fb79c0190766a3c00b4cb8d09a1f390ded68c85a5934faf5/yarl-1.23.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:394906945aa8b19fc14a61cf69743a868bb8c465efe85eee687109cc540b98f4", size = 89979, upload-time = "2026-03-01T22:07:19.361Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/b1/08e95f3caee1fad6e65017b9f26c1d79877b502622d60e517de01e72f95d/yarl-1.23.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71d006bee8397a4a89f469b8deb22469fe7508132d3c17fa6ed871e79832691c", size = 95943, upload-time = "2026-03-01T22:07:21.266Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/cc/6409f9018864a6aa186c61175b977131f373f1988e198e031236916e87e4/yarl-1.23.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:62694e275c93d54f7ccedcfef57d42761b2aad5234b6be1f3e3026cae4001cd4", size = 88786, upload-time = "2026-03-01T22:07:23.129Z" },
+ { url = "https://files.pythonhosted.org/packages/76/40/cc22d1d7714b717fde2006fad2ced5efe5580606cb059ae42117542122f3/yarl-1.23.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31de1613658308efdb21ada98cbc86a97c181aa050ba22a808120bb5be3ab94", size = 101307, upload-time = "2026-03-01T22:07:24.689Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/0d/476c38e85ddb4c6ec6b20b815bdd779aa386a013f3d8b85516feee55c8dc/yarl-1.23.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb1e8b8d66c278b21d13b0a7ca22c41dd757a7c209c6b12c313e445c31dd3b28", size = 100904, upload-time = "2026-03-01T22:07:26.287Z" },
+ { url = "https://files.pythonhosted.org/packages/72/32/0abe4a76d59adf2081dcb0397168553ece4616ada1c54d1c49d8936c74f8/yarl-1.23.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50f9d8d531dfb767c565f348f33dd5139a6c43f5cbdf3f67da40d54241df93f6", size = 97728, upload-time = "2026-03-01T22:07:27.906Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/35/7b30f4810fba112f60f5a43237545867504e15b1c7647a785fbaf588fac2/yarl-1.23.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:575aa4405a656e61a540f4a80eaa5260f2a38fff7bfdc4b5f611840d76e9e277", size = 95964, upload-time = "2026-03-01T22:07:30.198Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/86/ed7a73ab85ef00e8bb70b0cb5421d8a2a625b81a333941a469a6f4022828/yarl-1.23.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:041b1a4cefacf65840b4e295c6985f334ba83c30607441ae3cf206a0eed1a2e4", size = 95882, upload-time = "2026-03-01T22:07:32.132Z" },
+ { url = "https://files.pythonhosted.org/packages/19/90/d56967f61a29d8498efb7afb651e0b2b422a1e9b47b0ab5f4e40a19b699b/yarl-1.23.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:d38c1e8231722c4ce40d7593f28d92b5fc72f3e9774fe73d7e800ec32299f63a", size = 90797, upload-time = "2026-03-01T22:07:34.404Z" },
+ { url = "https://files.pythonhosted.org/packages/72/00/8b8f76909259f56647adb1011d7ed8b321bcf97e464515c65016a47ecdf0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d53834e23c015ee83a99377db6e5e37d8484f333edb03bd15b4bc312cc7254fb", size = 101023, upload-time = "2026-03-01T22:07:35.953Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/e2/cab11b126fb7d440281b7df8e9ddbe4851e70a4dde47a202b6642586b8d9/yarl-1.23.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2e27c8841126e017dd2a054a95771569e6070b9ee1b133366d8b31beb5018a41", size = 96227, upload-time = "2026-03-01T22:07:37.594Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/9b/2c893e16bfc50e6b2edf76c1a9eb6cb0c744346197e74c65e99ad8d634d0/yarl-1.23.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:76855800ac56f878847a09ce6dba727c93ca2d89c9e9d63002d26b916810b0a2", size = 100302, upload-time = "2026-03-01T22:07:39.334Z" },
+ { url = "https://files.pythonhosted.org/packages/28/ec/5498c4e3a6d5f1003beb23405671c2eb9cdbf3067d1c80f15eeafe301010/yarl-1.23.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e09fd068c2e169a7070d83d3bde728a4d48de0549f975290be3c108c02e499b4", size = 98202, upload-time = "2026-03-01T22:07:41.717Z" },
+ { url = "https://files.pythonhosted.org/packages/fe/c3/cd737e2d45e70717907f83e146f6949f20cc23cd4bf7b2688727763aa458/yarl-1.23.0-cp314-cp314t-win32.whl", hash = "sha256:73309162a6a571d4cbd3b6a1dcc703c7311843ae0d1578df6f09be4e98df38d4", size = 90558, upload-time = "2026-03-01T22:07:43.433Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/19/3774d162f6732d1cfb0b47b4140a942a35ca82bb19b6db1f80e9e7bdc8f8/yarl-1.23.0-cp314-cp314t-win_amd64.whl", hash = "sha256:4503053d296bc6e4cbd1fad61cf3b6e33b939886c4f249ba7c78b602214fabe2", size = 97610, upload-time = "2026-03-01T22:07:45.773Z" },
+ { url = "https://files.pythonhosted.org/packages/51/47/3fa2286c3cb162c71cdb34c4224d5745a1ceceb391b2bd9b19b668a8d724/yarl-1.23.0-cp314-cp314t-win_arm64.whl", hash = "sha256:44bb7bef4ea409384e3f8bc36c063d77ea1b8d4a5b2706956c0d6695f07dcc25", size = 86041, upload-time = "2026-03-01T22:07:49.026Z" },
+ { url = "https://files.pythonhosted.org/packages/69/68/c8739671f5699c7dc470580a4f821ef37c32c4cb0b047ce223a7f115757f/yarl-1.23.0-py3-none-any.whl", hash = "sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f", size = 48288, upload-time = "2026-03-01T22:07:51.388Z" },
+]