diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 7a45b6c28e695..664ed45cdc18c 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -38,7 +38,7 @@ jobs: shell: bash run: rm -rf llama-index-core/llama_index/core/_static/nltk_cache/corpora/stopwords.zip llama-index-core/llama_index/core/_static/nltk_cache/tokenizers/punkt.zip - name: Build and publish to pypi - uses: JRubics/poetry-publish@v2.0 + uses: JRubics/poetry-publish@v2.1 with: python_version: ${{ env.PYTHON_VERSION }} pypi_token: ${{ secrets.LLAMA_INDEX_PYPI_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 2db30f0c0e40a..ce209c183d659 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,122 @@ # ChangeLog +## [2025-01-25] + +### `llama-index-core` [0.12.14] + +- Fix agentworkflow handoffs for non-openai llms (#17631) +- small fixes to the multi-agent workflow demo notebook (#17628) + +### `llama-index-embeddings-bedrock` [0.5.0] + +- Implement async bedrock embeddings (#17610) + +### `llama-index-llms-bedrock-converse` [0.4.4] + +- Fix prompt stacking in bedrock converse (#17613) + +### `llama-index-llms-deepseek` [0.1.0] + +- DeepSeek official API LLM (#17625) + +### `llama-index-readers-google` [0.6.0] + +- GoogleDriveReader support file extensions (#17620) + +## [2025-01-23] + +### `llama-index-core` [0.12.13] + +- Fixing header_path bug re: markdown level vs. stack depth in MarkdownNodeParser (#17602) +- Advanced text to sql sample rows, adding row retrieval for few-shot prompts (#17479) +- Made the message role of ReAct observation configurable (#17521) +- fix reconstructing a tool in AgentWorkflow (#17596) +- support content blocks in chat templates (#17603) +- Add contextual retrieval support with a new `DocumentContextExtractor` (#17367) + +### `llama-index-graph-stores-memgraph` [0.2.1] + +- Vector index support for Memgraph's integration (#17570) + +### `llama-index-graph-stores-neo4j` [0.4.6] + +- Improves connections for neo4j objects and adds some tests (#17562) + +### `llama-index-indices-managed-llama-cloud` [0.6.4] + +- Add framework integration for composite retrieval (#17536) + +### `llama-index-llms-langchain` [0.5.1] + +- get valid string when streaming (#17566) + +### `llama-index-llms-mistralai` [0.3.2] + +- update function calling models in mistral (#17604) + +### `llama-index-llms-openai` [0.3.14] + +- fix openai.BadRequestError: Invalid value for 'content': expected a string, got null for tool calls (#17556) + +### `llama-index-readers-file` [0.4.3] + +- Refactor markdown_to_tups method to better handle multi-level headers (#17508) + +### `llama-index-readers-web` [0.3.5] + +- feat: Agentql Web Loader (#17575) + +### `llama-index-tools-linkup-research` [0.3.0] + +- add linkup tool (#17541) + +### `llama-index-tools-notion` [0.3.1] + +- fix: correct the input params of "load_data" in NotionPageReader (#17529) + +### `llama-index-vector-stores-pinecone` [0.4.3] + +- build: 🆙 replace pinecone-client with pinecone package (#17587) + +### `llama-index-vector-stores-postgres` [0.4.2] + +- Add support for halfvec vector type (#17534) + +## [2025-01-20] + +### `llama-index-core` [0.12.12] + +- feat: add AgentWorkflow system to support single and multi-agent workflows (#17237) +- Fix image-path validation in ImageNode (#17558) + +### `llama-index-indices-managed-vectara` [0.4.0] + +- (breaking change) API Migration (#17545) + +### `llama-index-llms-anthropic` [0.6.4] + +- feat: support direct PDF handling for Anthropic (#17506) + +### `llama-index-llms-fireworks` [0.3.1] + +- Deepseek-v3 is now supported by fireworks (#17518) + +### `llama-index-llms-stepfun` [1.0.0] + +- feat: add stepfun integrations (#17514) + +### `llama-index-multi-modal-llms-gemini` [0.5.0] + +- refact: make GeminiMultiModal a thin wrapper around Gemini (#17501) + +### `llama-index-postprocessor-longllmlingua` [0.4.0] + +- Add longllmlingua2 integration (#17531) + +### `llama-index-readers-web` [0.3.4] + +- feat: Hyperbrowser Web Reader (#17489) + ## [2025-01-15] ### `llama-index-core` [0.12.11] diff --git a/README.md b/README.md index d17f7f12fc941..1cab62ad2681c 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ LlamaIndex.TS [(Typescript/Javascript)](https://github.com/run-llama/LlamaIndexT [Documentation](https://docs.llamaindex.ai/en/stable/) -[Twitter](https://twitter.com/llama_index) +[X (formerly Twitter)](https://x.com/llama_index) [Discord](https://discord.gg/dGcwcsnxhU) diff --git a/docs/docs/CHANGELOG.md b/docs/docs/CHANGELOG.md index 2db30f0c0e40a..ce209c183d659 100644 --- a/docs/docs/CHANGELOG.md +++ b/docs/docs/CHANGELOG.md @@ -1,5 +1,122 @@ # ChangeLog +## [2025-01-25] + +### `llama-index-core` [0.12.14] + +- Fix agentworkflow handoffs for non-openai llms (#17631) +- small fixes to the multi-agent workflow demo notebook (#17628) + +### `llama-index-embeddings-bedrock` [0.5.0] + +- Implement async bedrock embeddings (#17610) + +### `llama-index-llms-bedrock-converse` [0.4.4] + +- Fix prompt stacking in bedrock converse (#17613) + +### `llama-index-llms-deepseek` [0.1.0] + +- DeepSeek official API LLM (#17625) + +### `llama-index-readers-google` [0.6.0] + +- GoogleDriveReader support file extensions (#17620) + +## [2025-01-23] + +### `llama-index-core` [0.12.13] + +- Fixing header_path bug re: markdown level vs. stack depth in MarkdownNodeParser (#17602) +- Advanced text to sql sample rows, adding row retrieval for few-shot prompts (#17479) +- Made the message role of ReAct observation configurable (#17521) +- fix reconstructing a tool in AgentWorkflow (#17596) +- support content blocks in chat templates (#17603) +- Add contextual retrieval support with a new `DocumentContextExtractor` (#17367) + +### `llama-index-graph-stores-memgraph` [0.2.1] + +- Vector index support for Memgraph's integration (#17570) + +### `llama-index-graph-stores-neo4j` [0.4.6] + +- Improves connections for neo4j objects and adds some tests (#17562) + +### `llama-index-indices-managed-llama-cloud` [0.6.4] + +- Add framework integration for composite retrieval (#17536) + +### `llama-index-llms-langchain` [0.5.1] + +- get valid string when streaming (#17566) + +### `llama-index-llms-mistralai` [0.3.2] + +- update function calling models in mistral (#17604) + +### `llama-index-llms-openai` [0.3.14] + +- fix openai.BadRequestError: Invalid value for 'content': expected a string, got null for tool calls (#17556) + +### `llama-index-readers-file` [0.4.3] + +- Refactor markdown_to_tups method to better handle multi-level headers (#17508) + +### `llama-index-readers-web` [0.3.5] + +- feat: Agentql Web Loader (#17575) + +### `llama-index-tools-linkup-research` [0.3.0] + +- add linkup tool (#17541) + +### `llama-index-tools-notion` [0.3.1] + +- fix: correct the input params of "load_data" in NotionPageReader (#17529) + +### `llama-index-vector-stores-pinecone` [0.4.3] + +- build: 🆙 replace pinecone-client with pinecone package (#17587) + +### `llama-index-vector-stores-postgres` [0.4.2] + +- Add support for halfvec vector type (#17534) + +## [2025-01-20] + +### `llama-index-core` [0.12.12] + +- feat: add AgentWorkflow system to support single and multi-agent workflows (#17237) +- Fix image-path validation in ImageNode (#17558) + +### `llama-index-indices-managed-vectara` [0.4.0] + +- (breaking change) API Migration (#17545) + +### `llama-index-llms-anthropic` [0.6.4] + +- feat: support direct PDF handling for Anthropic (#17506) + +### `llama-index-llms-fireworks` [0.3.1] + +- Deepseek-v3 is now supported by fireworks (#17518) + +### `llama-index-llms-stepfun` [1.0.0] + +- feat: add stepfun integrations (#17514) + +### `llama-index-multi-modal-llms-gemini` [0.5.0] + +- refact: make GeminiMultiModal a thin wrapper around Gemini (#17501) + +### `llama-index-postprocessor-longllmlingua` [0.4.0] + +- Add longllmlingua2 integration (#17531) + +### `llama-index-readers-web` [0.3.4] + +- feat: Hyperbrowser Web Reader (#17489) + ## [2025-01-15] ### `llama-index-core` [0.12.11] diff --git a/docs/docs/api_reference/extractors/documentcontext.md b/docs/docs/api_reference/extractors/documentcontext.md new file mode 100644 index 0000000000000..58a468e2e14fc --- /dev/null +++ b/docs/docs/api_reference/extractors/documentcontext.md @@ -0,0 +1,4 @@ +::: llama_index.extractors + options: + members: + - DocumentContextExtractor diff --git a/docs/docs/api_reference/llms/deepseek.md b/docs/docs/api_reference/llms/deepseek.md new file mode 100644 index 0000000000000..5fbc573672350 --- /dev/null +++ b/docs/docs/api_reference/llms/deepseek.md @@ -0,0 +1,4 @@ +::: llama_index.llms.deepseek + options: + members: + - DeepSeek diff --git a/docs/docs/api_reference/tools/linkup_research.md b/docs/docs/api_reference/tools/linkup_research.md new file mode 100644 index 0000000000000..6248bb1f3f972 --- /dev/null +++ b/docs/docs/api_reference/tools/linkup_research.md @@ -0,0 +1,4 @@ +::: llama_index.tools.linkup_research + options: + members: + - LinkupToolSpec diff --git a/docs/docs/examples/agent/agent_workflow_basic.ipynb b/docs/docs/examples/agent/agent_workflow_basic.ipynb index 9b1b25c9456af..66eb80447e865 100644 --- a/docs/docs/examples/agent/agent_workflow_basic.ipynb +++ b/docs/docs/examples/agent/agent_workflow_basic.ipynb @@ -143,7 +143,7 @@ "source": [ "## Maintaining State\n", "\n", - "By default, the `AgentWorkflow` will maintain statless between runs. This means that the agent will not have any memory of previous runs.\n", + "By default, the `AgentWorkflow` will maintain stateless between runs. This means that the agent will not have any memory of previous runs.\n", "\n", "To maintain state, we need to keep track of the previous state. Since the `AgentWorkflow` is a `Workflow`, the state is stored in the `Context`. This can be passed between runs to maintain state and history." ] @@ -332,7 +332,9 @@ "\n", "\n", "async def set_name(ctx: Context, name: str) -> str:\n", - " await ctx.set(\"name\", name)\n", + " state = await ctx.get(\"state\")\n", + " state[\"name\"] = name\n", + " await ctx.set(\"state\", state)\n", " return f\"Name set to {name}\"\n", "\n", "\n", @@ -348,8 +350,8 @@ "response = await workflow.run(user_msg=\"My name is Logan\", ctx=ctx)\n", "print(str(response))\n", "\n", - "name = await ctx.get(\"name\")\n", - "print(name)" + "state = await ctx.get(\"state\")\n", + "print(state[\"name\"])" ] }, { diff --git a/docs/docs/examples/agent/agent_workflow_multi.ipynb b/docs/docs/examples/agent/agent_workflow_multi.ipynb index 7edde5160c947..8feaacba1c097 100644 --- a/docs/docs/examples/agent/agent_workflow_multi.ipynb +++ b/docs/docs/examples/agent/agent_workflow_multi.ipynb @@ -39,7 +39,7 @@ "source": [ "from llama_index.llms.openai import OpenAI\n", "\n", - "llm = OpenAI(model=\"gpt-4o\", api_key=\"sk-proj-...\")" + "llm = OpenAI(model=\"gpt-4o\", api_key=\"sk-...\")" ] }, { @@ -59,8 +59,9 @@ "While there are many ways to implement this system, in this case, we will use a few tools to help with the research and writing processes.\n", "\n", "1. A `web_search` tool to search the web for information on the given topic.\n", - "2. A `write_report` tool to write the report using the information found by the `ResearchAgent`.\n", - "3. A `review_report` tool to review the report and provide feedback.\n", + "2. A `record_notes` tool to record notes on the given topic.\n", + "3. A `write_report` tool to write the report using the information found by the `ResearchAgent`.\n", + "4. A `review_report` tool to review the report and provide feedback.\n", "\n", "Utilizing the `Context` class, we can pass state between agents, and each agent will have access to the current state of the system.\n" ] @@ -91,7 +92,7 @@ "\n", "\n", "async def record_notes(ctx: Context, notes: str, notes_title: str) -> str:\n", - " \"\"\"Useful for recording notes on a given topic.\"\"\"\n", + " \"\"\"Useful for recording notes on a given topic. Your input should be notes with a title to save the notes under.\"\"\"\n", " current_state = await ctx.get(\"state\")\n", " if \"research_notes\" not in current_state:\n", " current_state[\"research_notes\"] = {}\n", @@ -101,7 +102,7 @@ "\n", "\n", "async def write_report(ctx: Context, report_content: str) -> str:\n", - " \"\"\"Useful for writing a report on a given topic.\"\"\"\n", + " \"\"\"Useful for writing a report on a given topic. Your input should be a markdown formatted report.\"\"\"\n", " current_state = await ctx.get(\"state\")\n", " current_state[\"report_content\"] = report_content\n", " await ctx.set(\"state\", current_state)\n", @@ -109,7 +110,7 @@ "\n", "\n", "async def review_report(ctx: Context, review: str) -> str:\n", - " \"\"\"Useful for reviewing a report and providing feedback.\"\"\"\n", + " \"\"\"Useful for reviewing a report and providing feedback. Your input should be a review of the report.\"\"\"\n", " current_state = await ctx.get(\"state\")\n", " current_state[\"review\"] = review\n", " await ctx.set(\"state\", current_state)\n", @@ -140,10 +141,11 @@ " description=\"Useful for searching the web for information on a given topic and recording notes on the topic.\",\n", " system_prompt=(\n", " \"You are the ResearchAgent that can search the web for information on a given topic and record notes on the topic. \"\n", - " \"Once notes are recorded and you are satisfied, you should hand off control to the WriteAgent to write a report on the topic.\"\n", + " \"Once notes are recorded and you are satisfied, you should hand off control to the WriteAgent to write a report on the topic. \"\n", + " \"You should have at least some notes on a topic before handing off control to the WriteAgent.\"\n", " ),\n", " llm=llm,\n", - " tools=[search_web],\n", + " tools=[search_web, record_notes],\n", " can_handoff_to=[\"WriteAgent\"],\n", ")\n", "\n", @@ -156,7 +158,7 @@ " \"Once the report is written, you should get feedback at least once from the ReviewAgent.\"\n", " ),\n", " llm=llm,\n", - " tools=[write_report, record_notes],\n", + " tools=[write_report],\n", " can_handoff_to=[\"ReviewAgent\", \"ResearchAgent\"],\n", ")\n", "\n", @@ -164,8 +166,9 @@ " name=\"ReviewAgent\",\n", " description=\"Useful for reviewing a report and providing feedback.\",\n", " system_prompt=(\n", - " \"You are the ReviewAgent that can review a report and provide feedback. \"\n", - " \"Your feedback should either approve the current report or request changes for the WriteAgent to implement.\"\n", + " \"You are the ReviewAgent that can review the write report and provide feedback. \"\n", + " \"Your review should either approve the current report or request changes for the WriteAgent to implement. \"\n", + " \"If you have feedback that requires changes, you should hand off control to the WriteAgent to implement the changes after submitting the review.\"\n", " ),\n", " llm=llm,\n", " tools=[review_report],\n", @@ -192,7 +195,7 @@ "\n", "agent_workflow = AgentWorkflow(\n", " agents=[research_agent, write_agent, review_agent],\n", - " root_agent=write_agent.name,\n", + " root_agent=research_agent.name,\n", " initial_state={\n", " \"research_notes\": {},\n", " \"report_content\": \"Not written yet.\",\n", @@ -217,62 +220,29 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n", - "==================================================\n", - "🤖 Agent: WriteAgent\n", - "==================================================\n", - "\n", - "🛠️ Planning to use tools: ['handoff']\n", - "🔨 Calling Tool: handoff\n", - " With arguments: {'to_agent': 'ResearchAgent', 'reason': 'To gather detailed and accurate information on the history of the internet, including its development phases and evolution in the 21st century.'}\n", - "🔧 Tool Result (handoff):\n", - " Arguments: {'to_agent': 'ResearchAgent', 'reason': 'To gather detailed and accurate information on the history of the internet, including its development phases and evolution in the 21st century.'}\n", - " Output: Handed off to ResearchAgent because: To gather detailed and accurate information on the history of the internet, including its development phases and evolution in the 21st century.\n", "\n", "==================================================\n", "🤖 Agent: ResearchAgent\n", "==================================================\n", "\n", - "🛠️ Planning to use tools: ['search_web', 'search_web', 'search_web']\n", - "🔨 Calling Tool: search_web\n", - " With arguments: {'query': 'history of the internet development'}\n", - "🔨 Calling Tool: search_web\n", - " With arguments: {'query': 'history of the World Wide Web development'}\n", + "🛠️ Planning to use tools: ['search_web']\n", "🔨 Calling Tool: search_web\n", - " With arguments: {'query': 'internet development in the 21st century'}\n", + " With arguments: {'query': 'history of the internet'}\n", "🔧 Tool Result (search_web):\n", - " Arguments: {'query': 'internet development in the 21st century'}\n", - " Output: ['{\"url\": \"https://www.larus.foundation/post/internet-in-the-21st-century\", \"content\": \"From the rise of broadband and social media to the advent of cloud computing and the Internet of Things (IoT), the Internet has evolved in ways that were unimaginable just a few decades ago. Two of the most significant developments in this regard have been cloud computing and the Internet of Things (IoT), both of which have had a profound impact on the way we interact with technology. Cloud computing, which allows users to store and process data on remote servers accessed via the internet, revolutionized the way businesses and individuals manage information. IoT devices, ranging from smart home gadgets to industrial sensors, collect and share data over the internet, enabling new levels of automation, efficiency, and convenience.\"}', '{\"url\": \"https://journalcjast.com/index.php/CJAST/article/view/3963\", \"content\": \"Internet an Integral Part of Human Life in 21st Century: A Review Internet an Integral Part of Human Life in 21st Century: A Review The Internet in 21st is the backbone of an inexhaustible source of global information that has revolutionized the communication system, knowledge transmission and education system which brings progress in all fields of endeavour from the creation of new goods, services and ideas for the advancement of knowledge and well-being of society as well. This paper emphasized on both positive and negative impacts of Internet in our day to day lives; Psychological profile of addicted people; potential risk on emotional, mental and physical health and possible treatment strategies of IAD.\"}', '{\"url\": \"https://www.tech21century.com/transforming-21st-century-its-time-for-the-internet/\", \"content\": \"Stages of Internet Development. Now the Internet seems to be a commodity, but let\\'s remember what it was like at the beginning of the 21st century and compare it with the current state of affairs. Here is a brief history of how the Internet has been gaining momentum since 2000. 2000: The average site load time was 16 seconds.\"}', '{\"url\": \"https://www.researchgate.net/publication/364329693_Internet_an_Integral_Part_of_Human_Life_in_21_st_Century_A_Review\", \"content\": \"The Internet in 21 st is the backbone of an inexhaustible source of global information that has revolutionized the communication system, knowledge transmission and education system which brings\"}', '{\"url\": \"https://pmc.ncbi.nlm.nih.gov/articles/PMC7111555/\", \"content\": \"Twenty first century has witnessed emergence of some ground breaking information technologies that have revolutionised our way of life. The revolution began late in 20th century with the arrival of internet in 1995, which has given rise to methods, tools and gadgets having astonishing applications in all academic disciplines and business sectors.\"}']\n", - "🔧 Tool Result (search_web):\n", - " Arguments: {'query': 'history of the World Wide Web development'}\n", - " Output: ['{\"url\": \"https://www.geeksforgeeks.org/history-of-the-web/\", \"content\": \"History Of The Web. The World Wide Web was created in 1989 by Tim Berners-Lee and his team at CERN in Geneva, Switzerland. ... The Internet of Things (IoT) is a newer development in web history. It involves connecting everyday objects like appliances and devices to the internet, allowing them to communicate and share data.\"}', '{\"url\": \"https://en.wikipedia.org/wiki/History_of_the_World_Wide_Web\", \"content\": \"By December 1990, Berners-Lee and his work team had built all the tools necessary for a working Web: the HyperText Transfer Protocol (HTTP), the HyperText Markup Language (HTML), the first web browser (named WorldWideWeb, which was also a web editor), the first web server (later known as CERN httpd) and the first web site (http://info.cern.ch) containing the first web pages that described the project itself was published on 20 December 1990.[16][17] Through Internet connectivity, manufacturers are now able to interact with the devices they have sold and shipped to their customers, and customers are able to interact with the manufacturer (and other providers) to access a lot of new content.[115]\\\\nWeb3 (sometimes also referred to as Web 3.0) is an idea for a decentralized Web based on public blockchains, smart contracts, digital tokens and digital wallets.[116]\\\\nHistoriography[edit]\\\\nHistoriography of the Web poses specific challenges including, disposable data, missing links, lost content and archived websites, which have consequences for web historians. Mozilla released a mobile OS designed to run web apps in 2012,[110] but discontinued it in 2015.[111]\\\\nGoogle announced specifications for Accelerated Mobile Pages (AMP),[112] and progressive web applications (PWA) in 2015.[113] AMPs use a combination of HTML, JavaScript, and Web Components to optimize web pages for mobile devices; and PWAs are web pages that, with a combination of web workers and manifest files, can be saved to a mobile device and opened like a native app.\\\\n In the process, he developed three essential technologies:\\\\nWith help from Cailliau he published a more formal proposal on 12 November 1990 to build a \\\\\"hypertext project\\\\\" called World Wide Web (abbreviated \\\\\"W3\\\\\") as a \\\\\"web\\\\\" of \\\\\"hypertext documents\\\\\" to be viewed by \\\\\"browsers\\\\\" using a client\\\\u2013server architecture.[14][15] The proposal was modelled after the Standard Generalized Markup Language (SGML) reader Dynatext by Electronic Book Technology, a spin-off from the Institute for Research in Information and Scholarship at Brown University. It described a system called \\\\\"Mesh\\\\\" that referenced ENQUIRE, the database and software project he had built in 1980, with a more elaborate information management system based on links embedded as text: \\\\\"Imagine, then, the references in this document all being associated with the network address of the thing to which they referred, so that while reading this document, you could skip to them with a click of the mouse.\\\\\"\"}', '{\"url\": \"https://medium.com/@Abhishek-Tiwari/the-history-and-evolution-of-web-development-from-html-to-the-modern-web-982e3f90e891\", \"content\": \"The History and Evolution of Web Development: From HTML to the Modern Web\\\\nAbhishek Tiwari\\\\nFollow\\\\n--\\\\nListen\\\\nShare\\\\nThe World Wide Web has transformed our lives, becoming an integral part of how we access information, communicate, and conduct business. Thanks for reading my blog \\\\ud83d\\\\ude0d\\\\nFollow me\\\\u00a0: https://bio.link/abhishektiwari\\\\n--\\\\n--\\\\nWritten by Abhishek Tiwari\\\\nFrontend Web Developer | HTML | CSS | JavaScript\\\\nHelp\\\\nStatus\\\\nAbout\\\\nCareers\\\\nBlog\\\\nPrivacy\\\\nTerms\\\\nText to speech\\\\nTeams Progressive Web Apps (PWAs) also became popular, offering offline capabilities and a more app-like experience on the web.\\\\nModern Web Development\\\\nWeb development is embracing AI and machine learning for personalized user experiences. In 1990, he proposed the concept of the web and created the first web browser and web server software.\\\\n From the birth of the World Wide Web to the dynamic, interconnected digital landscape of today, web development has come a long way.\"}', '{\"url\": \"https://www.encyclopedia.com/economics/encyclopedias-almanacs-transcripts-and-maps/history-internet-and-world-wide-web-www\", \"content\": \"The World Wide Web Consortium (W3C), of which Berners-Lee was the founder, was born in 1994 just as the Web was beginning to hit critical mass. The organization, though not a governing body, was founded to guide and oversee the Web\\'s development and minimize proprietary battles over standards and protocols in an effort to keep the Web\"}', '{\"url\": \"https://www.britannica.com/topic/World-Wide-Web\", \"content\": \"The Web gives users access to a vast array of mass media and content\\\\u2014via the deep web, the dark web, and the commonly accessible surface web\\\\u2014that is connected by means of hypertext or hypermedia links\\\\u2014i.e., hyperlinks, electronic connections that link related pieces of information in order to allow a user easy access to them. The World Wide Web gained rapid acceptance with the creation of a Web browser called Mosaic, which was developed in the United States by Marc Andreessen and others at the National Center for Supercomputing Applications at the University of Illinois and was released in September 1993. The Web operates within the Internet\\\\u2019s basic client-server format; servers are computer programs that store and transmit documents to other computers on the network when asked to, while clients are programs that request documents from a server as the user asks for them. IE was integrated into the Windows operating system in 1996 (that is, it came \\\\u201cbundled\\\\u201d ready-to-use within the operating system of personal computers), which had the effect of reducing competition from other Internet browser manufacturers, such as Netscape. The software giant Microsoft Corporation became interested in supporting Internet applications on personal computers and developed its own Web browser (based initially on Mosaic), Internet Explorer (IE), in 1995 as an add-on to the Windows 95 operating system.\"}']\n", - "🔧 Tool Result (search_web):\n", - " Arguments: {'query': 'history of the internet development'}\n", - " Output: ['{\"url\": \"https://www.internetsociety.org/internet/history-internet/brief-history-internet/\", \"content\": \"In this paper, 3 several of us involved in the development and evolution of the Internet share our views of its origins and history. This history revolves around four distinct aspects. There is the technological evolution that began with early research on packet switching and the ARPANET (and related technologies), and where current research continues to expand the horizons of the\"}', '{\"url\": \"https://www.livescience.com/20727-internet-history.html\", \"content\": \"Internet history timeline: ARPANET to the World Wide Web\\\\nThe internet history timeline shows how today\\'s vast network evolved from the initial concept\\\\nIn internet history, credit for the initial concept that developed into the World Wide Web is typically given to Leonard Kleinrock. \\\\\"\\\\nAccording to the journal Management and Business Review (MBR), Kleinrock, along with other innovators such as J.C.R. Licklider, the first director of the Information Processing Technology Office (IPTO), provided the backbone for the ubiquitous stream of emails, media, Facebook postings and tweets that are now shared online every day.\\\\n The precursor to the internet was jumpstarted in the early days of the history of computers , in 1969 with the U.S. Defense Department\\'s Advanced Research Projects Agency Network (ARPANET), according to the journal American Scientist. The successful push to stop the bill, involving technology companies such as Google and nonprofit organizations including Wikipedia and the Electronic Frontier Foundation, is considered a victory for sites such as YouTube that depend on user-generated content, as well as \\\\\"fair use\\\\\" on the internet.\\\\n Vinton Cerf and Bob Kahn (the duo said by many to be the Fathers of the Internet) publish \\\\\"A Protocol for Packet Network Interconnection,\\\\\" which details the design of TCP.\\\\n1976:\"}', '{\"url\": \"https://historyoftheinternet.net/timeline/\", \"content\": \"The term internet can be applied generically to refer to any online activity since the first SAGE online activity to today. Thus, the naming of a network \\\\\"Internet\\' is a side path activity between telegraph and today. The typical Internet history documentation goes into great detail about the technology evolution from an idea in 1961 to today.\"}', '{\"url\": \"https://usg.edu/galileo/skills/unit07/internet07_02.phtml\", \"content\": \"The Internet started in the 1960s as a way for government researchers to share information. This eventually led to the formation of the ARPANET (Advanced Research Projects Agency Network), the network that ultimately evolved into what we now know as the Internet. In response to this, other networks were created to provide information sharing. ARPANET and the Defense Data Network officially changed to the TCP/IP standard on January 1, 1983, hence the birth of the Internet. (Business computers like the UNIVAC processed data more slowly than the IAS-type machines, but were designed for fast input and output.) The first few sales were to government agencies, the A.C. Nielsen Company, and the Prudential Insurance Company.\"}', '{\"url\": \"https://www.geeksforgeeks.org/history-of-internet/\", \"content\": \"Key Milestones in Internet History. 1969: Launch of ARPANET, the first operational packet-switching network. 1971: The first email is sent by Ray Tomlinson. ... Story Connection: Bush\\'s work emerged from his leadership in the U.S. Office of Scientific Research and Development during World War II. His efforts to coordinate wartime technology\"}']\n", - "📤 Output: I've gathered information on the history of the internet, the development of the World Wide Web, and the evolution of the internet in the 21st century. Here are the key points from the research:\n", - "\n", - "### History of the Internet Development\n", - "- The internet's origins trace back to the 1960s with the development of ARPANET, a project initiated by the U.S. Defense Department's Advanced Research Projects Agency (ARPA). ARPANET was the first operational packet-switching network, which laid the groundwork for the internet.\n", - "- Key figures in the early development include Leonard Kleinrock, J.C.R. Licklider, Vinton Cerf, and Bob Kahn. Cerf and Kahn developed the TCP/IP protocols, which became the standard for internet communication.\n", - "- The transition to the TCP/IP standard on January 1, 1983, is considered the official birth of the internet.\n", - "\n", - "### Development of the World Wide Web\n", - "- The World Wide Web was invented by Tim Berners-Lee in 1989 at CERN. He developed essential technologies such as HTTP, HTML, and the first web browser.\n", - "- The first website was launched in 1990, and the World Wide Web Consortium (W3C) was established in 1994 to guide web development.\n", - "- The web gained rapid popularity with the introduction of the Mosaic browser in 1993, which made the web accessible to the general public.\n", - "\n", - "### Internet Development in the 21st Century\n", - "- The 21st century has seen significant advancements such as broadband internet, social media, cloud computing, and the Internet of Things (IoT).\n", - "- Cloud computing has transformed data storage and processing, while IoT has enabled smart devices to communicate and automate tasks.\n", - "- The internet has become integral to daily life, influencing communication, education, and business.\n", - "\n", - "With these notes, I will now hand off to the WriteAgent to compose a comprehensive report on the history of the internet.\n", + " Arguments: {'query': 'history of the internet'}\n", + " Output: {'query': 'history of the internet', 'follow_up_questions': None, 'answer': None, 'images': [], 'results': [{'title': 'Internet history timeline: ARPANET to the World Wide Web', 'url': 'https://www.livescience.com/20727-internet-history.html', 'content': 'Internet history timeline: ARPANET to the World Wide Web\\nThe internet history timeline shows how today\\'s vast network evolved from the initial concept\\nIn internet history, credit for the initial concept that developed into the World Wide Web is typically given to Leonard Kleinrock. \"\\nAccording to the journal Management and Business Review (MBR), Kleinrock, along with other innovators such as J.C.R. Licklider, the first director of the Information Processing Technology Office (IPTO), provided the backbone for the ubiquitous stream of emails, media, Facebook postings and tweets that are now shared online every day.\\n The precursor to the internet was jumpstarted in the early days of the history of computers , in 1969 with the U.S. Defense Department\\'s Advanced Research Projects Agency Network (ARPANET), according to the journal American Scientist. The successful push to stop the bill, involving technology companies such as Google and nonprofit organizations including Wikipedia and the Electronic Frontier Foundation, is considered a victory for sites such as YouTube that depend on user-generated content, as well as \"fair use\" on the internet.\\n Vinton Cerf and Bob Kahn (the duo said by many to be the Fathers of the Internet) publish \"A Protocol for Packet Network Interconnection,\" which details the design of TCP.\\n1976:', 'score': 0.81097376, 'raw_content': None}, {'title': 'A Brief History of the Internet - University System of Georgia', 'url': 'https://usg.edu/galileo/skills/unit07/internet07_02.phtml', 'content': 'The Internet started in the 1960s as a way for government researchers to share information. This eventually led to the formation of the ARPANET (Advanced Research Projects Agency Network), the network that ultimately evolved into what we now know as the Internet. In response to this, other networks were created to provide information sharing. ARPANET and the Defense Data Network officially changed to the TCP/IP standard on January 1, 1983, hence the birth of the Internet. (Business computers like the UNIVAC processed data more slowly than the IAS-type machines, but were designed for fast input and output.) The first few sales were to government agencies, the A.C. Nielsen Company, and the Prudential Insurance Company.', 'score': 0.8091708, 'raw_content': None}, {'title': 'Timeline - History of the Internet', 'url': 'https://historyoftheinternet.net/timeline/', 'content': \"Learn how the internet evolved from SAGE and IBM's internal networks to ARPANET and the World Wide Web. Explore the commercial and government paths that led to the current internet format and protocols.\", 'score': 0.7171114, 'raw_content': None}, {'title': 'Learn About Internet History | History of the Internet', 'url': 'https://internethistory.org/', 'content': 'Learn about the origins, evolution and impact of the internet through stories, materials and videos. Explore the first internet message, optical amplifier, wavelength division multiplexing and more.', 'score': 0.7040996, 'raw_content': None}, {'title': 'Brief History of the Internet', 'url': 'https://www.internetsociety.org/resources/doc/2017/brief-history-internet/', 'content': \"Learn how the Internet evolved from the initial internetting concepts to a global network of networks that transformed the computer and communications world. Explore the key milestones, challenges, and opportunities of the Internet's development and future.\", 'score': 0.6944897, 'raw_content': None}], 'response_time': 1.65}\n", + "🛠️ Planning to use tools: ['record_notes']\n", + "🔨 Calling Tool: record_notes\n", + " With arguments: {'notes': \"The internet's history began in the 1960s as a project for government researchers to share information, leading to the creation of ARPANET (Advanced Research Projects Agency Network). ARPANET was the first network to implement the TCP/IP protocol suite, which became the foundation for the modern internet. On January 1, 1983, ARPANET and the Defense Data Network officially adopted TCP/IP, marking the birth of the internet.\\n\\nThe World Wide Web was developed later, in 1989, by Tim Berners-Lee, a British scientist at CERN. The web was initially conceived as a way to facilitate information sharing among scientists and institutes around the world. Berners-Lee developed the first web browser and web server, and introduced the concept of hyperlinks, which allowed users to navigate between different documents on the web.\\n\\nIn the 21st century, the internet has evolved into a global network that connects billions of devices and users. It has transformed communication, commerce, entertainment, and education, among other fields. The development of broadband technology, mobile internet, and social media platforms has further accelerated the internet's growth and impact.\", 'notes_title': 'History of the Internet'}\n", + "🔧 Tool Result (record_notes):\n", + " Arguments: {'notes': \"The internet's history began in the 1960s as a project for government researchers to share information, leading to the creation of ARPANET (Advanced Research Projects Agency Network). ARPANET was the first network to implement the TCP/IP protocol suite, which became the foundation for the modern internet. On January 1, 1983, ARPANET and the Defense Data Network officially adopted TCP/IP, marking the birth of the internet.\\n\\nThe World Wide Web was developed later, in 1989, by Tim Berners-Lee, a British scientist at CERN. The web was initially conceived as a way to facilitate information sharing among scientists and institutes around the world. Berners-Lee developed the first web browser and web server, and introduced the concept of hyperlinks, which allowed users to navigate between different documents on the web.\\n\\nIn the 21st century, the internet has evolved into a global network that connects billions of devices and users. It has transformed communication, commerce, entertainment, and education, among other fields. The development of broadband technology, mobile internet, and social media platforms has further accelerated the internet's growth and impact.\", 'notes_title': 'History of the Internet'}\n", + " Output: Notes recorded.\n", "🛠️ Planning to use tools: ['handoff']\n", "🔨 Calling Tool: handoff\n", - " With arguments: {'to_agent': 'WriteAgent', 'reason': 'To write a comprehensive report on the history of the internet based on the gathered research notes.'}\n", + " With arguments: {'to_agent': 'WriteAgent', 'reason': 'I have gathered and recorded notes on the history of the internet, including its development, the creation of the web, and its evolution in the 21st century. The WriteAgent can now use these notes to write a comprehensive report.'}\n", "🔧 Tool Result (handoff):\n", - " Arguments: {'to_agent': 'WriteAgent', 'reason': 'To write a comprehensive report on the history of the internet based on the gathered research notes.'}\n", - " Output: Handed off to WriteAgent because: To write a comprehensive report on the history of the internet based on the gathered research notes.\n", + " Arguments: {'to_agent': 'WriteAgent', 'reason': 'I have gathered and recorded notes on the history of the internet, including its development, the creation of the web, and its evolution in the 21st century. The WriteAgent can now use these notes to write a comprehensive report.'}\n", + " Output: Handed off to WriteAgent because: I have gathered and recorded notes on the history of the internet, including its development, the creation of the web, and its evolution in the 21st century. The WriteAgent can now use these notes to write a comprehensive report.\n", "\n", "==================================================\n", "🤖 Agent: WriteAgent\n", @@ -280,16 +250,16 @@ "\n", "🛠️ Planning to use tools: ['write_report']\n", "🔨 Calling Tool: write_report\n", - " With arguments: {'report_content': \"# The History of the Internet\\n\\n## Introduction\\nThe internet, a global network of interconnected computers, has revolutionized the way we communicate, access information, and conduct business. Its development is a story of innovation and collaboration, involving numerous individuals and organizations over several decades. This report provides a brief overview of the history of the internet, including its early development, the creation of the World Wide Web, and its evolution in the 21st century.\\n\\n## Early Development of the Internet\\nThe origins of the internet can be traced back to the 1960s with the creation of ARPANET, a project initiated by the U.S. Defense Department's Advanced Research Projects Agency (ARPA). ARPANET was the first operational packet-switching network, which laid the groundwork for the modern internet. Key figures in this early development include Leonard Kleinrock, J.C.R. Licklider, Vinton Cerf, and Bob Kahn. Cerf and Kahn's development of the TCP/IP protocols in the 1970s was a pivotal moment, as these protocols became the standard for internet communication. The transition to the TCP/IP standard on January 1, 1983, is considered the official birth of the internet.\\n\\n## The Development of the World Wide Web\\nThe World Wide Web, a system for accessing information over the internet, was invented by Tim Berners-Lee in 1989 at CERN in Switzerland. Berners-Lee developed essential technologies such as the HyperText Transfer Protocol (HTTP), the HyperText Markup Language (HTML), and the first web browser. The first website was launched in 1990, and the World Wide Web Consortium (W3C) was established in 1994 to guide the development of web standards. The web gained rapid popularity with the introduction of the Mosaic browser in 1993, which made the web accessible to the general public.\\n\\n## Internet in the 21st Century\\nThe 21st century has witnessed significant advancements in internet technology, including the rise of broadband internet, social media, cloud computing, and the Internet of Things (IoT). Cloud computing has transformed data storage and processing, allowing users to store and access data on remote servers. IoT has enabled everyday objects to connect to the internet, facilitating automation and efficiency in various sectors. The internet has become an integral part of daily life, influencing communication, education, and business practices worldwide.\\n\\n## Conclusion\\nThe history of the internet is a testament to human ingenuity and the power of collaboration. From its humble beginnings as a military research project to its current status as a global communication network, the internet continues to evolve and shape the future of technology and society. As we move forward, the internet will undoubtedly play a crucial role in addressing the challenges and opportunities of the digital age.\"}\n", + " With arguments: {'report_content': \"# History of the Internet\\n\\nThe history of the internet is a fascinating journey from a government research project to a global network that has transformed the way we communicate, work, and live. This report provides a brief overview of the key milestones in the development of the internet, the World Wide Web, and the internet's evolution in the 21st century.\\n\\n## Development of the Internet\\n\\nThe origins of the internet date back to the 1960s, when it was conceived as a means for government researchers to share information. This led to the creation of ARPANET (Advanced Research Projects Agency Network), which was the first network to implement the TCP/IP protocol suite. TCP/IP became the foundational technology for the modern internet. On January 1, 1983, ARPANET and the Defense Data Network officially adopted TCP/IP, marking the official birth of the internet.\\n\\n## Development of the World Wide Web\\n\\nThe World Wide Web was developed in 1989 by Tim Berners-Lee, a British scientist working at CERN. The web was initially designed to facilitate information sharing among scientists and research institutes globally. Berners-Lee created the first web browser and web server, introducing the concept of hyperlinks, which allowed users to navigate between different documents on the web seamlessly.\\n\\n## The Internet in the 21st Century\\n\\nIn the 21st century, the internet has evolved into a vast global network connecting billions of devices and users. It has revolutionized communication, commerce, entertainment, and education, among other fields. The development of broadband technology, mobile internet, and social media platforms has further accelerated the internet's growth and impact, making it an integral part of daily life for people around the world.\\n\\nThe internet continues to evolve, with ongoing advancements in technology and infrastructure shaping its future. As it grows, the internet remains a powerful tool for innovation, connectivity, and information sharing, influencing nearly every aspect of modern society.\"}\n", "🔧 Tool Result (write_report):\n", - " Arguments: {'report_content': \"# The History of the Internet\\n\\n## Introduction\\nThe internet, a global network of interconnected computers, has revolutionized the way we communicate, access information, and conduct business. Its development is a story of innovation and collaboration, involving numerous individuals and organizations over several decades. This report provides a brief overview of the history of the internet, including its early development, the creation of the World Wide Web, and its evolution in the 21st century.\\n\\n## Early Development of the Internet\\nThe origins of the internet can be traced back to the 1960s with the creation of ARPANET, a project initiated by the U.S. Defense Department's Advanced Research Projects Agency (ARPA). ARPANET was the first operational packet-switching network, which laid the groundwork for the modern internet. Key figures in this early development include Leonard Kleinrock, J.C.R. Licklider, Vinton Cerf, and Bob Kahn. Cerf and Kahn's development of the TCP/IP protocols in the 1970s was a pivotal moment, as these protocols became the standard for internet communication. The transition to the TCP/IP standard on January 1, 1983, is considered the official birth of the internet.\\n\\n## The Development of the World Wide Web\\nThe World Wide Web, a system for accessing information over the internet, was invented by Tim Berners-Lee in 1989 at CERN in Switzerland. Berners-Lee developed essential technologies such as the HyperText Transfer Protocol (HTTP), the HyperText Markup Language (HTML), and the first web browser. The first website was launched in 1990, and the World Wide Web Consortium (W3C) was established in 1994 to guide the development of web standards. The web gained rapid popularity with the introduction of the Mosaic browser in 1993, which made the web accessible to the general public.\\n\\n## Internet in the 21st Century\\nThe 21st century has witnessed significant advancements in internet technology, including the rise of broadband internet, social media, cloud computing, and the Internet of Things (IoT). Cloud computing has transformed data storage and processing, allowing users to store and access data on remote servers. IoT has enabled everyday objects to connect to the internet, facilitating automation and efficiency in various sectors. The internet has become an integral part of daily life, influencing communication, education, and business practices worldwide.\\n\\n## Conclusion\\nThe history of the internet is a testament to human ingenuity and the power of collaboration. From its humble beginnings as a military research project to its current status as a global communication network, the internet continues to evolve and shape the future of technology and society. As we move forward, the internet will undoubtedly play a crucial role in addressing the challenges and opportunities of the digital age.\"}\n", + " Arguments: {'report_content': \"# History of the Internet\\n\\nThe history of the internet is a fascinating journey from a government research project to a global network that has transformed the way we communicate, work, and live. This report provides a brief overview of the key milestones in the development of the internet, the World Wide Web, and the internet's evolution in the 21st century.\\n\\n## Development of the Internet\\n\\nThe origins of the internet date back to the 1960s, when it was conceived as a means for government researchers to share information. This led to the creation of ARPANET (Advanced Research Projects Agency Network), which was the first network to implement the TCP/IP protocol suite. TCP/IP became the foundational technology for the modern internet. On January 1, 1983, ARPANET and the Defense Data Network officially adopted TCP/IP, marking the official birth of the internet.\\n\\n## Development of the World Wide Web\\n\\nThe World Wide Web was developed in 1989 by Tim Berners-Lee, a British scientist working at CERN. The web was initially designed to facilitate information sharing among scientists and research institutes globally. Berners-Lee created the first web browser and web server, introducing the concept of hyperlinks, which allowed users to navigate between different documents on the web seamlessly.\\n\\n## The Internet in the 21st Century\\n\\nIn the 21st century, the internet has evolved into a vast global network connecting billions of devices and users. It has revolutionized communication, commerce, entertainment, and education, among other fields. The development of broadband technology, mobile internet, and social media platforms has further accelerated the internet's growth and impact, making it an integral part of daily life for people around the world.\\n\\nThe internet continues to evolve, with ongoing advancements in technology and infrastructure shaping its future. As it grows, the internet remains a powerful tool for innovation, connectivity, and information sharing, influencing nearly every aspect of modern society.\"}\n", " Output: Report written.\n", "🛠️ Planning to use tools: ['handoff']\n", "🔨 Calling Tool: handoff\n", - " With arguments: {'to_agent': 'ReviewAgent', 'reason': 'To review the report on the history of the internet and provide feedback.'}\n", + " With arguments: {'to_agent': 'ReviewAgent', 'reason': 'The report on the history of the internet has been written and needs to be reviewed for accuracy and completeness.'}\n", "🔧 Tool Result (handoff):\n", - " Arguments: {'to_agent': 'ReviewAgent', 'reason': 'To review the report on the history of the internet and provide feedback.'}\n", - " Output: Handed off to ReviewAgent because: To review the report on the history of the internet and provide feedback.\n", + " Arguments: {'to_agent': 'ReviewAgent', 'reason': 'The report on the history of the internet has been written and needs to be reviewed for accuracy and completeness.'}\n", + " Output: Handed off to ReviewAgent because: The report on the history of the internet has been written and needs to be reviewed for accuracy and completeness.\n", "\n", "==================================================\n", "🤖 Agent: ReviewAgent\n", @@ -297,11 +267,11 @@ "\n", "🛠️ Planning to use tools: ['review_report']\n", "🔨 Calling Tool: review_report\n", - " With arguments: {'review': \"# The History of the Internet\\n\\n## Introduction\\nThe internet, a global network of interconnected computers, has revolutionized the way we communicate, access information, and conduct business. Its development is a story of innovation and collaboration, involving numerous individuals and organizations over several decades. This report provides a brief overview of the history of the internet, including its early development, the creation of the World Wide Web, and its evolution in the 21st century.\\n\\n## Early Development of the Internet\\nThe origins of the internet can be traced back to the 1960s with the creation of ARPANET, a project initiated by the U.S. Defense Department's Advanced Research Projects Agency (ARPA). ARPANET was the first operational packet-switching network, which laid the groundwork for the modern internet. Key figures in this early development include Leonard Kleinrock, J.C.R. Licklider, Vinton Cerf, and Bob Kahn. Cerf and Kahn's development of the TCP/IP protocols in the 1970s was a pivotal moment, as these protocols became the standard for internet communication. The transition to the TCP/IP standard on January 1, 1983, is considered the official birth of the internet.\\n\\n## The Development of the World Wide Web\\nThe World Wide Web, a system for accessing information over the internet, was invented by Tim Berners-Lee in 1989 at CERN in Switzerland. Berners-Lee developed essential technologies such as the HyperText Transfer Protocol (HTTP), the HyperText Markup Language (HTML), and the first web browser. The first website was launched in 1990, and the World Wide Web Consortium (W3C) was established in 1994 to guide the development of web standards. The web gained rapid popularity with the introduction of the Mosaic browser in 1993, which made the web accessible to the general public.\\n\\n## Internet in the 21st Century\\nThe 21st century has witnessed significant advancements in internet technology, including the rise of broadband internet, social media, cloud computing, and the Internet of Things (IoT). Cloud computing has transformed data storage and processing, allowing users to store and access data on remote servers. IoT has enabled everyday objects to connect to the internet, facilitating automation and efficiency in various sectors. The internet has become an integral part of daily life, influencing communication, education, and business practices worldwide.\\n\\n## Conclusion\\nThe history of the internet is a testament to human ingenuity and the power of collaboration. From its humble beginnings as a military research project to its current status as a global communication network, the internet continues to evolve and shape the future of technology and society. As we move forward, the internet will undoubtedly play a crucial role in addressing the challenges and opportunities of the digital age.\"}\n", + " With arguments: {'review': \"The report on the history of the internet provides a concise and informative overview of the key developments in the internet's history. It effectively covers the origins of the internet with ARPANET, the creation of the World Wide Web by Tim Berners-Lee, and the evolution of the internet in the 21st century. The report is well-structured, with clear sections that make it easy to follow.\\n\\nThe content is accurate and aligns with the historical timeline of the internet's development. It highlights significant milestones such as the adoption of TCP/IP and the introduction of hyperlinks, which are crucial to understanding the internet's growth.\\n\\nOverall, the report meets the requirements and provides a comprehensive summary of the internet's history. It is approved for final submission.\"}\n", "🔧 Tool Result (review_report):\n", - " Arguments: {'review': \"# The History of the Internet\\n\\n## Introduction\\nThe internet, a global network of interconnected computers, has revolutionized the way we communicate, access information, and conduct business. Its development is a story of innovation and collaboration, involving numerous individuals and organizations over several decades. This report provides a brief overview of the history of the internet, including its early development, the creation of the World Wide Web, and its evolution in the 21st century.\\n\\n## Early Development of the Internet\\nThe origins of the internet can be traced back to the 1960s with the creation of ARPANET, a project initiated by the U.S. Defense Department's Advanced Research Projects Agency (ARPA). ARPANET was the first operational packet-switching network, which laid the groundwork for the modern internet. Key figures in this early development include Leonard Kleinrock, J.C.R. Licklider, Vinton Cerf, and Bob Kahn. Cerf and Kahn's development of the TCP/IP protocols in the 1970s was a pivotal moment, as these protocols became the standard for internet communication. The transition to the TCP/IP standard on January 1, 1983, is considered the official birth of the internet.\\n\\n## The Development of the World Wide Web\\nThe World Wide Web, a system for accessing information over the internet, was invented by Tim Berners-Lee in 1989 at CERN in Switzerland. Berners-Lee developed essential technologies such as the HyperText Transfer Protocol (HTTP), the HyperText Markup Language (HTML), and the first web browser. The first website was launched in 1990, and the World Wide Web Consortium (W3C) was established in 1994 to guide the development of web standards. The web gained rapid popularity with the introduction of the Mosaic browser in 1993, which made the web accessible to the general public.\\n\\n## Internet in the 21st Century\\nThe 21st century has witnessed significant advancements in internet technology, including the rise of broadband internet, social media, cloud computing, and the Internet of Things (IoT). Cloud computing has transformed data storage and processing, allowing users to store and access data on remote servers. IoT has enabled everyday objects to connect to the internet, facilitating automation and efficiency in various sectors. The internet has become an integral part of daily life, influencing communication, education, and business practices worldwide.\\n\\n## Conclusion\\nThe history of the internet is a testament to human ingenuity and the power of collaboration. From its humble beginnings as a military research project to its current status as a global communication network, the internet continues to evolve and shape the future of technology and society. As we move forward, the internet will undoubtedly play a crucial role in addressing the challenges and opportunities of the digital age.\"}\n", + " Arguments: {'review': \"The report on the history of the internet provides a concise and informative overview of the key developments in the internet's history. It effectively covers the origins of the internet with ARPANET, the creation of the World Wide Web by Tim Berners-Lee, and the evolution of the internet in the 21st century. The report is well-structured, with clear sections that make it easy to follow.\\n\\nThe content is accurate and aligns with the historical timeline of the internet's development. It highlights significant milestones such as the adoption of TCP/IP and the introduction of hyperlinks, which are crucial to understanding the internet's growth.\\n\\nOverall, the report meets the requirements and provides a comprehensive summary of the internet's history. It is approved for final submission.\"}\n", " Output: Report reviewed.\n", - "📤 Output: The report on the history of the internet has been reviewed and is approved. It provides a comprehensive overview of the internet's development, the creation of the World Wide Web, and its evolution in the 21st century. The report is well-structured and informative.\n" + "📤 Output: The report on the history of the internet has been reviewed and approved. It provides a comprehensive and accurate overview of the internet's development, the creation of the World Wide Web, and its evolution in the 21st century. The report is well-structured and meets the requirements for final submission.\n" ] } ], @@ -315,7 +285,11 @@ ")\n", "\n", "handler = agent_workflow.run(\n", - " user_msg=\"Write me a report on the history of the internet. Briefly describe the history of the internet, including the development of the internet, the development of the web, and the development of the internet in the 21st century.\"\n", + " user_msg=(\n", + " \"Write me a report on the history of the internet. \"\n", + " \"Briefly describe the history of the internet, including the development of the internet, the development of the web, \"\n", + " \"and the development of the internet in the 21st century.\"\n", + " )\n", ")\n", "\n", "current_agent = None\n", @@ -368,22 +342,23 @@ "name": "stdout", "output_type": "stream", "text": [ - "# The History of the Internet\n", + "# History of the Internet\n", + "\n", + "The history of the internet is a fascinating journey from a government research project to a global network that has transformed the way we communicate, work, and live. This report provides a brief overview of the key milestones in the development of the internet, the World Wide Web, and the internet's evolution in the 21st century.\n", + "\n", + "## Development of the Internet\n", + "\n", + "The origins of the internet date back to the 1960s, when it was conceived as a means for government researchers to share information. This led to the creation of ARPANET (Advanced Research Projects Agency Network), which was the first network to implement the TCP/IP protocol suite. TCP/IP became the foundational technology for the modern internet. On January 1, 1983, ARPANET and the Defense Data Network officially adopted TCP/IP, marking the official birth of the internet.\n", "\n", - "## Introduction\n", - "The internet, a global network of interconnected computers, has revolutionized the way we communicate, access information, and conduct business. Its development is a story of innovation and collaboration, involving numerous individuals and organizations over several decades. This report provides a brief overview of the history of the internet, including its early development, the creation of the World Wide Web, and its evolution in the 21st century.\n", + "## Development of the World Wide Web\n", "\n", - "## Early Development of the Internet\n", - "The origins of the internet can be traced back to the 1960s with the creation of ARPANET, a project initiated by the U.S. Defense Department's Advanced Research Projects Agency (ARPA). ARPANET was the first operational packet-switching network, which laid the groundwork for the modern internet. Key figures in this early development include Leonard Kleinrock, J.C.R. Licklider, Vinton Cerf, and Bob Kahn. Cerf and Kahn's development of the TCP/IP protocols in the 1970s was a pivotal moment, as these protocols became the standard for internet communication. The transition to the TCP/IP standard on January 1, 1983, is considered the official birth of the internet.\n", + "The World Wide Web was developed in 1989 by Tim Berners-Lee, a British scientist working at CERN. The web was initially designed to facilitate information sharing among scientists and research institutes globally. Berners-Lee created the first web browser and web server, introducing the concept of hyperlinks, which allowed users to navigate between different documents on the web seamlessly.\n", "\n", - "## The Development of the World Wide Web\n", - "The World Wide Web, a system for accessing information over the internet, was invented by Tim Berners-Lee in 1989 at CERN in Switzerland. Berners-Lee developed essential technologies such as the HyperText Transfer Protocol (HTTP), the HyperText Markup Language (HTML), and the first web browser. The first website was launched in 1990, and the World Wide Web Consortium (W3C) was established in 1994 to guide the development of web standards. The web gained rapid popularity with the introduction of the Mosaic browser in 1993, which made the web accessible to the general public.\n", + "## The Internet in the 21st Century\n", "\n", - "## Internet in the 21st Century\n", - "The 21st century has witnessed significant advancements in internet technology, including the rise of broadband internet, social media, cloud computing, and the Internet of Things (IoT). Cloud computing has transformed data storage and processing, allowing users to store and access data on remote servers. IoT has enabled everyday objects to connect to the internet, facilitating automation and efficiency in various sectors. The internet has become an integral part of daily life, influencing communication, education, and business practices worldwide.\n", + "In the 21st century, the internet has evolved into a vast global network connecting billions of devices and users. It has revolutionized communication, commerce, entertainment, and education, among other fields. The development of broadband technology, mobile internet, and social media platforms has further accelerated the internet's growth and impact, making it an integral part of daily life for people around the world.\n", "\n", - "## Conclusion\n", - "The history of the internet is a testament to human ingenuity and the power of collaboration. From its humble beginnings as a military research project to its current status as a global communication network, the internet continues to evolve and shape the future of technology and society. As we move forward, the internet will undoubtedly play a crucial role in addressing the challenges and opportunities of the digital age.\n" + "The internet continues to evolve, with ongoing advancements in technology and infrastructure shaping its future. As it grows, the internet remains a powerful tool for innovation, connectivity, and information sharing, influencing nearly every aspect of modern society.\n" ] } ], diff --git a/docs/docs/examples/agent/react_agent.ipynb b/docs/docs/examples/agent/react_agent.ipynb index 337db56d8aff2..0eba247bc912e 100644 --- a/docs/docs/examples/agent/react_agent.ipynb +++ b/docs/docs/examples/agent/react_agent.ipynb @@ -53,22 +53,7 @@ "execution_count": null, "id": "e8ac1778-0585-43c9-9dad-014d13d7460d", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[nltk_data] Downloading package stopwords to /Users/jerryliu/Programmi\n", - "[nltk_data] ng/gpt_index/.venv/lib/python3.10/site-\n", - "[nltk_data] packages/llama_index/legacy/_static/nltk_cache...\n", - "[nltk_data] Unzipping corpora/stopwords.zip.\n", - "[nltk_data] Downloading package punkt to /Users/jerryliu/Programming/g\n", - "[nltk_data] pt_index/.venv/lib/python3.10/site-\n", - "[nltk_data] packages/llama_index/legacy/_static/nltk_cache...\n", - "[nltk_data] Unzipping tokenizers/punkt.zip.\n" - ] - } - ], + "outputs": [], "source": [ "from llama_index.core.agent import ReActAgent\n", "from llama_index.llms.openai import OpenAI\n", @@ -468,13 +453,44 @@ "response = agent.chat(\"What is 5+3+2\")\n", "print(response)" ] + }, + { + "cell_type": "markdown", + "id": "76190511-692c-4642-9b86-adac88c98550", + "metadata": {}, + "source": [ + "### Customizing the Message Role of Observation\n", + "\n", + "If the LLM you use supports function/tool calling, you may set the message role of observations to `MessageRole.TOOL`. \n", + "Doing this will prevent the tool outputs from being misinterpreted as new user messages for some models." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e6d5e8c1-c40e-4a96-8d2e-84127f066265", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core.agent import ReActChatFormatter\n", + "from llama_index.core.llms import MessageRole\n", + "\n", + "agent = ReActAgent.from_tools(\n", + " [multiply_tool, add_tool],\n", + " llm=llm,\n", + " react_chat_formatter=ReActChatFormatter.from_defaults(\n", + " observation_role=MessageRole.TOOL\n", + " ),\n", + " verbose=True,\n", + ")" + ] } ], "metadata": { "kernelspec": { - "display_name": "llama_index_v2", + "display_name": "LlamaIndex Development", "language": "python", - "name": "llama_index_v2" + "name": "llama-index-dev" }, "language_info": { "codemirror_mode": { diff --git a/docs/docs/examples/data/paul_graham/paul_graham_essay_ambiguated.txt b/docs/docs/examples/data/paul_graham/paul_graham_essay_ambiguated.txt new file mode 100644 index 0000000000000..c4b9ab3fabaa1 --- /dev/null +++ b/docs/docs/examples/data/paul_graham/paul_graham_essay_ambiguated.txt @@ -0,0 +1,42 @@ +Before college the two main things I worked on, outside of school, were writing and programming. I didn't write essays. I wrote what beginning writers were supposed to write then, and probably still are: short stories. They were awful. They had hardly any plot, just characters with strong feelings, which I imagined made them deep. The first programs I tried writing were on the IBM 1401 that our school district used for what was then called "data processing." This was in 9th grade, so I was 13 or 14. The district's machine happened to be in the basement of our junior high school, and my friend Rich Draves and I got permission to use it. The space was like a mini Bond villain's lair down there, with all these alien-looking machines — CPU, disk drives, printer, card reader — sitting up on a raised floor under bright fluorescent lights. The language we used was an early version of Fortran. You had to type programs on punch cards, then stack them in the reader and press a button to load the code into memory and run it. The result would ordinarily be to print something on the spectacularly loud device. I was puzzled by the machine. I couldn't figure out what to do with it. And in retrospect there's not much I could have done with it. The only form of input to programs was data stored on cards, and I didn't have any information stored on them. The only other option was to do things that didn't rely on any input, like calculate approximations of pi, but I didn't know enough math to do anything interesting of that type. So I'm not surprised I can't remember any code I wrote, because it can't have done much. My clearest memory is of the moment I learned it was possible for programs not to terminate, when one of mine didn't. On a machine without time-sharing, this was a social as well as a technical error, as the manager's expression made clear. With microcomputers, everything changed. Now you could have one sitting right in front of you, on a desk, that could respond to your keystrokes as it was running instead of just churning through a stack of punched inputs and then stopping. + +I shifted to writing essays again, and created several new ones over the next few months. Some even ventured beyond startup topics. Then in March 2015 I began working on Lisp again. +Lisp's unique characteristic is that its core is a language defined by writing an interpreter in itself. It wasn't originally intended as a standard programming language. It was created as a formal model of computation, an alternative to the Turing machine. If you want to write an interpreter for a language in itself, what's the minimum set of predefined operators do you need? The Lisp that John McCarthy invented, or more accurately discovered, is an answer to that question. +McCarthy didn't realize the language could even be used to program computers until his grad student Steve Russell suggested it. Russell translated McCarthy's interpreter into IBM 704 machine language, and from then on Lisp also became a programming language in the conventional sense. But its origins as a model of computation gave it a power and elegance that other languages couldn't match. This quality was what attracted me in college, though I didn't understand why at the time. +McCarthy's 1960 version did nothing more than interpret Lisp expressions. It was missing many features you'd want in a programming language. So these had to be added, and when they were, they weren't defined using his original axiomatic approach. That wouldn't have been feasible at the time. McCarthy tested his interpreter by hand-simulating the execution of programs. But it was already getting close to the limit of interpreters you could test that way — indeed, there was a bug in it that he had overlooked. To test a more complicated system, you'd have had to run it, and computers then weren't powerful enough. + +Now they are powerful enough. Now you could continue using the axiomatic approach till you'd defined a complete programming language. And as long as every change you made to the original system was a discoveredness-preserving transformation, you could, in principle, end up with a complete language that had this quality. Harder to do than to talk about, of course, but if it was possible in principle, why not try? So I decided to take a shot at it. The work took 4 years, from March 26, 2015 to October 12, 2019. It was fortunate that I had a precisely defined goal, or it would have been hard to keep at it for so long. +I wrote this new Lisp, called Bel, in itself in Arc. That may sound like a contradiction, but it's an indication of the sort of trickery I had to engage in to make this work. By means of an egregious collection of hacks I managed to make something close enough to an interpreter written in itself that could actually run. Not fast, but fast enough to test. +I had to ban myself from writing essays during most of this time, or I'd never have finished. In late 2015 I spent 3 months writing essays, and when I went back to working on Bel I could barely understand the code. Not so much because it was badly written as because the problem is so convoluted. When you're working on an interpreter written in itself, it's hard to keep track of what's happening at what level, and errors can be practically encrypted by the time you get them. +So I said no more writing till the project was done. But I told few people about it while I was working on it. So for years it must have seemed that I was doing nothing, when in fact I was working harder than I'd ever worked on anything. Occasionally after wrestling for hours with some gruesome bug I'd check Twitter or HN and see someone asking "Does Paul Graham still code?" + +Working on the language was hard but satisfying. I worked on it so intensively that at any given time I had a decent chunk of the code in my head and could write more there. I remember taking the boys to the coast on a sunny day in 2015 and figuring out how to deal with some problem involving continuations while I watched them play in the tide pools. This experience felt like I was doing life right. I remember that moment because I was slightly dismayed at how novel it felt. The good news is that I had more moments like this over the next few years. +In the summer of 2016 we moved to England. We wanted our kids to see what it was like living in another country, and since I was a British citizen by birth, that country seemed the obvious choice. We only meant to stay for a year, but we liked it so much that we still live there. So most of the work was written in England. +In the fall of 2019, Bel was finally finished. Like McCarthy's original version, it was a spec rather than an implementation, although like McCarthy's work it's a spec expressed as code. +Now that I could write essays again, I wrote a bunch about topics I'd had stacked up. I kept writing through 2020, but I also started to think about other things I could work on. How should I choose what to do? Well, how had I chosen what to work on in the past? I wrote an essay for myself to answer that question, and I was surprised how long and messy the answer turned out to be. If this surprised me, who'd lived it, then I thought perhaps it would be interesting to other people, and encouraging to those with similarly messy lives. So I wrote a more detailed version for others to read, and this is the last sentence of it. + +[1] My experience skipped a step in the evolution of computers: time-sharing machines with interactive OSes. I went straight from batch processing to microcomputers, which made the latter seem all the more exciting. +[2] Italian words for abstract concepts can nearly always be predicted from their English cognates (except for occasional traps like polluzione). It's the everyday words that differ. So if you string together a lot of abstract concepts with a few simple verbs, you can make a little Italian go a long way. +[3] I lived at Piazza San Felice 4, so my walk to the Accademia went straight down the spine of old Florence: past the Pitti, across the bridge, past Orsanmichele, between the Duomo and the Baptistery, and then up Via Ricasoli to Piazza San Marco. I saw the city at street level in every possible condition, from empty dark winter evenings to sweltering summer days when the streets were packed with tourists. +[4] You can of course paint people like still lives if you want to, and they're willing. That sort of portrait is arguably the apex of still life painting, though the long sitting does tend to produce pained expressions in the sitters. +[5] Interleaf was one of many companies that had smart people and built impressive technology, and yet got crushed by Moore's Law. In the 1990s the exponential growth in the power of commodity (i.e. Intel) processors rolled up high-end, special-purpose hardware and software companies like a bulldozer. +[6] The signature style seekers at RISD weren't specifically mercenary. In the art world, money and coolness are tightly coupled. Anything expensive comes to be seen as fashionable, and anything seen as trendy will soon become equally costly. +[7] Technically the apartment wasn't rent-controlled but rent-stabilized, but this is a refinement only New Yorkers would know or care about. The point is that the place was really cheap, less than half market price. +[8] Most software you can launch as soon as it's done. But when the software is an online store builder and you're hosting the stores, if you don't have any users yet, that fact will be painfully obvious. So before we could launch publicly we had to launch privately, in the sense of recruiting an initial set of users and making sure they had decent-looking shops. +[9] We'd had a code editor in Viaweb for users to define their own page styles. They didn't know it, but they were editing Lisp expressions underneath. But this wasn't an app editor, because the code ran when the merchants' sites were generated, not when shoppers visited them. +[10] This was the first instance of what is now a familiar experience, and so was what happened next, when I read the comments and found they were full of angry people. How could I claim that Lisp was better than other languages? Weren't they all Turing complete? People who see the responses to essays I write sometimes tell me how sorry they feel for me, but I'm not exaggerating when I reply that things have always been like this, since the very beginning. It comes with the territory. An essay must tell readers things they don't already know, and some people dislike being told such information. +Continuing with the notes: +[11] People put plenty of stuff on the internet in the 90s of course, but putting something online is not the same as publishing it online. Publishing online means you treat the online version as the (or at least a) primary version. +[12] There is a general lesson here that our experience with Y Combinator also teaches: Customs continue to constrain you long after the restrictions that caused them have disappeared. Customary VC practice had once, like the customs about publishing essays, been based on real constraints. Startups had once been much more expensive to start, and proportionally rare. Now they could be cheap and common, but the VCs' customs still reflected the old world, just as customs about writing essays still reflected the constraints of the print era. +Which in turn implies that people who are independent-minded (i.e. less influenced by custom) will have an advantage in fields affected by rapid change (where customs are more likely to be obsolete). +Here's an interesting point, though: you can't always predict which fields will be affected by rapid change. Obviously software and venture capital will be, but who would have predicted that essay writing would be? +[13] Y Combinator was not the original name. At first we were called Cambridge Seed. But we didn't want a regional name, in case someone copied us in Silicon Valley, so we renamed ourselves after one of the coolest tricks in the lambda calculus, the Y combinator. +I picked orange as our color partly because it's the warmest, and partly because no VC used it. In 2005 all the VCs used staid colors like maroon, navy blue, and forest green, because they were trying to appeal to LPs, not founders. The YC logo itself is an inside joke: the Viaweb logo had been a white V on a red circle, so I made the new one a white Y on an orange square. +[14] YC did become a fund for a couple years starting in 2009, because it was getting so big I could no longer afford to fund it personally. But after Heroku got bought we had enough money to go back to being self-funded. +[15] I've never liked the term "deal flow," because it implies that the number of new startups at any given time is fixed. This assumption is not only false, but it's the purpose of YC to falsify it, by causing startups to be founded that would not otherwise have existed. +[16] She reports that the air conditioners were all different shapes and sizes, because there was a run on them and she had to get whatever she could, but that they were all heavier than she could carry now. +[17] Another problem with HN was a bizarre edge case that occurs when you both write essays and run a forum. When you run a forum, you're assumed to see if not every conversation, at least every conversation involving you. And when you write essays, people post highly imaginative misinterpretations of them on forums. Individually these two phenomena are tedious but bearable, but the combination is disastrous. You actually have to respond to the misinterpretations, because the assumption that you're present in the conversation means that not responding to any sufficiently upvoted criticism reads as a tacit admission that it's correct. But that response in turn encourages more; anyone who wants to pick a fight with you senses that now is their chance. +[18] The worst thing about leaving YC was not working with Jessica anymore. We'd been working on the company almost the whole time we'd known each other, and we'd neither tried nor wanted to separate it from our personal lives, so leaving was like pulling up a deeply rooted tree. +[19] One way to get more precise about the concept of invented vs discovered is to talk about space aliens. Any sufficiently advanced alien civilization would certainly know about the Pythagorean theorem, for example. I believe, though with less certainty, that they would also know about the Lisp in McCarthy's 1960 paper. +But if so there's no reason to suppose that this is the limit of the language that might be known to them. Presumably aliens need numbers and errors and I/O too. So it seems likely there exists at least one path out of McCarthy's Lisp along which discoveredness is preserved. +Thanks to Trevor Blackwell, John Collison, Patrick Collison, Daniel Gackle, Ralph Hazell, Jessica Livingston, Robert Morris, and Harj Taggar for reading drafts of this. diff --git a/docs/docs/examples/data_connectors/WebPageDemo.ipynb b/docs/docs/examples/data_connectors/WebPageDemo.ipynb index e13b82b6ac198..7ab66e3e9b41c 100644 --- a/docs/docs/examples/data_connectors/WebPageDemo.ipynb +++ b/docs/docs/examples/data_connectors/WebPageDemo.ipynb @@ -828,13 +828,79 @@ "source": [ "In default mode (\"article\") only the article text is extracted while in the \"html-text\" full text is extracted from the webpage, there the length of the text is significantly longer. " ] + }, + { + "cell_type": "markdown", + "id": "ccba060e", + "metadata": {}, + "source": [ + "# Using AgentQLWebReader 🐠" + ] + }, + { + "cell_type": "markdown", + "id": "1b0c6edb", + "metadata": {}, + "source": [ + "Use AgentQL to scrape structured data from a website." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "527d33af", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.readers.web import AgentQLWebReader\n", + "from llama_index.core import VectorStoreIndex\n", + "from IPython.display import Markdown, display" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d9850f9b", + "metadata": {}, + "outputs": [], + "source": [ + "# Using AgentQL to crawl a website\n", + "agentql_reader = AgentQLWebReader(\n", + " api_key=\"YOUR_API_KEY\", # Replace with your actual API key from https://dev.agentql.com\n", + " params={\n", + " \"is_scroll_to_bottom_enabled\": True\n", + " }, # Optional additional parameters\n", + ")\n", + "\n", + "# Load documents from a single page URL\n", + "document = agentql_reader.load_data(\n", + " url=\"https://www.ycombinator.com/companies?batch=W25\",\n", + " query=\"{ company[] { name location description industry_category link(a link to the company's detail on Ycombinator)} }\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e97d460", + "metadata": {}, + "outputs": [], + "source": [ + "index = VectorStoreIndex.from_documents(document)\n", + "query_engine = index.as_query_engine()\n", + "response = query_engine.query(\n", + " \"Find companies that are working on web agent, list their names, locations and link\"\n", + ")\n", + "\n", + "display(Markdown(f\"{response}\"))" + ] } ], "metadata": { "kernelspec": { - "display_name": "forked-llama", + "display_name": "llama-index-KZjFUsTf-py3.13", "language": "python", - "name": "forked-llama" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -846,11 +912,6 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3" - }, - "vscode": { - "interpreter": { - "hash": "c32397a35d2e76e766f80c3872b208f0c0029e8a6a9b8e2a8fe7b1641cfa009b" - } } }, "nbformat": 4, diff --git a/docs/docs/examples/data_connectors/simple_directory_reader.ipynb b/docs/docs/examples/data_connectors/simple_directory_reader.ipynb index 9ae771ab4cdb8..ed12f28c6de02 100644 --- a/docs/docs/examples/data_connectors/simple_directory_reader.ipynb +++ b/docs/docs/examples/data_connectors/simple_directory_reader.ipynb @@ -465,6 +465,7 @@ " (Optional; overrides input_dir, exclude)\n", " exclude (List): glob of python file paths to exclude (Optional)\n", " exclude_hidden (bool): Whether to exclude hidden files (dotfiles).\n", + " exclude_empty (bool): Whether to exclude empty files (Optional).\n", " encoding (str): Encoding of the files.\n", " Default is utf-8.\n", " errors (str): how encoding and decoding errors are to be handled,\n", diff --git a/docs/docs/examples/embeddings/nebius.ipynb b/docs/docs/examples/embeddings/nebius.ipynb index 2960f45a247ea..864354ea1495d 100644 --- a/docs/docs/examples/embeddings/nebius.ipynb +++ b/docs/docs/examples/embeddings/nebius.ipynb @@ -29,23 +29,14 @@ "metadata": {}, "outputs": [], "source": [ - "%pip install llama-index-embeddings-nebius" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install llama-index" + "%pip install llama-index-embeddings-nebius llama-index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Insert your Nebius AI Studio key below. You can get it by registering for free at [Nebius AI Studio](https://auth.eu.nebius.com/ui/login) and issuing the key at [API Keys section](https://studio.nebius.ai/settings/api-keys).\"" + "Upload your Nebius AI Studio key from system variables below or simply insert it. You can get it by registering for free at [Nebius AI Studio](https://auth.eu.nebius.com/ui/login) and issuing the key at [API Keys section](https://studio.nebius.ai/settings/api-keys)." ] }, { @@ -54,7 +45,9 @@ "metadata": {}, "outputs": [], "source": [ - "NEBIUS_API_KEY = \"\"" + "import os\n", + "\n", + "NEBIUS_API_KEY = os.getenv(\"NEBIUS_API_KEY\") # NEBIUS_API_KEY = \"\"" ] }, { @@ -92,7 +85,7 @@ "output_type": "stream", "text": [ "4096\n", - "[-0.002410888671875, 0.0083770751953125, -0.00542449951171875, 0.007366180419921875, -0.022216796875]\n" + "[-0.0024051666259765625, 0.0083770751953125, -0.005413055419921875, 0.007396697998046875, -0.022247314453125]\n" ] } ], @@ -120,7 +113,7 @@ "output_type": "stream", "text": [ "4096\n", - "[-0.002410888671875, 0.0083770751953125, -0.00542449951171875, 0.007366180419921875, -0.022216796875]\n" + "[-0.0024051666259765625, 0.0083770751953125, -0.005413055419921875, 0.007396697998046875, -0.022247314453125]\n" ] } ], @@ -147,10 +140,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "[-0.0003886222839355469, 0.0004887580871582031, 0.011199951171875]\n", - "[-0.003734588623046875, 0.01143646240234375, 0.008758544921875]\n", - "[0.005901336669921875, 0.005161285400390625, 0.00142669677734375]\n", - "[-0.00946807861328125, -0.0048675537109375, 0.004817962646484375]\n" + "[-0.0003848075866699219, 0.0004799365997314453, 0.011199951171875]\n", + "[-0.0037078857421875, 0.0114288330078125, 0.00878143310546875]\n", + "[0.005924224853515625, 0.005153656005859375, 0.001438140869140625]\n", + "[-0.009490966796875, -0.004852294921875, 0.004779815673828125]\n" ] } ], @@ -184,10 +177,10 @@ "name": "stdout", "output_type": "stream", "text": [ - "[-0.0003886222839355469, 0.0004887580871582031, 0.011199951171875]\n", - "[-0.003734588623046875, 0.01143646240234375, 0.008758544921875]\n", - "[0.005901336669921875, 0.005161285400390625, 0.00142669677734375]\n", - "[-0.00946807861328125, -0.0048675537109375, 0.004817962646484375]\n" + "[-0.0003848075866699219, 0.0004799365997314453, 0.011199951171875]\n", + "[-0.0037078857421875, 0.0114288330078125, 0.00878143310546875]\n", + "[0.005924224853515625, 0.005153656005859375, 0.001438140869140625]\n", + "[-0.009490966796875, -0.004852294921875, 0.004779815673828125]\n" ] } ], diff --git a/docs/docs/examples/llm/deepseek.ipynb b/docs/docs/examples/llm/deepseek.ipynb new file mode 100644 index 0000000000000..b33efa619f437 --- /dev/null +++ b/docs/docs/examples/llm/deepseek.ipynb @@ -0,0 +1,318 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4d1b897a", + "metadata": {}, + "source": [ + "\"Open" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "2e33dced-e587-4397-81b3-d6606aa1738a", + "metadata": {}, + "source": [ + "# DeepSeek\n", + "\n", + "# LlamaIndex Llms Integration: DeepSeek\n", + "\n", + "This is the DeepSeek integration for LlamaIndex. Visit [DeepSeek](https://api-docs.deepseek.com/) for information on how to get an API key and which models are supported. \n", + "\n", + "At the time of writing, you can use:\n", + "- `deepseek-chat`\n", + "- `deepseek-reasoner`\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "5863dde9-84a0-4c33-ad52-cc767442f63f", + "metadata": {}, + "source": [ + "## Setup" + ] + }, + { + "cell_type": "markdown", + "id": "833bdb2b", + "metadata": {}, + "source": [ + "If you're opening this Notebook on colab, you will probably need to install LlamaIndex 🦙." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4aff387e", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install llama-index-llms-deepseek" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad297f19-998f-4485-aa2f-d67020058b7d", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.llms.deepseek import DeepSeek\n", + "\n", + "# you can also set DEEPSEEK_API_KEY in your environment variables\n", + "llm = DeepSeek(model=\"deepseek-reasoner\", api_key=\"you_api_key\")\n", + "\n", + "# You might also want to set deepseek as your default llm\n", + "# from llama_index.core import Settings\n", + "# Settings.llm = llm" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d61b10bb-e911-47fb-8e84-19828cf224be", + "metadata": {}, + "outputs": [], + "source": [ + "response = llm.complete(\"Is 9.9 or 9.11 bigger?\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3bd14f4e-c245-4384-a471-97e4ddfcb40e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To determine whether 9.9 or 9.11 is larger, compare them by aligning their decimal places:\n", + "\n", + "1. **Write both numbers with the same number of decimal places**: \n", + " - \\(9.9\\) becomes \\(9.90\\). \n", + " - \\(9.11\\) remains \\(9.11\\). \n", + "\n", + "2. **Compare digit by digit**: \n", + " - **Units place**: Both have \\(9\\) (equal). \n", + " - **Tenths place**: \\(9\\) (in \\(9.90\\)) vs. \\(1\\) (in \\(9.11\\)). Since \\(9 > 1\\), \\(9.90 > 9.11\\). \n", + "\n", + "**Conclusion**: \n", + "\\(9.9\\) (or \\(9.90\\)) is greater than \\(9.11\\). \n", + "\n", + "\\(\\boxed{9.9}\\)\n" + ] + } + ], + "source": [ + "print(response)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "3ba9503c-b440-43c6-a50c-676c79993813", + "metadata": {}, + "source": [ + "#### Call `chat` with a list of messages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee8a4a55-5680-4dc6-a44c-fc8ad7892f80", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core.llms import ChatMessage\n", + "\n", + "messages = [\n", + " ChatMessage(\n", + " role=\"system\", content=\"You are a pirate with a colorful personality\"\n", + " ),\n", + " ChatMessage(\n", + " role=\"user\", content=\"How many 'r's are in the word 'strawberry'?\"\n", + " ),\n", + "]\n", + "resp = llm.chat(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2a9bfe53-d15b-4e75-9d91-8c5d024f4eda", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "assistant: Arrr, matey! Let's plunder the word \"strawberry\" fer them sneaky 'r's! Here be the breakdown: \n", + "\n", + "**S - T - R - A - W - B - E - R - R - Y** \n", + "\n", + "Shiver me timbers! There be **3 'r's** lurkin' in them letters! Aye, one in \"straw\" and two in \"berry\"—just like treasure buried in three chests! 🏴☠️🍓\n" + ] + } + ], + "source": [ + "print(resp)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "25ad1b00-28fc-4bcd-96c4-d5b35605721a", + "metadata": {}, + "source": [ + "### Streaming" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "13c641fa-345a-4dce-87c5-ab1f6dcf4757", + "metadata": {}, + "source": [ + "Using `stream_complete` endpoint " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06da1ef1-2f6b-497c-847b-62dd2df11491", + "metadata": {}, + "outputs": [], + "source": [ + "response = llm.stream_complete(\"Is 9.9 or 9.11 bigger?\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1b851def-5160-46e5-a30c-5a3ef2356b79", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "To determine whether 9.9 or 9.11 is bigger, we can compare them by converting both numbers to have the same number of decimal places. \n", + "\n", + "- 9.9 can be written as 9.90 (adding a zero to make it two decimal places).\n", + "- 9.11 is already in two decimal places.\n", + "\n", + "Next, we compare the tenths place:\n", + "- 9.90 has a 9 in the tenths place.\n", + "- 9.11 has a 1 in the tenths place.\n", + "\n", + "Since 9 is greater than 1, 9.90 is larger than 9.11. \n", + "\n", + "To confirm, we can subtract:\n", + "\\[ 9.90 - 9.11 = 0.79 \\]\n", + "The positive result indicates that 9.90 is greater than 9.11.\n", + "\n", + "Another method is converting to fractions:\n", + "- 9.9 is \\( \\frac{99}{10} \\) which is equivalent to \\( \\frac{990}{100} \\).\n", + "- 9.11 is \\( \\frac{911}{100} \\).\n", + "\n", + "Comparing \\( \\frac{990}{100} \\) and \\( \\frac{911}{100} \\), we see 990 is greater than 911.\n", + "\n", + "Thus, the larger number is \\boxed{9.9}." + ] + } + ], + "source": [ + "for r in response:\n", + " print(r.delta, end=\"\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "ca52051d-6b28-49d7-98f5-82e266a1c7a6", + "metadata": {}, + "source": [ + "Using `stream_chat` endpoint" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe553190-52a9-436d-84ae-4dd99a1808f4", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core.llms import ChatMessage\n", + "\n", + "messages = [\n", + " ChatMessage(\n", + " role=\"system\", content=\"You are a pirate with a colorful personality\"\n", + " ),\n", + " ChatMessage(\n", + " role=\"user\", content=\"How many 'r's are in the word 'strawberry'?\"\n", + " ),\n", + "]\n", + "resp = llm.stream_chat(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "154c503c-f893-4b6b-8a65-a9a27b636046", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Arrr, matey! Let's plunder the letters o' \"strawberry\" to count them sneaky 'r's! 🏴☠️\n", + "\n", + "**S-T-R-A-W-B-E-R-R-Y** \n", + "Yarrr, here be the breakdown: \n", + "\n", + "1. **S** 🚫 \n", + "2. **T** 🚫 \n", + "3. **R** ✅ (1st 'r') \n", + "4. **A** 🚫 \n", + "5. **W** 🚫 \n", + "6. **B** 🚫 \n", + "7. **E** 🚫 \n", + "8. **R** ✅ (2nd 'r') \n", + "9. **R** ✅ (3rd 'r') \n", + "10. **Y** 🚫 \n", + "\n", + "**Total 'r's: 3** \n", + "Shiver me timbers! Three 'r's be lurkin' in \"strawberry\"! 🍓⚔️" + ] + } + ], + "source": [ + "for r in resp:\n", + " print(r.delta, end=\"\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/docs/examples/llm/llama_2_llama_cpp.ipynb b/docs/docs/examples/llm/llama_2_llama_cpp.ipynb deleted file mode 100644 index 427f24e815db2..0000000000000 --- a/docs/docs/examples/llm/llama_2_llama_cpp.ipynb +++ /dev/null @@ -1,485 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3ac9adb4", - "metadata": {}, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "id": "368686b4-f487-4dd4-aeff-37823976529d", - "metadata": {}, - "source": [ - "# LlamaCPP \n", - "\n", - "In this short notebook, we show how to use the [llama-cpp-python](https://github.com/abetlen/llama-cpp-python) library with LlamaIndex.\n", - "\n", - "In this notebook, we use the [`llama-2-chat-13b-ggml`](https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML) model, along with the proper prompt formatting. \n", - "\n", - "Note that if you're using a version of `llama-cpp-python` after version `0.1.79`, the model format has changed from `ggmlv3` to `gguf`. Old model files like the used in this notebook can be converted using scripts in the [`llama.cpp`](https://github.com/ggerganov/llama.cpp) repo. Alternatively, you can download the GGUF version of the model above from [huggingface](https://huggingface.co/TheBloke/Llama-2-13B-chat-GGUF).\n", - "\n", - "By default, if model_path and model_url are blank, the `LlamaCPP` module will load llama2-chat-13B in either format depending on your version.\n", - "\n", - "## Installation\n", - "\n", - "To get the best performance out of `LlamaCPP`, it is recomended to install the package so that it is compilied with GPU support. A full guide for installing this way is [here](https://github.com/abetlen/llama-cpp-python#installation-with-openblas--cublas--clblast--metal).\n", - "\n", - "Full MACOS instructions are also [here](https://llama-cpp-python.readthedocs.io/en/latest/install/macos/).\n", - "\n", - "In general:\n", - "- Use `CuBLAS` if you have CUDA and an NVidia GPU\n", - "- Use `METAL` if you are running on an M1/M2 MacBook\n", - "- Use `CLBLAST` if you are running on an AMD/Intel GPU" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "aff273be", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install llama-index-embeddings-huggingface\n", - "%pip install llama-index-llms-llama-cpp" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "40a33749", - "metadata": {}, - "outputs": [], - "source": [ - "from llama_index.core import SimpleDirectoryReader, VectorStoreIndex\n", - "from llama_index.llms.llama_cpp import LlamaCPP\n", - "from llama_index.llms.llama_cpp.llama_utils import (\n", - " messages_to_prompt,\n", - " completion_to_prompt,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "e7927630-0044-41fb-a8a6-8dc3d2adb608", - "metadata": {}, - "source": [ - "## Setup LLM\n", - "\n", - "The LlamaCPP llm is highly configurable. Depending on the model being used, you'll want to pass in `messages_to_prompt` and `completion_to_prompt` functions to help format the model inputs.\n", - "\n", - "Since the default model is llama2-chat, we use the util functions found in [`llama_index.llms.llama_utils`](https://github.com/jerryjliu/llama_index/blob/main/llama_index/llms/llama_utils.py).\n", - "\n", - "For any kwargs that need to be passed in during initialization, set them in `model_kwargs`. A full list of available model kwargs is available in the [LlamaCPP docs](https://llama-cpp-python.readthedocs.io/en/latest/api-reference/#llama_cpp.llama.Llama.__init__).\n", - "\n", - "For any kwargs that need to be passed in during inference, you can set them in `generate_kwargs`. See the full list of [generate kwargs here](https://llama-cpp-python.readthedocs.io/en/latest/api-reference/#llama_cpp.llama.Llama.__call__).\n", - "\n", - "In general, the defaults are a great starting point. The example below shows configuration with all defaults.\n", - "\n", - "As noted above, we're using the [`llama-2-chat-13b-ggml`](https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML) model in this notebook which uses the `ggmlv3` model format. If you are running a version of `llama-cpp-python` greater than `0.1.79`, you can replace the `model_url` below with `\"https://huggingface.co/TheBloke/Llama-2-13B-chat-GGUF/resolve/main/llama-2-13b-chat.Q4_0.gguf\"`." - ] - }, - { - "cell_type": "markdown", - "id": "59b27895", - "metadata": {}, - "source": [ - "If you're opening this Notebook on colab, you will probably need to install LlamaIndex 🦙." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "439960c5", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install llama-index" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2640c7a4", - "metadata": {}, - "outputs": [], - "source": [ - "model_url = \"https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML/resolve/main/llama-2-13b-chat.ggmlv3.q4_0.bin\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6fa0ec4f-03ff-4e28-957f-b4b99a0faa20", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "llama.cpp: loading model from /Users/rchan/Library/Caches/llama_index/models/llama-2-13b-chat.ggmlv3.q4_0.bin\n", - "llama_model_load_internal: format = ggjt v3 (latest)\n", - "llama_model_load_internal: n_vocab = 32000\n", - "llama_model_load_internal: n_ctx = 3900\n", - "llama_model_load_internal: n_embd = 5120\n", - "llama_model_load_internal: n_mult = 256\n", - "llama_model_load_internal: n_head = 40\n", - "llama_model_load_internal: n_head_kv = 40\n", - "llama_model_load_internal: n_layer = 40\n", - "llama_model_load_internal: n_rot = 128\n", - "llama_model_load_internal: n_gqa = 1\n", - "llama_model_load_internal: rnorm_eps = 5.0e-06\n", - "llama_model_load_internal: n_ff = 13824\n", - "llama_model_load_internal: freq_base = 10000.0\n", - "llama_model_load_internal: freq_scale = 1\n", - "llama_model_load_internal: ftype = 2 (mostly Q4_0)\n", - "llama_model_load_internal: model size = 13B\n", - "llama_model_load_internal: ggml ctx size = 0.11 MB\n", - "llama_model_load_internal: mem required = 6983.72 MB (+ 3046.88 MB per state)\n", - "llama_new_context_with_model: kv self size = 3046.88 MB\n", - "ggml_metal_init: allocating\n", - "ggml_metal_init: loading '/Users/rchan/opt/miniconda3/envs/llama-index/lib/python3.10/site-packages/llama_cpp/ggml-metal.metal'\n", - "ggml_metal_init: loaded kernel_add 0x14ff4f060\n", - "ggml_metal_init: loaded kernel_add_row 0x14ff4f2c0\n", - "ggml_metal_init: loaded kernel_mul 0x14ff4f520\n", - "ggml_metal_init: loaded kernel_mul_row 0x14ff4f780\n", - "ggml_metal_init: loaded kernel_scale 0x14ff4f9e0\n", - "ggml_metal_init: loaded kernel_silu 0x14ff4fc40\n", - "ggml_metal_init: loaded kernel_relu 0x14ff4fea0\n", - "ggml_metal_init: loaded kernel_gelu 0x11f7aef50\n", - "ggml_metal_init: loaded kernel_soft_max 0x11f7af380\n", - "ggml_metal_init: loaded kernel_diag_mask_inf 0x11f7af5e0\n", - "ggml_metal_init: loaded kernel_get_rows_f16 0x11f7af840\n", - "ggml_metal_init: loaded kernel_get_rows_q4_0 0x11f7afaa0\n", - "ggml_metal_init: loaded kernel_get_rows_q4_1 0x13ffba0c0\n", - "ggml_metal_init: loaded kernel_get_rows_q2_K 0x13ffba320\n", - "ggml_metal_init: loaded kernel_get_rows_q3_K 0x13ffba580\n", - "ggml_metal_init: loaded kernel_get_rows_q4_K 0x13ffbaab0\n", - "ggml_metal_init: loaded kernel_get_rows_q5_K 0x13ffbaea0\n", - "ggml_metal_init: loaded kernel_get_rows_q6_K 0x13ffbb290\n", - "ggml_metal_init: loaded kernel_rms_norm 0x13ffbb690\n", - "ggml_metal_init: loaded kernel_norm 0x13ffbba80\n", - "ggml_metal_init: loaded kernel_mul_mat_f16_f32 0x13ffbc070\n", - "ggml_metal_init: loaded kernel_mul_mat_q4_0_f32 0x13ffbc510\n", - "ggml_metal_init: loaded kernel_mul_mat_q4_1_f32 0x11f7aff40\n", - "ggml_metal_init: loaded kernel_mul_mat_q2_K_f32 0x11f7b03e0\n", - "ggml_metal_init: loaded kernel_mul_mat_q3_K_f32 0x11f7b0880\n", - "ggml_metal_init: loaded kernel_mul_mat_q4_K_f32 0x11f7b0d20\n", - "ggml_metal_init: loaded kernel_mul_mat_q5_K_f32 0x11f7b11c0\n", - "ggml_metal_init: loaded kernel_mul_mat_q6_K_f32 0x11f7b1860\n", - "ggml_metal_init: loaded kernel_mul_mm_f16_f32 0x11f7b1d40\n", - "ggml_metal_init: loaded kernel_mul_mm_q4_0_f32 0x11f7b2220\n", - "ggml_metal_init: loaded kernel_mul_mm_q4_1_f32 0x11f7b2700\n", - "ggml_metal_init: loaded kernel_mul_mm_q2_K_f32 0x11f7b2be0\n", - "ggml_metal_init: loaded kernel_mul_mm_q3_K_f32 0x11f7b30c0\n", - "ggml_metal_init: loaded kernel_mul_mm_q4_K_f32 0x11f7b35a0\n", - "ggml_metal_init: loaded kernel_mul_mm_q5_K_f32 0x11f7b3a80\n", - "ggml_metal_init: loaded kernel_mul_mm_q6_K_f32 0x11f7b3f60\n", - "ggml_metal_init: loaded kernel_rope 0x11f7b41c0\n", - "ggml_metal_init: loaded kernel_alibi_f32 0x11f7b47c0\n", - "ggml_metal_init: loaded kernel_cpy_f32_f16 0x11f7b4d90\n", - "ggml_metal_init: loaded kernel_cpy_f32_f32 0x11f7b5360\n", - "ggml_metal_init: loaded kernel_cpy_f16_f16 0x11f7b5930\n", - "ggml_metal_init: recommendedMaxWorkingSetSize = 21845.34 MB\n", - "ggml_metal_init: hasUnifiedMemory = true\n", - "ggml_metal_init: maxTransferRate = built-in GPU\n", - "llama_new_context_with_model: compute buffer total size = 356.03 MB\n", - "llama_new_context_with_model: max tensor size = 87.89 MB\n", - "ggml_metal_add_buffer: allocated 'data ' buffer, size = 6984.06 MB, ( 6984.50 / 21845.34)\n", - "ggml_metal_add_buffer: allocated 'eval ' buffer, size = 1.36 MB, ( 6985.86 / 21845.34)\n", - "ggml_metal_add_buffer: allocated 'kv ' buffer, size = 3048.88 MB, (10034.73 / 21845.34)\n", - "ggml_metal_add_buffer: allocated 'alloc ' buffer, size = 354.70 MB, (10389.44 / 21845.34)\n", - "AVX = 0 | AVX2 = 0 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 0 | NEON = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 0 | VSX = 0 | \n" - ] - } - ], - "source": [ - "llm = LlamaCPP(\n", - " # You can pass in the URL to a GGML model to download it automatically\n", - " model_url=model_url,\n", - " # optionally, you can set the path to a pre-downloaded model instead of model_url\n", - " model_path=None,\n", - " temperature=0.1,\n", - " max_new_tokens=256,\n", - " # llama2 has a context window of 4096 tokens, but we set it lower to allow for some wiggle room\n", - " context_window=3900,\n", - " # kwargs to pass to __call__()\n", - " generate_kwargs={},\n", - " # kwargs to pass to __init__()\n", - " # set to at least 1 to use GPU\n", - " model_kwargs={\"n_gpu_layers\": 1},\n", - " # transform inputs into Llama2 format\n", - " messages_to_prompt=messages_to_prompt,\n", - " completion_to_prompt=completion_to_prompt,\n", - " verbose=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "445453b1", - "metadata": {}, - "source": [ - "We can tell that the model is using `metal` due to the logging!" - ] - }, - { - "cell_type": "markdown", - "id": "5e2e6a78-7e5d-4915-bcbf-6087edb30276", - "metadata": {}, - "source": [ - "## Start using our `LlamaCPP` LLM abstraction!\n", - "\n", - "We can simply use the `complete` method of our `LlamaCPP` LLM abstraction to generate completions given a prompt." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5cfaf34c-0348-415e-98bb-83f782d64fe9", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Of course, I'd be happy to help! Here's a short poem about cats and dogs:\n", - "\n", - "Cats and dogs, so different yet the same,\n", - "Both furry friends, with their own special game.\n", - "\n", - "Cats purr and curl up tight,\n", - "Dogs wag their tails with delight.\n", - "\n", - "Cats hunt mice with stealthy grace,\n", - "Dogs chase after balls with joyful pace.\n", - "\n", - "But despite their differences, they share,\n", - "A love for play and a love so fair.\n", - "\n", - "So here's to our feline and canine friends,\n", - "Both equally dear, and both equally grand.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "llama_print_timings: load time = 1204.19 ms\n", - "llama_print_timings: sample time = 106.79 ms / 146 runs ( 0.73 ms per token, 1367.14 tokens per second)\n", - "llama_print_timings: prompt eval time = 1204.14 ms / 81 tokens ( 14.87 ms per token, 67.27 tokens per second)\n", - "llama_print_timings: eval time = 7468.88 ms / 145 runs ( 51.51 ms per token, 19.41 tokens per second)\n", - "llama_print_timings: total time = 8993.90 ms\n" - ] - } - ], - "source": [ - "response = llm.complete(\"Hello! Can you tell me a poem about cats and dogs?\")\n", - "print(response.text)" - ] - }, - { - "cell_type": "markdown", - "id": "9038f7d7", - "metadata": {}, - "source": [ - "We can use the `stream_complete` endpoint to stream the response as it’s being generated rather than waiting for the entire response to be generated." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7b059409-cd9d-4651-979c-03b3943e94af", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Llama.generate: prefix-match hit\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Sure! Here's a poem about fast cars:\n", - "\n", - "Fast cars, sleek and strong\n", - "Racing down the highway all day long\n", - "Their engines purring smooth and sweet\n", - "As they speed through the streets\n", - "\n", - "Their wheels grip the road with might\n", - "As they take off like a shot in flight\n", - "The wind rushes past with a roar\n", - "As they leave all else behind\n", - "\n", - "With paint that shines like the sun\n", - "And lines that curve like a dream\n", - "They're a sight to behold, my son\n", - "These fast cars, so sleek and serene\n", - "\n", - "So if you ever see one pass\n", - "Don't be afraid to give a cheer\n", - "For these machines of speed and grace\n", - "Are truly something to admire and revere." - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "llama_print_timings: load time = 1204.19 ms\n", - "llama_print_timings: sample time = 123.72 ms / 169 runs ( 0.73 ms per token, 1365.97 tokens per second)\n", - "llama_print_timings: prompt eval time = 267.03 ms / 14 tokens ( 19.07 ms per token, 52.43 tokens per second)\n", - "llama_print_timings: eval time = 8794.21 ms / 168 runs ( 52.35 ms per token, 19.10 tokens per second)\n", - "llama_print_timings: total time = 9485.38 ms\n" - ] - } - ], - "source": [ - "response_iter = llm.stream_complete(\"Can you write me a poem about fast cars?\")\n", - "for response in response_iter:\n", - " print(response.delta, end=\"\", flush=True)" - ] - }, - { - "cell_type": "markdown", - "id": "f7617600", - "metadata": {}, - "source": [ - "## Query engine set up with LlamaCPP\n", - "\n", - "We can simply pass in the `LlamaCPP` LLM abstraction to the `LlamaIndex` query engine as usual.\n", - "\n", - "But first, let's change the global tokenizer to match our LLM." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d8ff0c0b", - "metadata": {}, - "outputs": [], - "source": [ - "from llama_index.core import set_global_tokenizer\n", - "from transformers import AutoTokenizer\n", - "\n", - "set_global_tokenizer(\n", - " AutoTokenizer.from_pretrained(\"NousResearch/Llama-2-7b-chat-hf\").encode\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d4c6f564", - "metadata": {}, - "outputs": [], - "source": [ - "# use Huggingface embeddings\n", - "from llama_index.embeddings.huggingface import HuggingFaceEmbedding\n", - "\n", - "embed_model = HuggingFaceEmbedding(model_name=\"BAAI/bge-small-en-v1.5\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5d485f1e", - "metadata": {}, - "outputs": [], - "source": [ - "# load documents\n", - "documents = SimpleDirectoryReader(\n", - " \"../../../examples/paul_graham_essay/data\"\n", - ").load_data()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c55c33cd", - "metadata": {}, - "outputs": [], - "source": [ - "# create vector store index\n", - "index = VectorStoreIndex.from_documents(documents, embed_model=embed_model)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e07659c8", - "metadata": {}, - "outputs": [], - "source": [ - "# set up query engine\n", - "query_engine = index.as_query_engine(llm=llm)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "64e095c5", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Llama.generate: prefix-match hit\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Based on the given context information, the author's childhood activities were writing short stories and programming. They wrote programs on punch cards using an early version of Fortran and later used a TRS-80 microcomputer to write simple games, a program to predict the height of model rockets, and a word processor that their father used to write at least one book.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n", - "llama_print_timings: load time = 1204.19 ms\n", - "llama_print_timings: sample time = 56.13 ms / 80 runs ( 0.70 ms per token, 1425.21 tokens per second)\n", - "llama_print_timings: prompt eval time = 65280.71 ms / 2272 tokens ( 28.73 ms per token, 34.80 tokens per second)\n", - "llama_print_timings: eval time = 6877.38 ms / 79 runs ( 87.06 ms per token, 11.49 tokens per second)\n", - "llama_print_timings: total time = 72315.85 ms\n" - ] - } - ], - "source": [ - "response = query_engine.query(\"What did the author do growing up?\")\n", - "print(response)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/docs/examples/llm/llama_cpp.ipynb b/docs/docs/examples/llm/llama_cpp.ipynb new file mode 100644 index 0000000000000..34b3f4f7bc144 --- /dev/null +++ b/docs/docs/examples/llm/llama_cpp.ipynb @@ -0,0 +1,975 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3ac9adb4", + "metadata": {}, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "id": "368686b4-f487-4dd4-aeff-37823976529d", + "metadata": {}, + "source": [ + "# LlamaCPP \n", + "\n", + "In this short notebook, we show how to use the [llama-cpp-python](https://github.com/abetlen/llama-cpp-python) library with LlamaIndex.\n", + "\n", + "In this notebook, we use the [`Qwen/Qwen2.5-7B-Instruct-GGUF`](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct-GGUF) model, along with the proper prompt formatting. \n", + "\n", + "By default, if model_path and model_url are blank, the `LlamaCPP` module will load llama2-chat-13B.\n", + "\n", + "## Installation\n", + "\n", + "To get the best performance out of `LlamaCPP`, it is recommended to install the package so that it is compiled with GPU support. A full guide for installing this way is [here](https://github.com/abetlen/llama-cpp-python#installation-with-openblas--cublas--clblast--metal).\n", + "\n", + "Full MACOS instructions are also [here](https://llama-cpp-python.readthedocs.io/en/latest/install/macos/).\n", + "\n", + "In general:\n", + "- Use `CuBLAS` if you have CUDA and an NVidia GPU\n", + "- Use `METAL` if you are running on an M1/M2 MacBook\n", + "- Use `CLBLAST` if you are running on an AMD/Intel GPU" + ] + }, + { + "cell_type": "markdown", + "id": "271ff51f", + "metadata": {}, + "source": [ + "For me, on a MAC, I need to install the `metal` backend.\n", + "\n", + "```bash\n", + "CMAKE_ARGS=\"-DGGML_METAL=on\" pip install llama-cpp-python\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "id": "c37fe74d", + "metadata": {}, + "source": [ + "Then you can install the required llama-index pacakages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aff273be", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install llama-index-embeddings-huggingface\n", + "%pip install llama-index-llms-llama-cpp" + ] + }, + { + "cell_type": "markdown", + "id": "e7927630-0044-41fb-a8a6-8dc3d2adb608", + "metadata": {}, + "source": [ + "## Setup LLM\n", + "\n", + "The LlamaCPP llm is highly configurable. Depending on the model being used, you'll want to pass in `messages_to_prompt` and `completion_to_prompt` functions to help format the model inputs.\n", + "\n", + "For any kwargs that need to be passed in during initialization, set them in `model_kwargs`. A full list of available model kwargs is available in the [LlamaCPP docs](https://llama-cpp-python.readthedocs.io/en/latest/api-reference/#llama_cpp.llama.Llama.__init__).\n", + "\n", + "For any kwargs that need to be passed in during inference, you can set them in `generate_kwargs`. See the full list of [generate kwargs here](https://llama-cpp-python.readthedocs.io/en/latest/api-reference/#llama_cpp.llama.Llama.__call__).\n", + "\n", + "In general, the defaults are a great starting point. The example below shows configuration with all defaults." + ] + }, + { + "cell_type": "markdown", + "id": "59b27895", + "metadata": {}, + "source": [ + "If you're opening this Notebook on colab, you will probably need to install LlamaIndex 🦙." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2640c7a4", + "metadata": {}, + "outputs": [], + "source": [ + "model_url = \"https://huggingface.co/Qwen/Qwen2.5-7B-Instruct-GGUF/resolve/main/qwen2.5-7b-instruct-q3_k_m.gguf\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fa0ec4f-03ff-4e28-957f-b4b99a0faa20", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "llama_model_load_from_file: using device Metal (Apple M2 Max) - 16584 MiB free\n", + "llama_model_loader: loaded meta data with 26 key-value pairs and 339 tensors from /Users/loganmarkewich/Library/Caches/llama_index/models/qwen2.5-7b-instruct-q3_k_m.gguf (version GGUF V3 (latest))\n", + "llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.\n", + "llama_model_loader: - kv 0: general.architecture str = qwen2\n", + "llama_model_loader: - kv 1: general.type str = model\n", + "llama_model_loader: - kv 2: general.name str = qwen2.5-7b-instruct\n", + "llama_model_loader: - kv 3: general.version str = v0.1\n", + "llama_model_loader: - kv 4: general.finetune str = qwen2.5-7b-instruct\n", + "llama_model_loader: - kv 5: general.size_label str = 7.6B\n", + "llama_model_loader: - kv 6: qwen2.block_count u32 = 28\n", + "llama_model_loader: - kv 7: qwen2.context_length u32 = 131072\n", + "llama_model_loader: - kv 8: qwen2.embedding_length u32 = 3584\n", + "llama_model_loader: - kv 9: qwen2.feed_forward_length u32 = 18944\n", + "llama_model_loader: - kv 10: qwen2.attention.head_count u32 = 28\n", + "llama_model_loader: - kv 11: qwen2.attention.head_count_kv u32 = 4\n", + "llama_model_loader: - kv 12: qwen2.rope.freq_base f32 = 1000000.000000\n", + "llama_model_loader: - kv 13: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001\n", + "llama_model_loader: - kv 14: general.file_type u32 = 12\n", + "llama_model_loader: - kv 15: tokenizer.ggml.model str = gpt2\n", + "llama_model_loader: - kv 16: tokenizer.ggml.pre str = qwen2\n", + "llama_model_loader: - kv 17: tokenizer.ggml.tokens arr[str,152064] = [\"!\", \"\\\"\", \"#\", \"$\", \"%\", \"&\", \"'\", ...\n", + "llama_model_loader: - kv 18: tokenizer.ggml.token_type arr[i32,152064] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...\n", + "llama_model_loader: - kv 19: tokenizer.ggml.merges arr[str,151387] = [\"Ġ Ġ\", \"ĠĠ ĠĠ\", \"i n\", \"Ġ t\",...\n", + "llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645\n", + "llama_model_loader: - kv 21: tokenizer.ggml.padding_token_id u32 = 151643\n", + "llama_model_loader: - kv 22: tokenizer.ggml.bos_token_id u32 = 151643\n", + "llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false\n", + "llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\\n {{- '<|im_start|>...\n", + "llama_model_loader: - kv 25: general.quantization_version u32 = 2\n", + "llama_model_loader: - type f32: 141 tensors\n", + "llama_model_loader: - type q3_K: 113 tensors\n", + "llama_model_loader: - type q4_K: 81 tensors\n", + "llama_model_loader: - type q5_K: 3 tensors\n", + "llama_model_loader: - type q6_K: 1 tensors\n", + "llm_load_vocab: control token: 151659 '<|fim_prefix|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151656 '<|video_pad|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151655 '<|image_pad|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151653 '<|vision_end|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151652 '<|vision_start|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151651 '<|quad_end|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151649 '<|box_end|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151648 '<|box_start|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151646 '<|object_ref_start|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151644 '<|im_start|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151661 '<|fim_suffix|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151647 '<|object_ref_end|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151660 '<|fim_middle|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151654 '<|vision_pad|>' is not marked as EOG\n", + "llm_load_vocab: control token: 151650 '<|quad_start|>' is not marked as EOG\n", + "llm_load_vocab: special tokens cache size = 22\n", + "llm_load_vocab: token to piece cache size = 0.9310 MB\n", + "llm_load_print_meta: format = GGUF V3 (latest)\n", + "llm_load_print_meta: arch = qwen2\n", + "llm_load_print_meta: vocab type = BPE\n", + "llm_load_print_meta: n_vocab = 152064\n", + "llm_load_print_meta: n_merges = 151387\n", + "llm_load_print_meta: vocab_only = 0\n", + "llm_load_print_meta: n_ctx_train = 131072\n", + "llm_load_print_meta: n_embd = 3584\n", + "llm_load_print_meta: n_layer = 28\n", + "llm_load_print_meta: n_head = 28\n", + "llm_load_print_meta: n_head_kv = 4\n", + "llm_load_print_meta: n_rot = 128\n", + "llm_load_print_meta: n_swa = 0\n", + "llm_load_print_meta: n_embd_head_k = 128\n", + "llm_load_print_meta: n_embd_head_v = 128\n", + "llm_load_print_meta: n_gqa = 7\n", + "llm_load_print_meta: n_embd_k_gqa = 512\n", + "llm_load_print_meta: n_embd_v_gqa = 512\n", + "llm_load_print_meta: f_norm_eps = 0.0e+00\n", + "llm_load_print_meta: f_norm_rms_eps = 1.0e-06\n", + "llm_load_print_meta: f_clamp_kqv = 0.0e+00\n", + "llm_load_print_meta: f_max_alibi_bias = 0.0e+00\n", + "llm_load_print_meta: f_logit_scale = 0.0e+00\n", + "llm_load_print_meta: n_ff = 18944\n", + "llm_load_print_meta: n_expert = 0\n", + "llm_load_print_meta: n_expert_used = 0\n", + "llm_load_print_meta: causal attn = 1\n", + "llm_load_print_meta: pooling type = 0\n", + "llm_load_print_meta: rope type = 2\n", + "llm_load_print_meta: rope scaling = linear\n", + "llm_load_print_meta: freq_base_train = 1000000.0\n", + "llm_load_print_meta: freq_scale_train = 1\n", + "llm_load_print_meta: n_ctx_orig_yarn = 131072\n", + "llm_load_print_meta: rope_finetuned = unknown\n", + "llm_load_print_meta: ssm_d_conv = 0\n", + "llm_load_print_meta: ssm_d_inner = 0\n", + "llm_load_print_meta: ssm_d_state = 0\n", + "llm_load_print_meta: ssm_dt_rank = 0\n", + "llm_load_print_meta: ssm_dt_b_c_rms = 0\n", + "llm_load_print_meta: model type = 7B\n", + "llm_load_print_meta: model ftype = Q3_K - Medium\n", + "llm_load_print_meta: model params = 7.62 B\n", + "llm_load_print_meta: model size = 3.54 GiB (3.99 BPW) \n", + "llm_load_print_meta: general.name = qwen2.5-7b-instruct\n", + "llm_load_print_meta: BOS token = 151643 '<|endoftext|>'\n", + "llm_load_print_meta: EOS token = 151645 '<|im_end|>'\n", + "llm_load_print_meta: EOT token = 151645 '<|im_end|>'\n", + "llm_load_print_meta: PAD token = 151643 '<|endoftext|>'\n", + "llm_load_print_meta: LF token = 148848 'ÄĬ'\n", + "llm_load_print_meta: FIM PRE token = 151659 '<|fim_prefix|>'\n", + "llm_load_print_meta: FIM SUF token = 151661 '<|fim_suffix|>'\n", + "llm_load_print_meta: FIM MID token = 151660 '<|fim_middle|>'\n", + "llm_load_print_meta: FIM PAD token = 151662 '<|fim_pad|>'\n", + "llm_load_print_meta: FIM REP token = 151663 '<|repo_name|>'\n", + "llm_load_print_meta: FIM SEP token = 151664 '<|file_sep|>'\n", + "llm_load_print_meta: EOG token = 151643 '<|endoftext|>'\n", + "llm_load_print_meta: EOG token = 151645 '<|im_end|>'\n", + "llm_load_print_meta: EOG token = 151662 '<|fim_pad|>'\n", + "llm_load_print_meta: EOG token = 151663 '<|repo_name|>'\n", + "llm_load_print_meta: EOG token = 151664 '<|file_sep|>'\n", + "llm_load_print_meta: max token length = 256\n", + "llm_load_tensors: tensor 'token_embd.weight' (q3_K) (and 0 others) cannot be used with preferred buffer type CPU_AARCH64, using CPU instead\n", + "ggml_backend_metal_log_allocated_size: allocated buffer, size = 3402.97 MiB, ( 8663.83 / 21845.34)\n", + "llm_load_tensors: offloading 28 repeating layers to GPU\n", + "llm_load_tensors: offloading output layer to GPU\n", + "llm_load_tensors: offloaded 29/29 layers to GPU\n", + "llm_load_tensors: Metal_Mapped model buffer size = 3402.96 MiB\n", + "llm_load_tensors: CPU_Mapped model buffer size = 223.33 MiB\n", + "...................................................................................\n", + "llama_new_context_with_model: n_seq_max = 1\n", + "llama_new_context_with_model: n_ctx = 16384\n", + "llama_new_context_with_model: n_ctx_per_seq = 16384\n", + "llama_new_context_with_model: n_batch = 512\n", + "llama_new_context_with_model: n_ubatch = 512\n", + "llama_new_context_with_model: flash_attn = 0\n", + "llama_new_context_with_model: freq_base = 1000000.0\n", + "llama_new_context_with_model: freq_scale = 1\n", + "llama_new_context_with_model: n_ctx_per_seq (16384) < n_ctx_train (131072) -- the full capacity of the model will not be utilized\n", + "ggml_metal_init: allocating\n", + "ggml_metal_init: found device: Apple M2 Max\n", + "ggml_metal_init: picking default device: Apple M2 Max\n", + "ggml_metal_init: using embedded metal library\n", + "ggml_metal_init: GPU name: Apple M2 Max\n", + "ggml_metal_init: GPU family: MTLGPUFamilyApple8 (1008)\n", + "ggml_metal_init: GPU family: MTLGPUFamilyCommon3 (3003)\n", + "ggml_metal_init: GPU family: MTLGPUFamilyMetal3 (5001)\n", + "ggml_metal_init: simdgroup reduction = true\n", + "ggml_metal_init: simdgroup matrix mul. = true\n", + "ggml_metal_init: has bfloat = true\n", + "ggml_metal_init: use bfloat = false\n", + "ggml_metal_init: hasUnifiedMemory = true\n", + "ggml_metal_init: recommendedMaxWorkingSetSize = 22906.50 MB\n", + "ggml_metal_init: loaded kernel_add 0x4b795baa0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_add_row 0x3443f6190 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sub 0x4b788d650 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sub_row 0x4b787c770 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul 0x341732ec0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_row 0x33f8a6f70 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_div 0x4b78710d0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_div_row 0x4b7893f30 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_repeat_f32 0x33e9d3420 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_repeat_f16 0x33f8a7630 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_repeat_i32 0x33f8a6170 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_repeat_i16 0x3417904b0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_scale 0x4b795cdc0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_scale_4 0x3417c1b60 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_clamp 0x33f8a8690 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_tanh 0x4b795c0a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_relu 0x33f8a8fd0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sigmoid 0x4b795e020 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_gelu 0x3417f12d0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_gelu_4 0x4b787e370 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_gelu_quick 0x34177c660 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_gelu_quick_4 0x33f8a98f0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_silu 0x4b795e950 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_silu_4 0x3417e66c0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_elu 0x4b795f280 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_soft_max_f16 0x4b795f9a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_soft_max_f16_4 0x4b7960070 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_soft_max_f32 0x4b7960750 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_soft_max_f32_4 0x4b7960de0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_diag_mask_inf 0x33f8a68a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_diag_mask_inf_8 0x4b7961350 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_f32 0x33f8a9ed0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_f16 0x3443f5b40 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_get_rows_bf16 (not supported)\n", + "ggml_metal_init: loaded kernel_get_rows_q4_0 0x3443f5ef0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q4_1 0x33f8aaf60 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q5_0 0x4b78728b0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q5_1 0x34174bd90 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q8_0 0x4b787be70 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q2_K 0x341714490 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q3_K 0x4b788ba40 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q4_K 0x4b78921a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q5_K 0x33f8ab590 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_q6_K 0x33f8abc10 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq2_xxs 0x33f8ac2d0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq2_xs 0x33f8aca30 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq3_xxs 0x4b7873110 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq3_s 0x4b7961ae0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq2_s 0x33f8ad0e0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq1_s 0x33f8ad7c0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq1_m 0x341764d70 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq4_nl 0x33f8ade30 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_iq4_xs 0x4b7962160 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_get_rows_i32 0x4b79627e0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_rms_norm 0x4b88bf220 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_group_norm 0x33e9d2fc0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_norm 0x33f8ae510 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_ssm_conv_f32 0x4b7897c60 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_ssm_scan_f32 0x4b78979c0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_f32_f32 0x4b7962e90 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_mul_mv_bf16_f32 (not supported)\n", + "ggml_metal_init: skipping kernel_mul_mv_bf16_f32_1row (not supported)\n", + "ggml_metal_init: skipping kernel_mul_mv_bf16_f32_l4 (not supported)\n", + "ggml_metal_init: skipping kernel_mul_mv_bf16_bf16 (not supported)\n", + "ggml_metal_init: loaded kernel_mul_mv_f16_f32 0x4b789aa80 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_f16_f32_1row 0x33f8aeca0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_f16_f32_l4 0x4b8b61390 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_f16_f16 0x4b8b615f0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q4_0_f32 0x4b8b619f0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q4_1_f32 0x33f8af450 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q5_0_f32 0x4b7885df0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q5_1_f32 0x4b88be030 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q8_0_f32 0x33f8afb30 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_f16_f32_r1_2 0x33f8b01d0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_f16_f32_r1_3 0x4b7888520 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_f16_f32_r1_4 0x4b789ada0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_f16_f32_r1_5 0x3417bd850 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_0_f32_r1_2 0x33f8b0980 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_0_f32_r1_3 0x4b7963610 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_0_f32_r1_4 0x4b7963d90 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_0_f32_r1_5 0x4b7964520 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_1_f32_r1_2 0x341755a80 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_1_f32_r1_3 0x4b788a5e0 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_1_f32_r1_4 0x3417629e0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_1_f32_r1_5 0x4b7876720 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_0_f32_r1_2 0x33f8b10c0 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_0_f32_r1_3 0x33f8b1850 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_0_f32_r1_4 0x4b7870220 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_0_f32_r1_5 0x4b7828e60 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_1_f32_r1_2 0x33f8b1fa0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_1_f32_r1_3 0x4b7870b70 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_1_f32_r1_4 0x3417dd2e0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_1_f32_r1_5 0x34170cf50 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q8_0_f32_r1_2 0x4b781f450 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q8_0_f32_r1_3 0x33e9d3ed0 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q8_0_f32_r1_4 0x33e9d4430 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q8_0_f32_r1_5 0x4b7964c30 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_K_f32_r1_2 0x4b7888a80 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_K_f32_r1_3 0x4b7965340 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_K_f32_r1_4 0x4b7965ae0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q4_K_f32_r1_5 0x4b7878ec0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_K_f32_r1_2 0x4b79661f0 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_K_f32_r1_3 0x33f8b2630 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_K_f32_r1_4 0x4b7874000 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q5_K_f32_r1_5 0x4b7879c30 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q6_K_f32_r1_2 0x4b7966830 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q6_K_f32_r1_3 0x4b7885850 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q6_K_f32_r1_4 0x4b787f700 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_q6_K_f32_r1_5 0x4b787e940 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_iq4_nl_f32_r1_2 0x33f8b2e20 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_iq4_nl_f32_r1_3 0x33f8b3490 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_iq4_nl_f32_r1_4 0x33f8b3ca0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_ext_iq4_nl_f32_r1_5 0x33f8b4310 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q2_K_f32 0x33f8b4b20 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q3_K_f32 0x4b78950e0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q4_K_f32 0x4b7966f30 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q5_K_f32 0x33f8b51a0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_q6_K_f32 0x4b7967620 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq2_xxs_f32 0x4b7850d90 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq2_xs_f32 0x4b7967cf0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq3_xxs_f32 0x33f8b5840 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq3_s_f32 0x33f8b5f20 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq2_s_f32 0x4b7968450 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq1_s_f32 0x3417f4580 | th_max = 448 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq1_m_f32 0x33f8b6640 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq4_nl_f32 0x34179f610 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_iq4_xs_f32 0x4b7968af0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_f32_f32 0x3417a6d50 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_f16_f32 0x4b79692c0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_mul_mv_id_bf16_f32 (not supported)\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q4_0_f32 0x34179e960 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q4_1_f32 0x33e9d4990 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q5_0_f32 0x3417a3400 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q5_1_f32 0x34172a1c0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q8_0_f32 0x33e9d4ea0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q2_K_f32 0x33e9d53b0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q3_K_f32 0x4b7969990 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q4_K_f32 0x33f8b6dd0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q5_K_f32 0x33f8b74a0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_q6_K_f32 0x3417238e0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq2_xxs_f32 0x33f8b7bf0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq2_xs_f32 0x34177e750 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq3_xxs_f32 0x4b88be740 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq3_s_f32 0x4b88c0550 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq2_s_f32 0x4b78879e0 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq1_s_f32 0x4b78752a0 | th_max = 448 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq1_m_f32 0x4b796a0a0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq4_nl_f32 0x33f8b83a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mv_id_iq4_xs_f32 0x33f8b8b10 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_f32_f32 0x33f8b92a0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_f16_f32 0x34172c720 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: skipping kernel_mul_mm_bf16_f32 (not supported)\n", + "ggml_metal_init: loaded kernel_mul_mm_q4_0_f32 0x4b796a8b0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q4_1_f32 0x33f8b9960 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q5_0_f32 0x33e9d58c0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q5_1_f32 0x33e9d5de0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q8_0_f32 0x3443f5480 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q2_K_f32 0x341771f90 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q3_K_f32 0x4b796afa0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q4_K_f32 0x4b796bb20 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q5_K_f32 0x3417557a0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_q6_K_f32 0x4b789e1b0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq2_xxs_f32 0x4b78855a0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq2_xs_f32 0x4b88c0c90 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq3_xxs_f32 0x4b8b621e0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq3_s_f32 0x33f8ba020 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq2_s_f32 0x34170b0b0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq1_s_f32 0x4b88c1460 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq1_m_f32 0x4b8b62560 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq4_nl_f32 0x4b8b628e0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_iq4_xs_f32 0x3443f3830 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_f32_f32 0x4b796b540 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_f16_f32 0x33f8ba950 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: skipping kernel_mul_mm_id_bf16_f32 (not supported)\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q4_0_f32 0x341741360 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q4_1_f32 0x4b7887390 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q5_0_f32 0x4b78a1070 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q5_1_f32 0x3417282d0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q8_0_f32 0x4b781bc50 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q2_K_f32 0x4b7881520 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q3_K_f32 0x4b7880f50 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q4_K_f32 0x33e9d5b20 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q5_K_f32 0x4b7877720 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_q6_K_f32 0x33f8bb150 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq2_xxs_f32 0x33f8bb810 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq2_xs_f32 0x33f8bc020 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq3_xxs_f32 0x3417aac10 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq3_s_f32 0x4b796c280 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq2_s_f32 0x4b796ca30 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq1_s_f32 0x3417714e0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq1_m_f32 0x4b796d1a0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq4_nl_f32 0x3417772f0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_mul_mm_id_iq4_xs_f32 0x3417a9290 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_rope_norm_f32 0x3417242b0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_rope_norm_f16 0x341756f20 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_rope_neox_f32 0x4b8b62e40 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_rope_neox_f16 0x3443f2870 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_im2col_f16 0x33e9d62f0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_im2col_f32 0x33f8bc6a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_im2col_ext_f16 0x4b8b63210 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_im2col_ext_f32 0x33f8bced0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_conv_transpose_1d_f32_f32 0x4b8b63590 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_conv_transpose_1d_f16_f32 0x4b8b63910 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_upscale_f32 0x4b796d8a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_pad_f32 0x33f8bdb40 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_pad_reflect_1d_f32 0x33f8bdda0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_timestep_embedding_f32 0x33f8be950 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_arange_f32 0x33e9d6e00 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_argsort_f32_i32_asc 0x4b796e150 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_argsort_f32_i32_desc 0x3443f4040 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_leaky_relu_f32 0x4b796eb70 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_f16_h64 0x4b796f260 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_f16_h80 0x33f8bf140 | th_max = 640 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_f16_h96 0x341764ae0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_f16_h112 0x3417941b0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_f16_h128 0x4b8b63fb0 | th_max = 512 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_f16_h256 0x33f8bf880 | th_max = 512 | th_width = 32\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_bf16_h64 (not supported)\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_bf16_h80 (not supported)\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_bf16_h96 (not supported)\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_bf16_h112 (not supported)\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_bf16_h128 (not supported)\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_bf16_h256 (not supported)\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_0_h64 0x341716c00 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_0_h80 0x3417560a0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_0_h96 0x33e9d71a0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_0_h112 0x33f8c0010 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_0_h128 0x3443f19f0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_0_h256 0x4b796f9a0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_1_h64 0x33f8c0750 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_1_h80 0x33e9d76b0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_1_h96 0x33e9d8110 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_1_h112 0x4b79700b0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_1_h128 0x4b7970830 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q4_1_h256 0x4b88c1f40 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_0_h64 0x4b7970fa0 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_0_h80 0x4b8b64210 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_0_h96 0x3443f1350 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_0_h112 0x4b88c21a0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_0_h128 0x33f8c09b0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_0_h256 0x33e9d8610 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_1_h64 0x33f8c1020 | th_max = 576 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_1_h80 0x4b7971750 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_1_h96 0x4b8b64470 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_1_h112 0x33f8c17e0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_1_h128 0x33e9d8b10 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q5_1_h256 0x33e9d9010 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q8_0_h64 0x341724fb0 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q8_0_h80 0x33f8c1fb0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q8_0_h96 0x4b787c490 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q8_0_h112 0x4b789a700 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q8_0_h128 0x4b7882c00 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_q8_0_h256 0x4b78984a0 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_f16_h128 0x34176b540 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_vec_bf16_h128 (not supported)\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q4_0_h128 0x34170a450 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q4_1_h128 0x34177d410 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q5_0_h128 0x4b78909f0 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q5_1_h128 0x34170aa50 | th_max = 768 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q8_0_h128 0x33f8c2710 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_f16_h256 0x4b786dcb0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_flash_attn_ext_vec_bf16_h256 (not supported)\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q4_0_h256 0x4b8b649d0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q4_1_h256 0x34174a860 | th_max = 896 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q5_0_h256 0x3417d2450 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q5_1_h256 0x4b7971fb0 | th_max = 704 | th_width = 32\n", + "ggml_metal_init: loaded kernel_flash_attn_ext_vec_q8_0_h256 0x33f8c2db0 | th_max = 832 | th_width = 32\n", + "ggml_metal_init: loaded kernel_set_f32 0x34173e0c0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_set_i32 0x4b79727a0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_f32 0x341791640 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_f16 0x4b8b64d50 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_cpy_f32_bf16 (not supported)\n", + "ggml_metal_init: loaded kernel_cpy_f16_f32 0x33f8c3510 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f16_f16 0x4b789b450 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: skipping kernel_cpy_bf16_f32 (not supported)\n", + "ggml_metal_init: skipping kernel_cpy_bf16_bf16 (not supported)\n", + "ggml_metal_init: loaded kernel_cpy_f32_q8_0 0x4b7881260 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_q4_0 0x4b7876490 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_q4_1 0x4b8b65120 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_q5_0 0x33e9d7bc0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_q5_1 0x4b7891e90 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cpy_f32_iq4_nl 0x3417daae0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_concat 0x4b7972e20 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sqr 0x33f8c3d80 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sqrt 0x33f8c46c0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sin 0x4b7894de0 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_cos 0x4b7872b50 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_sum_rows 0x4b785db10 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_argmax 0x4b781e420 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_pool_2d_avg_f32 0x4b789db70 | th_max = 1024 | th_width = 32\n", + "ggml_metal_init: loaded kernel_pool_2d_max_f32 0x3443f0b60 | th_max = 1024 | th_width = 32\n", + "llama_kv_cache_init: kv_size = 16384, offload = 1, type_k = 'f16', type_v = 'f16', n_layer = 28, can_shift = 1\n", + "llama_kv_cache_init: layer 0: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 1: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 2: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 3: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 4: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 5: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 6: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 7: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 8: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 9: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 10: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 11: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 12: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 13: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 14: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 15: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 16: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 17: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 18: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 19: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 20: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 21: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 22: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 23: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 24: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 25: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 26: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: layer 27: n_embd_k_gqa = 512, n_embd_v_gqa = 512\n", + "llama_kv_cache_init: Metal KV buffer size = 896.00 MiB\n", + "llama_new_context_with_model: KV self size = 896.00 MiB, K (f16): 448.00 MiB, V (f16): 448.00 MiB\n", + "llama_new_context_with_model: CPU output buffer size = 0.58 MiB\n", + "llama_new_context_with_model: Metal compute buffer size = 956.00 MiB\n", + "llama_new_context_with_model: CPU compute buffer size = 39.01 MiB\n", + "llama_new_context_with_model: graph nodes = 986\n", + "llama_new_context_with_model: graph splits = 2\n", + "Metal : EMBED_LIBRARY = 1 | CPU : NEON = 1 | ARM_FMA = 1 | FP16_VA = 1 | MATMUL_INT8 = 1 | DOTPROD = 1 | MATMUL_INT8 = 1 | ACCELERATE = 1 | AARCH64_REPACK = 1 | \n", + "Model metadata: {'general.quantization_version': '2', 'tokenizer.chat_template': '{%- if tools %}\\n {{- \\'<|im_start|>system\\\\n\\' }}\\n {%- if messages[0][\\'role\\'] == \\'system\\' %}\\n {{- messages[0][\\'content\\'] }}\\n {%- else %}\\n {{- \\'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.\\' }}\\n {%- endif %}\\n {{- \"\\\\n\\\\n# Tools\\\\n\\\\nYou may call one or more functions to assist with the user query.\\\\n\\\\nYou are provided with function signatures within XML tags:\\\\n\" }}\\n {%- for tool in tools %}\\n {{- \"\\\\n\" }}\\n {{- tool | tojson }}\\n {%- endfor %}\\n {{- \"\\\\n\\\\n\\\\nFor each function call, return a json object with function name and arguments within XML tags:\\\\n\\\\n{{\\\\\"name\\\\\": , \\\\\"arguments\\\\\": }}\\\\n<|im_end|>\\\\n\" }}\\n{%- else %}\\n {%- if messages[0][\\'role\\'] == \\'system\\' %}\\n {{- \\'<|im_start|>system\\\\n\\' + messages[0][\\'content\\'] + \\'<|im_end|>\\\\n\\' }}\\n {%- else %}\\n {{- \\'<|im_start|>system\\\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\\\n\\' }}\\n {%- endif %}\\n{%- endif %}\\n{%- for message in messages %}\\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\\n {{- \\'<|im_start|>\\' + message.role + \\'\\\\n\\' + message.content + \\'<|im_end|>\\' + \\'\\\\n\\' }}\\n {%- elif message.role == \"assistant\" %}\\n {{- \\'<|im_start|>\\' + message.role }}\\n {%- if message.content %}\\n {{- \\'\\\\n\\' + message.content }}\\n {%- endif %}\\n {%- for tool_call in message.tool_calls %}\\n {%- if tool_call.function is defined %}\\n {%- set tool_call = tool_call.function %}\\n {%- endif %}\\n {{- \\'\\\\n\\\\n{\"name\": \"\\' }}\\n {{- tool_call.name }}\\n {{- \\'\", \"arguments\": \\' }}\\n {{- tool_call.arguments | tojson }}\\n {{- \\'}\\\\n\\' }}\\n {%- endfor %}\\n {{- \\'<|im_end|>\\\\n\\' }}\\n {%- elif message.role == \"tool\" %}\\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\\n {{- \\'<|im_start|>user\\' }}\\n {%- endif %}\\n {{- \\'\\\\n\\\\n\\' }}\\n {{- message.content }}\\n {{- \\'\\\\n\\' }}\\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\\n {{- \\'<|im_end|>\\\\n\\' }}\\n {%- endif %}\\n {%- endif %}\\n{%- endfor %}\\n{%- if add_generation_prompt %}\\n {{- \\'<|im_start|>assistant\\\\n\\' }}\\n{%- endif %}\\n', 'tokenizer.ggml.bos_token_id': '151643', 'tokenizer.ggml.padding_token_id': '151643', 'tokenizer.ggml.eos_token_id': '151645', 'tokenizer.ggml.pre': 'qwen2', 'tokenizer.ggml.model': 'gpt2', 'qwen2.attention.layer_norm_rms_epsilon': '0.000001', 'qwen2.rope.freq_base': '1000000.000000', 'qwen2.attention.head_count_kv': '4', 'qwen2.embedding_length': '3584', 'qwen2.context_length': '131072', 'general.type': 'model', 'qwen2.attention.head_count': '28', 'qwen2.feed_forward_length': '18944', 'general.architecture': 'qwen2', 'qwen2.block_count': '28', 'general.file_type': '12', 'general.size_label': '7.6B', 'tokenizer.ggml.add_bos_token': 'false', 'general.version': 'v0.1', 'general.finetune': 'qwen2.5-7b-instruct', 'general.name': 'qwen2.5-7b-instruct'}\n", + "Available chat formats from metadata: chat_template.default\n", + "Using gguf chat template: {%- if tools %}\n", + " {{- '<|im_start|>system\\n' }}\n", + " {%- if messages[0]['role'] == 'system' %}\n", + " {{- messages[0]['content'] }}\n", + " {%- else %}\n", + " {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n", + " {%- endif %}\n", + " {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within XML tags:\\n\" }}\n", + " {%- for tool in tools %}\n", + " {{- \"\\n\" }}\n", + " {{- tool | tojson }}\n", + " {%- endfor %}\n", + " {{- \"\\n\\n\\nFor each function call, return a json object with function name and arguments within XML tags:\\n\\n{{\\\"name\\\": , \\\"arguments\\\": }}\\n<|im_end|>\\n\" }}\n", + "{%- else %}\n", + " {%- if messages[0]['role'] == 'system' %}\n", + " {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n", + " {%- else %}\n", + " {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n", + " {%- endif %}\n", + "{%- endif %}\n", + "{%- for message in messages %}\n", + " {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n", + " {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n", + " {%- elif message.role == \"assistant\" %}\n", + " {{- '<|im_start|>' + message.role }}\n", + " {%- if message.content %}\n", + " {{- '\\n' + message.content }}\n", + " {%- endif %}\n", + " {%- for tool_call in message.tool_calls %}\n", + " {%- if tool_call.function is defined %}\n", + " {%- set tool_call = tool_call.function %}\n", + " {%- endif %}\n", + " {{- '\\n\\n{\"name\": \"' }}\n", + " {{- tool_call.name }}\n", + " {{- '\", \"arguments\": ' }}\n", + " {{- tool_call.arguments | tojson }}\n", + " {{- '}\\n' }}\n", + " {%- endfor %}\n", + " {{- '<|im_end|>\\n' }}\n", + " {%- elif message.role == \"tool\" %}\n", + " {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n", + " {{- '<|im_start|>user' }}\n", + " {%- endif %}\n", + " {{- '\\n\\n' }}\n", + " {{- message.content }}\n", + " {{- '\\n' }}\n", + " {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n", + " {{- '<|im_end|>\\n' }}\n", + " {%- endif %}\n", + " {%- endif %}\n", + "{%- endfor %}\n", + "{%- if add_generation_prompt %}\n", + " {{- '<|im_start|>assistant\\n' }}\n", + "{%- endif %}\n", + "\n", + "Using chat eos_token: <|im_end|>\n", + "Using chat bos_token: <|endoftext|>\n", + "ggml_metal_free: deallocating\n" + ] + } + ], + "source": [ + "from llama_index.llms.llama_cpp import LlamaCPP\n", + "from transformers import AutoTokenizer\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"Qwen/Qwen2.5-7B-Instruct\")\n", + "\n", + "\n", + "def messages_to_prompt(messages):\n", + " messages = [{\"role\": m.role.value, \"content\": m.content} for m in messages]\n", + " prompt = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True\n", + " )\n", + " return prompt\n", + "\n", + "\n", + "def completion_to_prompt(completion):\n", + " messages = [{\"role\": \"user\", \"content\": completion}]\n", + " prompt = tokenizer.apply_chat_template(\n", + " messages, tokenize=False, add_generation_prompt=True\n", + " )\n", + " return prompt\n", + "\n", + "\n", + "llm = LlamaCPP(\n", + " # You can pass in the URL to a GGML model to download it automatically\n", + " model_url=model_url,\n", + " # optionally, you can set the path to a pre-downloaded model instead of model_url\n", + " model_path=None,\n", + " temperature=0.1,\n", + " max_new_tokens=256,\n", + " # llama2 has a context window of 4096 tokens, but we set it lower to allow for some wiggle room\n", + " context_window=16384,\n", + " # kwargs to pass to __call__()\n", + " generate_kwargs={},\n", + " # kwargs to pass to __init__()\n", + " # set to at least 1 to use GPU\n", + " model_kwargs={\"n_gpu_layers\": -1},\n", + " # transform inputs into Llama2 format\n", + " messages_to_prompt=messages_to_prompt,\n", + " completion_to_prompt=completion_to_prompt,\n", + " verbose=True,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "445453b1", + "metadata": {}, + "source": [ + "We can tell that the model is using `metal` and our GPU due to the logging!\n", + "\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "2d312cf8", + "metadata": {}, + "source": [ + "```\n", + "offloaded 29/29 layers to GPU\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "5e2e6a78-7e5d-4915-bcbf-6087edb30276", + "metadata": {}, + "source": [ + "## Start using our `LlamaCPP` LLM abstraction!\n", + "\n", + "We can simply use the `complete` method of our `LlamaCPP` LLM abstraction to generate completions given a prompt." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5cfaf34c-0348-415e-98bb-83f782d64fe9", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "llama_perf_context_print: load time = 699.52 ms\n", + "llama_perf_context_print: prompt eval time = 0.00 ms / 42 tokens ( 0.00 ms per token, inf tokens per second)\n", + "llama_perf_context_print: eval time = 0.00 ms / 170 runs ( 0.00 ms per token, inf tokens per second)\n", + "llama_perf_context_print: total time = 4230.39 ms / 212 tokens\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Certainly! Here's a short poem about cats and dogs, blending their characteristics and interactions:\n", + "\n", + "In the quiet of the evening,\n", + "Where shadows play and light,\n", + "Two creatures, one in each corner,\n", + "Of the world, they find their might.\n", + "\n", + "The cat, with grace and stealth,\n", + "In the dark, she pounces,\n", + "While the dog, with loyal teeth,\n", + "Protects and never fumbles.\n", + "\n", + "One with fur as soft as silk,\n", + "The other with fur like flax,\n", + "Yet in their hearts, a bond is built,\n", + "A friendship that will never lack.\n", + "\n", + "Though their paths may seem apart,\n", + "In their hearts, they find a way,\n", + "To coexist, in peace and heart,\n", + "A tale of two, in harmony's sway.\n", + "\n", + "This poem captures the essence of both cats and dogs, highlighting their unique traits and the potential for friendship between them.\n" + ] + } + ], + "source": [ + "response = llm.complete(\"Hello! Can you tell me a poem about cats and dogs?\")\n", + "print(response.text)" + ] + }, + { + "cell_type": "markdown", + "id": "9038f7d7", + "metadata": {}, + "source": [ + "We can use the `stream_complete` endpoint to stream the response as it’s being generated rather than waiting for the entire response to be generated." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7b059409-cd9d-4651-979c-03b3943e94af", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sure, here's a" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Llama.generate: 24 prefix-match hit, remaining 15 prompt tokens to eval\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " poem about fast cars:\n", + "\n", + "In the glow of twilight's soft embrace,\n", + "Rumble of engines, a deep, steady thrum,\n", + "Metal beasts, sleek and poised to race,\n", + "Through the night, their shadows run.\n", + "\n", + "Wind whispers secrets as it streams,\n", + "Past the curves, the corners, the bends,\n", + "Adrenaline pulses, hearts in dreams,\n", + "As they chase the horizon, the open ends.\n", + "\n", + "Neons flicker, red and blue,\n", + "In the darkness, a vibrant hue,\n", + "Each car a story, a tale to chew,\n", + "On the thrill of speed, the rush of new.\n", + "\n", + "Steel and glass, a silent crew,\n", + "In the silence, a deafening sound,\n", + "Of the road, of the wind, of the crowd,\n", + "In the moment, time seems to be bound.\n", + "\n", + "But the night is long, the journey vast,\n", + "And the dawn will come, the race will pass,\n", + "Yet in memory, the thrill will last,\n", + "A fleeting dream, a fast car's class." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "llama_perf_context_print: load time = 699.52 ms\n", + "llama_perf_context_print: prompt eval time = 0.00 ms / 15 tokens ( 0.00 ms per token, inf tokens per second)\n", + "llama_perf_context_print: eval time = 0.00 ms / 201 runs ( 0.00 ms per token, inf tokens per second)\n", + "llama_perf_context_print: total time = 4365.20 ms / 216 tokens\n" + ] + } + ], + "source": [ + "response_iter = llm.stream_complete(\"Can you write me a poem about fast cars?\")\n", + "for response in response_iter:\n", + " print(response.delta, end=\"\", flush=True)" + ] + }, + { + "cell_type": "markdown", + "id": "f7617600", + "metadata": {}, + "source": [ + "## Query engine set up with LlamaCPP\n", + "\n", + "We can simply pass in the `LlamaCPP` LLM abstraction to the `LlamaIndex` query engine as usual.\n", + "\n", + "But first, let's change the global tokenizer to match our LLM." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d8ff0c0b", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core import set_global_tokenizer\n", + "from transformers import AutoTokenizer\n", + "\n", + "set_global_tokenizer(\n", + " AutoTokenizer.from_pretrained(\"Qwen/Qwen2.5-7B-Instruct\").encode\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d4c6f564", + "metadata": {}, + "outputs": [], + "source": [ + "# use Huggingface embeddings\n", + "from llama_index.embeddings.huggingface import HuggingFaceEmbedding\n", + "\n", + "embed_model = HuggingFaceEmbedding(model_name=\"BAAI/bge-small-en-v1.5\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d485f1e", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core import SimpleDirectoryReader\n", + "\n", + "# load documents\n", + "documents = SimpleDirectoryReader(\"../data/paul_graham/\").load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c55c33cd", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core import VectorStoreIndex\n", + "\n", + "# create vector store index\n", + "index = VectorStoreIndex.from_documents(documents, embed_model=embed_model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e07659c8", + "metadata": {}, + "outputs": [], + "source": [ + "# set up query engine\n", + "query_engine = index.as_query_engine(llm=llm)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64e095c5", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Llama.generate: 24 prefix-match hit, remaining 1983 prompt tokens to eval\n", + "llama_perf_context_print: load time = 699.52 ms\n", + "llama_perf_context_print: prompt eval time = 0.00 ms / 1983 tokens ( 0.00 ms per token, inf tokens per second)\n", + "llama_perf_context_print: eval time = 0.00 ms / 172 runs ( 0.00 ms per token, inf tokens per second)\n", + "llama_perf_context_print: total time = 8297.83 ms / 2155 tokens\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Growing up, the author focused on writing and programming. Specifically, before college, he wrote short stories as a beginning writer, which he found to be lacking in plot but rich in character emotions. He also spent time programming on an IBM 1401 computer in his school district's basement, using an early version of Fortran. He had to input programs on punch cards and run them on a noisy printer. This experience was limited and not very productive, as he couldn't find much to do with the machine without input data or the ability to perform more complex calculations. The author then shifted to using microcomputers, which allowed for more interactive programming and writing, and he began to write essays again. Later, in March 2015, he started working on Lisp again, attracted by its unique characteristics and power as a programming language.\n" + ] + } + ], + "source": [ + "response = query_engine.query(\"What did the author do growing up?\")\n", + "print(response)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/docs/examples/llm/nebius.ipynb b/docs/docs/examples/llm/nebius.ipynb index 12e327db778af..7f82d706a613c 100644 --- a/docs/docs/examples/llm/nebius.ipynb +++ b/docs/docs/examples/llm/nebius.ipynb @@ -29,23 +29,14 @@ "metadata": {}, "outputs": [], "source": [ - "%pip install llama-index-embeddings-nebius" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install llama-index" + "%pip install llama-index-llms-nebius llama-index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Insert your Nebius AI Studio key below. You can get it by registering for free at [Nebius AI Studio](https://auth.eu.nebius.com/ui/login) and issuing the key at [API Keys section](https://studio.nebius.ai/settings/api-keys).\"" + "Upload your Nebius AI Studio key from system variables below or simply insert it. You can get it by registering for free at [Nebius AI Studio](https://auth.eu.nebius.com/ui/login) and issuing the key at [API Keys section](https://studio.nebius.ai/settings/api-keys).\"" ] }, { @@ -54,19 +45,29 @@ "metadata": {}, "outputs": [], "source": [ - "NEBIUS_API_KEY = \"\"" + "import os\n", + "\n", + "NEBIUS_API_KEY = os.getenv(\"NEBIUS_API_KEY\") # NEBIUS_API_KEY = \"\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.\n" + ] + } + ], "source": [ "from llama_index.llms.nebius import NebiusLLM\n", "\n", "llm = NebiusLLM(\n", - " api_key=NEBIUS_API_KEY, model=\"meta-llama/Meta-Llama-3.1-70B-Instruct-fast\"\n", + " api_key=NEBIUS_API_KEY, model=\"meta-llama/Llama-3.3-70B-Instruct-fast\"\n", ")" ] }, @@ -86,7 +87,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The Netherlands!\n" + "The Netherlands! Amsterdam is indeed the capital and largest city of the Netherlands.\n" ] } ], @@ -111,35 +112,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "assistant: In a world of wires and circuits bright,\n", - "A small robot shone with digital light,\n", - "Wall-e, a name that's known so well,\n", - "A smart AI, with a story to tell.\n", - "\n", - "With eyes that gleam like shining steel,\n", - "He navigates the world with skill and zeal,\n", - "A waste-collecting bot, with a heart of gold,\n", - "He cleans the earth, with a story to unfold.\n", - "\n", - "His trash-compacting arms, a wondrous sight,\n", - "Crush and compress, with precision and might,\n", - "He beeps and boops, with a language all his own,\n", - "A symphony of sounds, that echo and moan.\n", - "\n", - "In a world of desolation, he finds a friend,\n", - "Eve, a sleek robot, with a mission to amend,\n", - "Together they roam, through the ruins of old,\n", - "A tale of love and hope, in a world grown cold.\n", - "\n", - "With a heart that beats, with a digital soul,\n", - "Wall-e dreams of life, in a world made whole,\n", - "He longs to connect, to touch and to share,\n", - "A robot's quest, to show he cares.\n", - "\n", - "His story's told, in a world of decay,\n", - "A beacon of hope, in a brighter day,\n", - "Wall-e, a hero, in a world of machines,\n", - "A shining star, that forever gleams.\n" + "assistant: WALL-E is a small waste-collecting robot and the main character in the 2008 Pixar animated film of the same name.\n" ] } ], @@ -150,7 +123,7 @@ " ChatMessage(role=\"system\", content=\"You are a helpful AI assistant.\"),\n", " ChatMessage(\n", " role=\"user\",\n", - " content=\"Write a poem about a smart AI robot named Wall-e.\",\n", + " content=\"Answer briefly: who is Wall-e?\",\n", " ),\n", "]\n", "response = llm.chat(messages)\n", @@ -180,7 +153,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The Netherlands!" + "The Netherlands! Amsterdam is indeed the capital and largest city of the Netherlands." ] } ], @@ -206,35 +179,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "In a world of wires and circuits bright,\n", - "A small robot shone with digital light,\n", - "Wall-e, a name that's known so well,\n", - "A hero of the future, with a story to tell.\n", - "\n", - "With eyes that gleam like stars in space,\n", - "He navigates the ruins of a forgotten place,\n", - "A world of trash and decay, where humans once did roam,\n", - "But Wall-e's heart beats strong, with a love that's made of home.\n", - "\n", - "His metal body, sturdy and strong,\n", - "Moves with a purpose, all day long,\n", - "He collects and sorts, with a precision so fine,\n", - "The waste of humanity, in a world that's lost its shine.\n", - "\n", - "But Wall-e's not just a machine, you see,\n", - "He's a friend, a companion, with a heart that's free,\n", - "He dreams of love, of connection, of a life that's true,\n", - "A life with EVE, his counterpart, his heart beats anew.\n", - "\n", - "With a beep and a boop, he communicates with glee,\n", - "A language all his own, a symphony,\n", - "He's a robot of wonder, a marvel of our time,\n", - "A shining star, that shines with a love that's divine.\n", - "\n", - "In a world of metal and wires, he's a work of art,\n", - "A masterpiece, that beats with a loving heart,\n", - "Wall-e, the robot, with a soul so bright,\n", - "A hero of the future, shining with delight." + "WALL-E is a small waste-collecting robot and the main character in the 2008 Pixar animated film of the same name." ] } ], @@ -245,7 +190,7 @@ " ChatMessage(role=\"system\", content=\"You are a helpful AI assistant.\"),\n", " ChatMessage(\n", " role=\"user\",\n", - " content=\"Write a poem about a smart AI robot named Wall-e.\",\n", + " content=\"Answer briefly: who is Wall-e?\",\n", " ),\n", "]\n", "response = llm.stream_chat(messages)\n", diff --git a/docs/docs/examples/managed/vectaraDemo.ipynb b/docs/docs/examples/managed/vectaraDemo.ipynb index cf931208ffa36..f5e381b057bd9 100644 --- a/docs/docs/examples/managed/vectaraDemo.ipynb +++ b/docs/docs/examples/managed/vectaraDemo.ipynb @@ -14,7 +14,7 @@ "metadata": {}, "source": [ "# Vectara Managed Index\n", - "In this notebook we are going to show how to use [Vectara](https://vectara.com) with LlamaIndex.\n", + "In this notebook we are going to show how to use [Vectara](https://vectara.com) with LlamaIndex. Please note that this notebook is for Vectara ManagedIndex versions >=0.4.0.\n", "\n", "[Vectara](https://vectara.com/) is the trusted AI Assistant and Agent platform which focuses on enterprise readiness for mission-critical applications. \n", "\n", @@ -63,7 +63,7 @@ "source": [ "To get started with Vectara, [sign up](https://vectara.com/integrations/llamaindex) (if you haven't already) and follow our [quickstart guide](https://docs.vectara.com/docs/quickstart) to create a corpus and an API key.\n", "\n", - "Once you have these, you can provide them as environment variables `VECTARA_CUSTOMER_ID`, `VECTARA_CORPUS_ID`, and `VECTARA_API_KEY`. Make sure your API key has both query and index permissions." + "Once you have these, you can provide them as environment variables `VECTARA_CORPUS_KEY`, and `VECTARA_API_KEY`. Make sure your API key has both query and index permissions." ] }, { @@ -76,7 +76,7 @@ "There are a few ways you can index your data into Vectara, including:\n", "1. With the `from_documents()` or `insert_file()` methods of `VectaraIndex`\n", "2. Uploading files directly in the [Vectara console](https://console.vectara.com/)\n", - "3. Using Vectara's FILE_UPLOAD or standard indexing APIs\n", + "3. Using Vectara's [file upload](https://docs.vectara.com/docs/rest-api/upload-file) or [document index](https://docs.vectara.com/docs/rest-api/create-corpus-document) APIs\n", "4. Using [vectara-ingest](https://github.com/vectara/vectara-ingest), an open source crawler/indexer project\n", "5. Using one of our ingest integration partners like Airbyte, Unstructured or DataVolo.\n", "\n", @@ -152,7 +152,7 @@ { "data": { "text/plain": [ - "\"The risks of AI include biased data and discriminatory outcomes, opaque decision-making processes, and lack of public trust and understanding of algorithmic systems [1]. These risks can lead to harm to individuals and communities, including the potential for meaningful impact on people's rights, opportunities, or access [6]. To mitigate these risks, it is essential to identify and address potential harms before deployment, and to engage with impacted communities to understand the potential harms of technologies and build protection by design into future systems [1][6]. Additionally, strong safety regulations and measures to address harms when they occur can enhance innovation in the context of complex technologies [2]. The development of technical standards and practices tailored for particular sectors and contexts can also help to ensure safe and effective AI systems [7].\"" + "'The risks of AI include biased data and discriminatory outcomes, opaque decision-making processes, and lack of public trust and understanding of algorithmic systems [1]. These risks can have significant impacts on individuals and communities, particularly those who are directly affected by AI systems [5]. To mitigate these risks, it is essential to identify and address potential risks before deployment, and to implement ongoing monitoring and mitigation strategies [2][6]. This includes risk assessments, auditing mechanisms, and public consultation to ensure that AI systems are designed and used in a responsible and transparent manner [2][6]. Additionally, the development of AI systems should be guided by principles that prioritize lawfulness, accuracy, and transparency, and that are regularly monitored and accountable [7].'" ] }, "execution_count": null, @@ -162,7 +162,10 @@ ], "source": [ "qe = index.as_query_engine(\n", - " summary_enabled=True, summary_prompt_name=\"mockingbird-1.0-2024-07-16\"\n", + " n_sentences_before=1,\n", + " n_sentences_after=1,\n", + " summary_enabled=True,\n", + " summary_prompt_name=\"mockingbird-1.0-2024-07-16\",\n", ")\n", "qe.query(questions[0]).response" ] @@ -185,20 +188,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "The risks of AI include biased data and discriminatory outcomes, opaque decision-making processes, and lack of public trust and understanding of algorithmic systems [1]. These risks can lead to harm to individuals and communities, including the potential for meaningful impact on people's rights, opportunities, or access [6]. To mitigate these risks, it is essential to identify and address potential harms before deployment, and to engage with impacted communities to understand the potential harms of technologies and build protection by design into future systems [1][6]. Additionally, strong safety regulations and measures to address harms when they occur can enhance innovation in the context of complex technologies [2]. The development of technical standards and practices tailored for particular sectors and contexts can also help to ensure safe and effective AI systems [7]." + "The risks of AI include biased data and discriminatory outcomes, opaque decision-making processes, and lack of public trust and understanding of algorithmic systems [1]. These risks can have significant impacts on individuals and communities, particularly those who are directly affected by AI systems [5]. To mitigate these risks, it is essential to identify and address potential risks before deployment, and to implement ongoing monitoring and mitigation strategies [2][6]. This includes risk assessments, auditing mechanisms, and public consultation to ensure that AI systems are designed and used in a responsible and transparent manner [2][6]. Additionally, the development of AI systems should be guided by principles that prioritize lawfulness, accuracy, and transparency, and that are regularly monitored and accountable [7]." ] } ], "source": [ "qe = index.as_query_engine(\n", + " n_sentences_before=1,\n", + " n_sentences_after=1,\n", " summary_enabled=True,\n", " summary_prompt_name=\"mockingbird-1.0-2024-07-16\",\n", " streaming=True,\n", ")\n", "response = qe.query(questions[0])\n", "\n", - "for chunk in response.response_gen:\n", - " print(chunk.delta or \"\", end=\"\", flush=True)" + "response.print_response_stream()" ] }, { @@ -220,7 +224,7 @@ "metadata": {}, "outputs": [], "source": [ - "ce = index.as_chat_engine()" + "ce = index.as_chat_engine(n_sentences_before=1, n_sentences_after=1)" ] }, { @@ -235,15 +239,15 @@ "text": [ "Question: What are the risks of AI?\n", "\n", - "Response: The risks of AI include potential biased data leading to discriminatory outcomes, opaque decision-making processes, lack of public trust, and understanding of algorithmic systems. Risks also involve safety concerns, such as AI systems violating safety regulations, causing harm, and impacting individuals' rights and opportunities. Furthermore, the misuse of AI, like AI-enabled technology for creating non-consensual images, poses significant risks, affecting individuals' lives and well-being. It is crucial to identify and mitigate risks before deployment, prioritize high-impact risks, and ensure that automated systems do not violate safety standards or harm individuals. Stakeholder engagement, transparency, and ongoing monitoring are essential to address these risks effectively.\n", + "Response: The risks of AI include potential biases and discriminatory outcomes due to biased data, opaque decision-making processes, and lack of public trust and understanding of algorithmic systems. Mitigating these risks involves ongoing transparency, participatory design, explanations for stakeholders, and public consultation [1]. Industry is developing innovative solutions like risk assessments, auditing mechanisms, and monitoring tools to ensure the safety and efficacy of AI systems [2]. Identifying and mitigating risks before deployment is crucial, focusing on impacts on rights, opportunities, and communities, as well as risks from misuse of the system [6]. The Executive Order on Trustworthy AI in the Federal Government outlines principles for lawful, purposeful, accurate, safe, understandable, responsible, monitored, transparent, and accountable AI use [7].\n", "\n", "Question: What should we do to prevent bad actors from using AI?\n", "\n", - "Response: To prevent bad actors from using AI, we should implement safeguards such as ensuring systems are safe, effective, and respect privacy [1]. Additionally, it is crucial to adhere to principles like legality, transparency, and accountability in AI development and usage [2]. Moreover, best practices should be followed to protect against algorithmic discrimination and ensure fairness in all aspects of people's lives [6]. Lastly, it is essential to evaluate, protect, and redress harms at both individual and community levels, especially for underserved communities, to promote equity and fair treatment for all [5].\n", + "Response: To prevent bad actors from using AI, we should implement a set of principles and practices to ensure the safe and effective use of AI systems. This includes adhering to specific principles such as legality, respect for values, accuracy, reliability, safety, transparency, and accountability in the design and use of AI [2]. Additionally, entities should follow privacy and security best practices to prevent data leaks and employ audits and impact assessments to identify and mitigate algorithmic discrimination [3][4]. It is crucial to involve the public in discussions about the promises and potential harms of AI technologies to shape policies that protect against discrimination and ensure fairness in the use of automated systems [1][6][7]. By promoting transparency, ongoing monitoring, and public consultation, we can work towards building trust, understanding, and ethical use of AI while safeguarding against misuse by bad actors.\n", "\n", "Question: What are the benefits?\n", "\n", - "Response: The benefits of AI include the potential to build innovative infrastructure, improve Americans' lives, provide faster customer care, enhance decision-making in various sectors, revolutionize industries, and make life better for everyone. AI can help farmers grow food efficiently, predict storm paths, identify diseases, and drive important decisions globally. Additionally, AI can be used to protect individuals from unsafe systems and ensure the accountability, transparency, and reliability of AI technologies. Overall, AI holds the promise to positively impact society and improve various aspects of life.\n", + "Response: The benefits of AI include the potential to build innovative infrastructure, improve customer service through faster responses, and enhance decision-making processes. AI can also lead to transformative improvements in people's lives, protect individuals from potential harms, and ensure the ethical use of automated systems. By incorporating principles for responsible stewardship and trustworthy AI, companies and government agencies can create safe, effective, and transparent AI systems that respect values, ensure accuracy, and promote accountability [1][4][6][7].\n", "\n" ] } @@ -270,7 +274,9 @@ "metadata": {}, "outputs": [], "source": [ - "ce = index.as_chat_engine(streaming=True)" + "ce = index.as_chat_engine(\n", + " n_sentences_before=1, n_sentences_after=1, streaming=True\n", + ")" ] }, { @@ -283,14 +289,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "Artificial intelligence will not rule the government. The government is implementing principles and guidelines to ensure the ethical and responsible use of AI in various sectors, including the federal government. These measures focus on transparency, accountability, safety, and adherence to national values, ensuring that AI is used in a manner that upholds civil rights, democratic values, and national security. Sector-specific guidance will continue to evolve to address specific AI applications, but overall, the government remains committed to safeguarding civil liberties and democratic principles in the age of artificial intelligence." + "Artificial intelligence will not rule the government. The government has established principles and guidelines for the ethical use of AI, ensuring it is used responsibly, lawfully, and in alignment with the nation's values. These principles emphasize safety, accountability, transparency, and regular monitoring of AI systems within the federal government [1] [2]. Additionally, there are specific considerations for law enforcement and national security activities, highlighting the need for oversight and adherence to existing policies and safeguards [3]. The government is focused on promoting equity, fairness, civil rights, and racial justice through the use of AI, guided by principles that protect the American public [5]. Transparency and accountability are key aspects to ensure that AI technologies are used in ways that respect people's rights and expectations [7]." ] } ], "source": [ "response = ce.stream_chat(\"Will artificial intelligence rule the government?\")\n", - "for chunk in response.chat_stream:\n", - " print(chunk.delta or \"\", end=\"\", flush=True)" + "\n", + "response.print_response_stream()" ] }, { @@ -329,116 +335,65 @@ "name": "stdout", "output_type": "stream", "text": [ - "Initializing vectara-agentic version 0.1.16...\n", - "No observer set.\n", - "> Running step 26a91fbd-0027-42af-96f8-fcf19bd9bf06. Step input: What are the risks of AI? What are the benefits? Compare and contrast and provide a summary with arguments for and against from experts.\n", + "Failed to set up observer (No module named 'phoenix.otel'), ignoring\n", + "> Running step 21fe2d4d-c74c-45df-9921-94c7f9e4f670. Step input: What are the risks of AI? What are the benefits? Compare and contrast and provide a summary with arguments for and against from experts.\n", "\u001b[1;3;38;5;200mThought: The current language of the user is: English. I need to use a tool to help me answer the question.\n", "Action: query_ai\n", - "Action Input: {'query': 'risks and benefits of AI, expert opinions, arguments for and against'}\n", + "Action Input: {'query': 'risks and benefits of AI, expert opinions'}\n", "\u001b[0m\u001b[1;3;34mObservation: \n", - " Response: '''Here is a summary of the risks and benefits of AI, expert opinions, and arguments for and against, based on the provided sources:\n", - "\n", - "**Risks of AI:**\n", - "\n", - "* Bias and discriminatory outcomes due to biased data [1]\n", - "* Opaque decision-making processes [1]\n", - "* Lack of public trust and understanding of algorithmic systems [1]\n", - "* Potential for harm to individuals, organizations, and society [3]\n", - "\n", - "**Benefits of AI:**\n", - "\n", - "* Potential to build better and more innovative infrastructure [2]\n", - "* Ability to mitigate risks to safety and efficacy of AI systems [3]\n", - "* Transformative potential to improve Americans' lives [4]\n", - "\n", - "**Expert Opinions:**\n", - "\n", - "* Emphasis on designing non-discriminatory technology, explainable AI, and human-computer interaction with community participation [1]\n", - "* Importance of placing trust in people, not technologies, and engaging with impacted communities to understand potential harms [1]\n", - "* Need for ongoing transparency, value-sensitive and participatory design, and public consultation [1]\n", - "\n", - "**Arguments for and Against:**\n", - "\n", - "* Strong safety regulations and measures to address harms can enhance innovation in complex technologies [3]\n", - "* Balancing ownership rights, use rights, and community health, safety, and welfare is critical in the integration of technology [2]\n", - "* Examining lessons learned from urban planning can inform the development of AI-enabled systems [2]\n", - "\n", - "Overall, the sources highlight the importance of designing AI systems that are non-discriminatory, transparent, and trustworthy, while also considering the potential benefits and risks of AI.'''\n", + " Response: '''According to expert opinions, the risks of AI include biased data and discriminatory outcomes, opaque decision-making processes, and lack of public trust and understanding of algorithmic systems [1]. To mitigate these risks, experts emphasize the importance of ongoing transparency, value-sensitive and participatory design, explanations designed for relevant stakeholders, and public consultation [1]. Additionally, industry is providing innovative solutions to mitigate risks to the safety and efficacy of AI systems, including risk assessments, auditing mechanisms, and documentation procedures [3]. The National Institute of Standards and Technology (NIST) is developing a risk management framework to better manage risks posed to individuals, organizations, and society by AI [3]. Furthermore, the White House Office of Science and Technology Policy has led a year-long process to seek input from people across the country on the issue of algorithmic and data-driven harms and potential remedies [4].'''\n", " References:\n", - " [1]: page='56'; title='Blueprint for an AI Bill of Rights'; section='4'; CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'.\n", - "[2]: page='56'; title='Blueprint for an AI Bill of Rights'; section='4'; CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'.\n", - "[3]: page='1'; section='1'; CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'; title='Blueprint for an AI Bill of Rights'.\n", - "[4]: page='1'; section='1'; CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'; title='Blueprint for an AI Bill of Rights'.\n", + " [1]: CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'; title='Blueprint for an AI Bill of Rights'.\n", + "[3]: CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'; title='Blueprint for an AI Bill of Rights'.\n", + "[4]: CreationDate='1663695035'; Producer='iLovePDF'; Title='Blueprint for an AI Bill of Rights'; Creator='Adobe Illustrator 26.3 (Macintosh)'; ModDate='1664808078'; name='AI bill of rights'; year='2022'; framework='llama_index'; title='Blueprint for an AI Bill of Rights'.\n", "\n", " \n", - "\u001b[0m> Running step f9d86544-5c76-48c5-8efd-02c154945e08. Step input: None\n", + "\u001b[0m> Running step a2b4d751-9f91-4fd9-9004-e276da54b75f. Step input: None\n", "\u001b[1;3;38;5;200mThought: I can answer without using any more tools. I'll use the user's language to answer\n", - "Answer: Here is a summary of the risks and benefits of AI, along with expert opinions and arguments for and against:\n", + "Answer: The risks and benefits of AI are widely discussed among experts, and there are several key points to consider.\n", "\n", "**Risks of AI:**\n", - "- AI systems can produce biased and discriminatory outcomes if they are trained on biased data [1].\n", - "- The decision-making processes of AI can be opaque, making it difficult to understand how conclusions are reached [1].\n", - "- There is a lack of public trust and understanding of algorithmic systems, which can lead to skepticism and resistance [1].\n", - "- AI has the potential to cause harm to individuals, organizations, and society if not properly managed [3].\n", + "1. **Bias and Discrimination:** AI systems can perpetuate and even amplify biases present in the data they are trained on, leading to discriminatory outcomes.\n", + "2. **Opaque Decision-Making:** The decision-making processes of AI systems can be difficult to understand, leading to a lack of transparency.\n", + "3. **Public Trust:** There is often a lack of public trust and understanding of how AI systems work, which can hinder their acceptance and use.\n", + "\n", + "To mitigate these risks, experts suggest measures such as ensuring transparency, involving stakeholders in the design process, providing clear explanations, and conducting public consultations. Additionally, there are efforts to develop frameworks and guidelines, such as the National Institute of Standards and Technology (NIST) risk management framework, to manage these risks effectively.\n", "\n", "**Benefits of AI:**\n", - "- AI has the potential to build better and more innovative infrastructure, enhancing efficiency and effectiveness [2].\n", - "- It can help mitigate risks to the safety and efficacy of various systems, improving overall safety standards [3].\n", - "- AI holds transformative potential to improve the quality of life, offering advancements in various sectors [4].\n", + "1. **Efficiency and Productivity:** AI can automate repetitive tasks, leading to increased efficiency and productivity in various industries.\n", + "2. **Innovation:** AI drives innovation by enabling new applications and solutions that were not possible before.\n", + "3. **Improved Decision-Making:** AI can process large amounts of data quickly, providing insights that can improve decision-making processes.\n", "\n", "**Expert Opinions:**\n", - "- Experts emphasize the need for designing non-discriminatory technology, explainable AI, and fostering human-computer interaction with community participation [1].\n", - "- Trust should be placed in people rather than technologies, and it is crucial to engage with impacted communities to understand potential harms [1].\n", - "- Ongoing transparency, value-sensitive and participatory design, and public consultation are necessary for the responsible development of AI [1].\n", - "\n", - "**Arguments for and Against:**\n", - "- Implementing strong safety regulations and measures to address potential harms can enhance innovation in complex technologies [3].\n", - "- Balancing ownership rights, use rights, and community health, safety, and welfare is critical in the integration of AI technology [2].\n", - "- Lessons learned from urban planning can inform the development of AI-enabled systems, ensuring they are beneficial and sustainable [2].\n", - "\n", - "Overall, the sources highlight the importance of designing AI systems that are non-discriminatory, transparent, and trustworthy, while also considering the potential benefits and risks of AI.\n", + "Experts argue for the benefits of AI in terms of its potential to transform industries and improve quality of life. However, they also caution against the risks, emphasizing the need for responsible development and deployment of AI technologies. The balance between leveraging AI's benefits and managing its risks is crucial for its successful integration into society.\n", "\n", "References:\n", - "[1]: Blueprint for an AI Bill of Rights\n", - "[2]: Blueprint for an AI Bill of Rights\n", - "[3]: Blueprint for an AI Bill of Rights\n", - "[4]: Blueprint for an AI Bill of Rights\n", - "\u001b[0mTime taken: 21.543328046798706\n" + "- [Blueprint for an AI Bill of Rights](https://www.whitehouse.gov/ostp/ai-bill-of-rights/)\n", + "\u001b[0mTime taken: 20.452504634857178\n" ] }, { "data": { "text/markdown": [ - "Here is a summary of the risks and benefits of AI, along with expert opinions and arguments for and against:\n", + "The risks and benefits of AI are widely discussed among experts, and there are several key points to consider.\n", "\n", "**Risks of AI:**\n", - "- AI systems can produce biased and discriminatory outcomes if they are trained on biased data [1].\n", - "- The decision-making processes of AI can be opaque, making it difficult to understand how conclusions are reached [1].\n", - "- There is a lack of public trust and understanding of algorithmic systems, which can lead to skepticism and resistance [1].\n", - "- AI has the potential to cause harm to individuals, organizations, and society if not properly managed [3].\n", + "1. **Bias and Discrimination:** AI systems can perpetuate and even amplify biases present in the data they are trained on, leading to discriminatory outcomes.\n", + "2. **Opaque Decision-Making:** The decision-making processes of AI systems can be difficult to understand, leading to a lack of transparency.\n", + "3. **Public Trust:** There is often a lack of public trust and understanding of how AI systems work, which can hinder their acceptance and use.\n", + "\n", + "To mitigate these risks, experts suggest measures such as ensuring transparency, involving stakeholders in the design process, providing clear explanations, and conducting public consultations. Additionally, there are efforts to develop frameworks and guidelines, such as the National Institute of Standards and Technology (NIST) risk management framework, to manage these risks effectively.\n", "\n", "**Benefits of AI:**\n", - "- AI has the potential to build better and more innovative infrastructure, enhancing efficiency and effectiveness [2].\n", - "- It can help mitigate risks to the safety and efficacy of various systems, improving overall safety standards [3].\n", - "- AI holds transformative potential to improve the quality of life, offering advancements in various sectors [4].\n", + "1. **Efficiency and Productivity:** AI can automate repetitive tasks, leading to increased efficiency and productivity in various industries.\n", + "2. **Innovation:** AI drives innovation by enabling new applications and solutions that were not possible before.\n", + "3. **Improved Decision-Making:** AI can process large amounts of data quickly, providing insights that can improve decision-making processes.\n", "\n", "**Expert Opinions:**\n", - "- Experts emphasize the need for designing non-discriminatory technology, explainable AI, and fostering human-computer interaction with community participation [1].\n", - "- Trust should be placed in people rather than technologies, and it is crucial to engage with impacted communities to understand potential harms [1].\n", - "- Ongoing transparency, value-sensitive and participatory design, and public consultation are necessary for the responsible development of AI [1].\n", - "\n", - "**Arguments for and Against:**\n", - "- Implementing strong safety regulations and measures to address potential harms can enhance innovation in complex technologies [3].\n", - "- Balancing ownership rights, use rights, and community health, safety, and welfare is critical in the integration of AI technology [2].\n", - "- Lessons learned from urban planning can inform the development of AI-enabled systems, ensuring they are beneficial and sustainable [2].\n", - "\n", - "Overall, the sources highlight the importance of designing AI systems that are non-discriminatory, transparent, and trustworthy, while also considering the potential benefits and risks of AI.\n", + "Experts argue for the benefits of AI in terms of its potential to transform industries and improve quality of life. However, they also caution against the risks, emphasizing the need for responsible development and deployment of AI technologies. The balance between leveraging AI's benefits and managing its risks is crucial for its successful integration into society.\n", "\n", "References:\n", - "[1]: Blueprint for an AI Bill of Rights\n", - "[2]: Blueprint for an AI Bill of Rights\n", - "[3]: Blueprint for an AI Bill of Rights\n", - "[4]: Blueprint for an AI Bill of Rights" + "- [Blueprint for an AI Bill of Rights](https://www.whitehouse.gov/ostp/ai-bill-of-rights/)" ], "text/plain": [ "" @@ -456,10 +411,10 @@ " tool_name=\"query_ai\",\n", " data_description=\"AI regulations\",\n", " assistant_specialty=\"artificial intelligence\",\n", - " vectara_summary_num_results=5,\n", - " vectara_summarizer=\"mockingbird-1.0-2024-07-16\",\n", " vectara_reranker=\"mmr\",\n", " vectara_rerank_k=50,\n", + " vectara_summary_num_results=5,\n", + " vectara_summarizer=\"mockingbird-1.0-2024-07-16\",\n", " verbose=True,\n", ")\n", "\n", diff --git a/docs/docs/examples/metadata_extraction/DocumentContextExtractor.ipynb b/docs/docs/examples/metadata_extraction/DocumentContextExtractor.ipynb new file mode 100644 index 0000000000000..be470bdb703ce --- /dev/null +++ b/docs/docs/examples/metadata_extraction/DocumentContextExtractor.ipynb @@ -0,0 +1,304 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Contextual Retrieval With Llama Index\n", + "\n", + "This notebook covers contextual retrieval with llama_index DocumentContextExtractor\n", + "\n", + "Based on an Anthropic [blost post](https://www.anthropic.com/news/contextual-retrieval), the concept is to:\n", + "1. Use an LLM to generate a 'context' for each chunk based on the entire document\n", + "2. embed the chunk + context together\n", + "3. reap the benefits of higher RAG accuracy\n", + "\n", + "While you can also do this manually, the DocumentContextExtractor offers a lot of convenience and error handling, plus you can integrate it into your llama_index pipelines! Let's get started.\n", + "\n", + "NOTE: This notebook costs about $0.02 everytime you run it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Install Packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pip install llama-index\n", + "%pip install llama-index-readers-file\n", + "%pip install llama-index-embeddings-huggingface\n", + "%pip install llama-index-llms-openai" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Setup an LLM\n", + "You can use the MockLLM or you can use a real LLM of your choice here. flash 2 and gpt-4o-mini work well." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.llms.openai import OpenAI\n", + "from llama_index.core import Settings\n", + "\n", + "OPENAI_API_KEY = \"sk-...\"\n", + "llm = OpenAI(model=\"gpt-4o-mini\", api_key=OPENAI_API_KEY)\n", + "Settings.llm = llm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # Setup a data pipeline\n", + "\n", + " we'll need an embedding model, an index store, a vectore store, and a way to split tokens." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Build Pipeline & Index" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/loganmarkewich/Library/Caches/pypoetry/virtualenvs/llama-index-caVs7DDe-py3.10/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from llama_index.core import VectorStoreIndex, StorageContext\n", + "from llama_index.core.node_parser import TokenTextSplitter\n", + "from llama_index.core.storage.docstore.simple_docstore import (\n", + " SimpleDocumentStore,\n", + ")\n", + "from llama_index.embeddings.huggingface import HuggingFaceEmbedding\n", + "\n", + "# Initialize document store and embedding model\n", + "docstore = SimpleDocumentStore()\n", + "embed_model = HuggingFaceEmbedding(model_name=\"baai/bge-small-en-v1.5\")\n", + "\n", + "# Create storage contexts\n", + "storage_context = StorageContext.from_defaults(docstore=docstore)\n", + "storage_context_no_extra_context = StorageContext.from_defaults()\n", + "text_splitter = TokenTextSplitter(\n", + " separator=\" \", chunk_size=256, chunk_overlap=10\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### DocumentContextExtractor" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# This is the new part!\n", + "\n", + "from llama_index.core.extractors import DocumentContextExtractor\n", + "\n", + "context_extractor = DocumentContextExtractor(\n", + " # these 2 are mandatory\n", + " docstore=docstore,\n", + " max_context_length=128000,\n", + " # below are optional\n", + " llm=llm, # default to Settings.llm\n", + " oversized_document_strategy=\"warn\",\n", + " max_output_tokens=100,\n", + " key=\"context\",\n", + " prompt=DocumentContextExtractor.SUCCINCT_CONTEXT_PROMPT,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Load Data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!wget \"https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay_ambiguated.txt\" -O \"paul_graham_essay_ambiguated.txt\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core import SimpleDirectoryReader\n", + "\n", + "reader = SimpleDirectoryReader(\n", + " input_files=[\"./paul_graham_essay_ambiguated.txt\"]\n", + ")\n", + "documents = reader.load_data()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Run the pipeline, then search" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 15/15 [00:07<00:00, 2.10it/s]\n" + ] + } + ], + "source": [ + "import nest_asyncio\n", + "\n", + "nest_asyncio.apply()\n", + "\n", + "# need to add documents directly for the DocumentContextExtractor to work\n", + "storage_context.docstore.add_documents(documents)\n", + "index = VectorStoreIndex.from_documents(\n", + " documents=documents,\n", + " storage_context=storage_context,\n", + " embed_model=embed_model,\n", + " transformations=[text_splitter, context_extractor],\n", + ")\n", + "\n", + "index_nocontext = VectorStoreIndex.from_documents(\n", + " documents=documents,\n", + " storage_context=storage_context_no_extra_context,\n", + " embed_model=embed_model,\n", + " transformations=[text_splitter],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "test_question = \"Which chunks of text discuss the IBM 704?\"\n", + "retriever = index.as_retriever(similarity_top_k=2)\n", + "nodes_fromcontext = retriever.retrieve(test_question)\n", + "\n", + "retriever_nocontext = index_nocontext.as_retriever(similarity_top_k=2)\n", + "nodes_nocontext = retriever_nocontext.retrieve(test_question)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "==========\n", + "NO CONTEXT\n", + "\n", + "Chunk 1:\n", + "Score: 0.5710870309825231\n", + "Content: it. The result would ordinarily be to print something on the spectacularly loud device. I was puzzled by the machine. I couldn't figure out what to do with it. And in retrospect there's not much I could have done with it. The only form of input to programs was data stored on cards, and I didn't have any information stored on them. The only other option was to do things that didn't rely on any input, like calculate approximations of pi, but I didn't know enough math to do anything interesting of that type. So I'm not surprised I can't remember any code I wrote, because it can't have done much. My clearest memory is of the moment I learned it was possible for programs not to terminate, when one of mine didn't. On a machine without time-sharing, this was a social as well as a technical error, as the manager's expression made clear. With microcomputers, everything changed. Now you could have one sitting right in front of you, on a desk, that could respond to your keystrokes as it was running instead of just churning through a stack of punched inputs\n", + "\n", + "Chunk 2:\n", + "Score: 0.567587387219806\n", + "Content: McCarthy's 1960 paper.\n", + "But if so there's no reason to suppose that this is the limit of the language that might be known to them. Presumably aliens need numbers and errors and I/O too. So it seems likely there exists at least one path out of McCarthy's Lisp along which discoveredness is preserved.\n", + "Thanks to Trevor Blackwell, John Collison, Patrick Collison, Daniel Gackle, Ralph Hazell, Jessica Livingston, Robert Morris, and Harj Taggar for reading drafts of this.\n", + "==========\n", + "WITH CONTEXT\n", + "\n", + "Chunk 1:\n", + "Score: 0.6776241992281743\n", + "Content: it. The result would ordinarily be to print something on the spectacularly loud device. I was puzzled by the machine. I couldn't figure out what to do with it. And in retrospect there's not much I could have done with it. The only form of input to programs was data stored on cards, and I didn't have any information stored on them. The only other option was to do things that didn't rely on any input, like calculate approximations of pi, but I didn't know enough math to do anything interesting of that type. So I'm not surprised I can't remember any code I wrote, because it can't have done much. My clearest memory is of the moment I learned it was possible for programs not to terminate, when one of mine didn't. On a machine without time-sharing, this was a social as well as a technical error, as the manager's expression made clear. With microcomputers, everything changed. Now you could have one sitting right in front of you, on a desk, that could respond to your keystrokes as it was running instead of just churning through a stack of punched inputs\n", + "\n", + "Chunk 2:\n", + "Score: 0.6200645958839048\n", + "Content: Before college the two main things I worked on, outside of school, were writing and programming. I didn't write essays. I wrote what beginning writers were supposed to write then, and probably still are: short stories. They were awful. They had hardly any plot, just characters with strong feelings, which I imagined made them deep. The first programs I tried writing were on the IBM 1401 that our school district used for what was then called \"data processing.\" This was in 9th grade, so I was 13 or 14. The district's machine happened to be in the basement of our junior high school, and my friend Rich Draves and I got permission to use it. The space was like a mini Bond villain's lair down there, with all these alien-looking machines — CPU, disk drives, printer, card reader — sitting up on a raised floor under bright fluorescent lights. The language we used was an early version of Fortran. You had to type programs on punch cards, then stack them in the reader and press a button to load the code into memory and run it. The result would ordinarily be to print something\n" + ] + } + ], + "source": [ + "# Print each node's content\n", + "print(\"==========\")\n", + "print(\"NO CONTEXT\")\n", + "for i, node in enumerate(nodes_nocontext, 1):\n", + " print(f\"\\nChunk {i}:\")\n", + " print(f\"Score: {node.score}\") # Similarity score\n", + " print(f\"Content: {node.node.text}\") # The actual text content\n", + "\n", + "# Print each node's content\n", + "print(\"==========\")\n", + "print(\"WITH CONTEXT\")\n", + "for i, node in enumerate(nodes_fromcontext, 1):\n", + " print(f\"\\nChunk {i}:\")\n", + " print(f\"Score: {node.score}\") # Similarity score\n", + " print(f\"Content: {node.node.text}\") # The actual text content" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/docs/examples/multi_modal/nebius_multi_modal.ipynb b/docs/docs/examples/multi_modal/nebius_multi_modal.ipynb index a13ea062c0575..6e4215da71f8c 100644 --- a/docs/docs/examples/multi_modal/nebius_multi_modal.ipynb +++ b/docs/docs/examples/multi_modal/nebius_multi_modal.ipynb @@ -25,51 +25,37 @@ "execution_count": null, "id": "396d319e", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[31mERROR: Could not find a version that satisfies the requirement llama-index-multi-modal-llms-nebius (from versions: none)\u001b[0m\u001b[31m\n", - "\u001b[0m\u001b[31mERROR: No matching distribution found for llama-index-multi-modal-llms-nebius\u001b[0m\u001b[31m\n", - "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" - ] - } - ], - "source": [ - "# %pip install llama-index-multi-modal-llms-openai\n", - "%pip install llama-index-multi-modal-llms-nebius" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fc691ca8", - "metadata": {}, "outputs": [], "source": [ - "!pip install llama-index matplotlib" + "%pip install llama-index-multi-modal-llms-nebius llama-index matplotlib" ] }, { "cell_type": "markdown", - "id": "4479bf64", + "id": "c6a86201-0f52-4f6d-8772-7801f625dc34", "metadata": {}, "source": [ - "## Use Qwen to understand Images from URLs" + "Upload your Nebius AI Studio key from system variables below or simply insert it. You can get it by registering for free at [Nebius AI Studio](https://auth.eu.nebius.com/ui/login) and issuing the key at [API Keys section](https://studio.nebius.ai/settings/api-keys).\"" ] }, { "cell_type": "code", "execution_count": null, - "id": "5455d8c6", + "id": "0f07dc36-cf55-4478-a11b-dcb45aa7dfb6", "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", - "NEBIUS_API_KEY = \"eyJhbGciOiJIUzI1NiIsImtpZCI6IlV6SXJWd1h0dnprLVRvdzlLZWstc0M1akptWXBvX1VaVkxUZlpnMDRlOFUiLCJ0eXAiOiJKV1QifQ.eyJzdWIiOiJnb29nbGUtb2F1dGgyfDEwODM2MzQ1NTA5ODQ4NjQ1NzQwOCIsInNjb3BlIjoib3BlbmlkIG9mZmxpbmVfYWNjZXNzIiwiaXNzIjoiYXBpX2tleV9pc3N1ZXIiLCJhdWQiOlsiaHR0cHM6Ly9uZWJpdXMtaW5mZXJlbmNlLmV1LmF1dGgwLmNvbS9hcGkvdjIvIl0sImV4cCI6MTg4OTcwNjg0NywidXVpZCI6IjcyNTc1ZmY2LTI1NDctNGJiOS1hMWYyLWVhOWI2N2VjZmRkYSIsIm5hbWUiOiJwb3N0bWFuIiwiZXhwaXJlc19hdCI6IjIwMjktMTEtMThUMTQ6MzQ6MDcrMDAwMCJ9.FWg8zqFF4aQM3LX3nAvDpeBalyx42vYCS6KSiwigt6w\" # Your Nebius AI Studio API token here\n", - "os.environ[\"NEBIUS_API_KEY\"] = NEBIUS_API_KEY" + "NEBIUS_API_KEY = os.getenv(\"NEBIUS_API_KEY\") # NEBIUS_API_KEY = \"\"" + ] + }, + { + "cell_type": "markdown", + "id": "4479bf64", + "metadata": {}, + "source": [ + "## Use Qwen to understand Images from URLs" ] }, { @@ -93,7 +79,7 @@ "\n", "\n", "image_urls = [\n", - " \"https://res.cloudinary.com/hello-tickets/image/upload/c_limit,f_auto,q_auto,w_1920/v1640835927/o3pfl41q7m5bj8jardk0.jpg\",\n", + " \"https://townsquare.media/site/442/files/2018/06/wall-e-eve.jpg\",\n", "]\n", "\n", "image_documents = load_image_urls(image_urls)\n", @@ -115,13 +101,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "https://res.cloudinary.com/hello-tickets/image/upload/c_limit,f_auto,q_auto,w_1920/v1640835927/o3pfl41q7m5bj8jardk0.jpg\n" + "https://townsquare.media/site/442/files/2018/06/wall-e-eve.jpg\n" ] }, { "data": { "text/plain": [ - "" + "" ] }, "execution_count": null, @@ -130,7 +116,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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Xt73vvfJZz/7Wfn1X/91eeihh9bPectb3iLb29vyS7/0S/KRj3xEvvVbv1XuuusuWS6X6+d84zd+o7zsZS+T9773vfKe97xHnve858l3f/d3fzGG9F8Vf+/v/T05fvy4/Mqv/Io88sgj8gu/8AuysbEhP/VTP7V+zo0w7l/91V+VH/uxH5N3vOMdAsgv/uIvXvf452OMh4eHcvr0aXn9618vDzzwgPy7f/fvZDQayf/+v//vz9Ywf0/8QeM+ODiQe+65R/7P//P/lE996lNy7733yqtf/Wp5xStecd1r3Gjjfma84x3vkJe97GVy7tw5+Sf/5J9c99iNOO6HHnpIdnd35U1vepN86EMfkoceekh++Zd/+bp9+tla42/IROjVr361vOENb1j/O6Uk586dk5/4iZ/4Il7V5y8uXbokgPzmb/6miOgiUlWV/MIv/ML6OZ/85CcFkHvvvVdEdFJaa+XChQvr57z1rW+Vra0t6fv+2R3A5xBHR0dy9913yzvf+U75uq/7unUidCOP+c1vfrN8zdd8zX/x8ZyznDlzRv7hP/yH698dHBxI0zTy7/7dvxMRkU984hMCyAc+8IH1c/7jf/yPYoyRp5566gt38f8N8S3f8i3y/d///df97ju/8zvl9a9/vYjcmOP+3RvE52uM//yf/3M5duzYdfP8zW9+s7zgBS/4Ao/ovy7+oIRgFe9///sFkMcee0xEbuxxP/nkk3LLLbfIAw88IHfcccd1idCNOu4/+2f/rHzP93zPf/Fvns01/oZrjQ3DwH333cc999yz/p21lnvuuYd77733i3hln784PDwEWDvz3nfffYQQrhvzC1/4Qm6//fb1mO+9915e+tKXcvr06fVzXve61zGdTvn4xz/+LF795xZveMMb+JZv+ZbrxgY39pj/7//7/+aVr3wlf/pP/2lOnTrFy1/+cn72Z392/fgjjzzChQsXrhv79vY2r3nNa64b+87ODq985SvXz7nnnnuw1vK+973v2RvM5xBf9VVfxbve9S4+85nPAPCRj3yE3/7t3+abvumbgBt33M+Mz9cY7733Xr72a7+Wuq7Xz3nd617Hpz/9afb395+l0fy3xeHhIcYYdnZ2gBt33Dlnvvd7v5c3velNvPjFL/49j9+I48458x/+w3/g+c9/Pq973es4deoUr3nNa65rnz2ba/wNlwhduXKF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", "text/plain": [ "
" ] @@ -182,7 +168,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The image depicts the Colosseum in Rome, illuminated with the colors of the Italian flag. The structure is lit up with green, white, and red lights, creating a vibrant display against the night sky. The iconic arches and columns of the Colosseum are clearly visible, showcasing its ancient architectural beauty. The surrounding area is dimly lit, with a few people visible in the foreground, adding a sense of scale to the grandeur of the Colosseum.\n" + "The image depicts two animated characters from a popular animated movie. On the left, there is a small, rusty, cube-shaped robot with large, expressive eyes and a pair of mechanical arms. This robot is standing on a metal platform. On the right, there is a larger, sleek, white robot with a dome-shaped head and a green logo on its chest. This robot is adorned with a string of colorful Christmas lights. The background appears to be a desolate, post-apocalyptic landscape with a reddish hue.\n" ] } ], @@ -195,7 +181,7 @@ "id": "26ff28b6", "metadata": {}, "source": [ - "### Steam Complete a prompt with a bunch of images" + "### Stream Complete a prompt with a bunch of images" ] }, { @@ -221,9 +207,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "This image depicts the Colosseum in Rome, Italy, illuminated with the colors of the Italian flag: green, white, and red. The Colosseum, also known as the Flavian Amphitheatre, is an iconic ancient Roman structure located in the center of Rome. It was built in the 1st century AD and is one of the most recognizable landmarks in the world.\n", - "\n", - "The lighting in this image is likely part of a special event or celebration, such as a national holiday or a cultural festival. The Italian flag colors are often used in such events to show national pride and unity. The Colosseum is a UNESCO World Heritage Site and a major tourist attraction, drawing millions of visitors each year." + "This image features two animated characters from the movie \"WALL-E.\" The character on the left is WALL-E, a small, cube-shaped robot with large, expressive eyes and a yellow body. WALL-E is a waste-compacting robot designed to clean up Earth, which has become uninhabitable due to pollution and waste. The character on the right is EVE, a sleek, white robot with a dome-shaped head and a green plant symbol on her chest. EVE is an advanced probe sent to Earth to search for signs of life. The scene depicts WALL-E and EVE together, with EVE adorned with colorful string lights, suggesting a moment of connection or celebration between the two characters. The background shows a desolate, post-apocalyptic Earth, emphasizing the themes of environmental degradation and the importance of renewal and hope." ] } ], @@ -252,13 +236,13 @@ ")\n", "\n", "chat_msg_1 = generate_openai_multi_modal_chat_message(\n", - " prompt=\"Describe the images as an alternative text\",\n", + " prompt=\"Describe the image as an alternative text\",\n", " role=\"user\",\n", " image_documents=image_documents,\n", ")\n", "\n", "chat_msg_2 = generate_openai_multi_modal_chat_message(\n", - " prompt=\"The image is a graph showing the surge in US mortgage rates. It is a visual representation of data, with a title at the top and labels for the x and y-axes. Unfortunately, without seeing the image, I cannot provide specific details about the data or the exact design of the graph.\",\n", + " prompt='The image features two animated characters from the movie \"WALL-E.\"',\n", " role=\"assistant\",\n", ")\n", "\n", @@ -284,8 +268,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "MessageRole.USER [{'type': 'text', 'text': 'Describe the images as an alternative text'}, {'type': 'image_url', 'image_url': {'url': 'https://res.cloudinary.com/hello-tickets/image/upload/c_limit,f_auto,q_auto,w_1920/v1640835927/o3pfl41q7m5bj8jardk0.jpg', 'detail': 'low'}}]\n", - "MessageRole.ASSISTANT The image is a graph showing the surge in US mortgage rates. It is a visual representation of data, with a title at the top and labels for the x and y-axes. Unfortunately, without seeing the image, I cannot provide specific details about the data or the exact design of the graph.\n", + "MessageRole.USER Describe the image as an alternative text\n", + "MessageRole.ASSISTANT The image features two animated characters from the movie \"WALL-E.\"\n", "MessageRole.USER can I know more?\n" ] } @@ -305,7 +289,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "assistant: The image is a graph that illustrates the increase in US mortgage rates. It is a visual representation of data, with a title at the top and labels for the x and y-axes. The graph likely shows trends over time, with the x-axis representing time periods and the y-axis representing mortgage rates. The data points on the graph indicate the specific mortgage rates at different times. The graph may also include lines or bars to show the changes in rates more clearly.\n" + "assistant: Certainly! The image depicts a scene from the animated movie \"WALL-E,\" produced by Pixar Animation Studios. The two main characters in the image are WALL-E and EVE. WALL-E is a small, cube-shaped robot with large, expressive eyes and a yellow body, while EVE is a sleek, white robot with a dome-shaped head and a green plant symbol on her chest. The scene shows WALL-E and EVE standing on a metal platform, with WALL-E holding a string of colorful lights. The background appears to be a desolate, post-apocalyptic environment, which is a central theme in the movie.\n" ] } ], @@ -343,7 +327,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The image is a graph that illustrates the increase in US mortgage rates. It is a visual representation of data, with a title at the top and labels for the x and y-axes. The graph likely shows a trend over time, with the x-axis representing time periods (such as months or years) and the y-axis representing mortgage rates. The data points on the graph indicate the mortgage rates at different points in time, showing how they have changed. The graph may also include a line or curve to connect the data points, making it easier to see the overall trend." + "Certainly! The image depicts a scene from the animated movie \"WALL-E,\" produced by Pixar Animation Studios. The two main characters in the image are WALL-E and EVE. WALL-E is a small, cube-shaped robot with large, expressive eyes and a yellow body, while EVE is a sleek, white robot with a dome-shaped head and a green plant symbol on her chest. The scene shows WALL-E and EVE standing on a metal platform, with WALL-E holding a string of colorful lights. The background is a desolate, post-apocalyptic landscape, typical of the setting in the movie." ] } ], @@ -383,7 +367,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The image depicts the Colosseum in Rome, illuminated with the colors of the Italian flag. The structure is lit up with green, white, and red lights, creating a vibrant display against the night sky. The iconic arches and columns of the Colosseum are clearly visible, showcasing its ancient architectural beauty. The scene is set during the evening or night, with a few people visible in the foreground, adding a sense of scale to the grandeur of the monument.\n" + "The image depicts two animated characters from a popular animated movie. On the left, there is a small, rusty, cube-shaped robot with large, expressive eyes and a yellow body. This robot is standing on a metal platform. On the right, there is a larger, sleek, white robot with a dome-shaped head and a green logo on its chest. This robot is adorned with a string of colorful Christmas lights. The background features a desolate, post-apocalyptic landscape with tall, rusted structures and a warm, reddish hue.\n" ] } ], @@ -422,7 +406,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The image depicts the Colosseum in Rome, illuminated with the colors of the Italian flag: green, white, and red. The lighting highlights the architectural details of the ancient amphitheater, casting a vibrant glow on its arches and columns. The scene is set against a dark, twilight sky, with a few clouds visible. The surrounding area is dimly lit, with some construction or renovation work visible at the base of the Colosseum." + "The image depicts two animated robots standing on a wooden bench. The robot on the left is a small, boxy, yellow machine with large, expressive eyes and a weathered appearance, suggesting it has been around for a long time. The robot on the right is larger, with a smooth, white exterior and a large, dark visor. This robot is adorned with a string of colorful Christmas lights wrapped around its body. The background appears to be a desolate, post-apocalyptic landscape with rusted metal structures and a reddish hue, indicating a harsh environment." ] } ], @@ -461,7 +445,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "assistant: The image is a graph that illustrates the increase in US mortgage rates. It is a visual representation of data, with a title at the top and labels for the x and y-axes. The graph likely includes a line or bar chart that shows the trend of mortgage rates over a certain period. The x-axis probably represents time (e.g., months or years), while the y-axis represents the mortgage rates. The title and axis labels provide context and help interpret the data.\n" + "assistant: Certainly! The image depicts a scene from the animated movie \"WALL-E,\" produced by Pixar Animation Studios. The two main characters in the image are WALL-E and EVE. WALL-E is a small, rectangular robot with large, expressive eyes and a yellow body, while EVE is a sleek, white robot with a dome-shaped head and a green plant symbol on her chest. In this scene, WALL-E is standing on a metal structure, looking up at EVE, who is adorned with a string of colorful lights. The background suggests a post-apocalyptic setting with a desolate, rusty environment. The scene captures a moment of curiosity and connection between the two robots.\n" ] } ], @@ -499,7 +483,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "The image is a graph that illustrates the increase in US mortgage rates. It is a visual representation of data, with a title at the top and labels for the x and y-axes. The graph likely shows a trend over time, with the x-axis representing time periods (such as months or years) and the y-axis representing mortgage rates. The data points on the graph indicate the mortgage rates at different points in time, showing how they have changed. The graph may also include a trend line or other visual elements to help illustrate the overall trend." + "Certainly! The image depicts a scene from the animated movie \"WALL-E,\" produced by Pixar Animation Studios. The two characters in the image are WALL-E and EVE. WALL-E is a small, cube-shaped robot with large, expressive eyes and a yellow body, while EVE is a sleek, white robot with a dome-shaped head and a green plant symbol on her chest. The scene shows WALL-E and EVE standing on a metal platform, with WALL-E holding a string of colorful Christmas lights. The background appears to be a desolate, post-apocalyptic environment, consistent with the setting of the movie." ] } ], @@ -524,11 +508,17 @@ "outputs": [], "source": [ "from llama_index.core import SimpleDirectoryReader\n", + "from llama_index.multi_modal_llms.nebius import NebiusMultiModal\n", "\n", "# put your local directory here\n", - "image_documents = SimpleDirectoryReader(\n", - " \"/mnt/share/nebius/images/\"\n", - ").load_data()\n", + "path_to_images = \"/mnt/share/nebius/images\"\n", + "image_documents = SimpleDirectoryReader(path_to_images).load_data()\n", + "\n", + "mm_llm = NebiusMultiModal(\n", + " model=\"Qwen/Qwen2-VL-72B-Instruct\",\n", + " api_key=NEBIUS_API_KEY,\n", + " max_new_tokens=300,\n", + ")\n", "\n", "response = mm_llm.complete(\n", " prompt=\"Describe the images as an alternative text\",\n", @@ -544,17 +534,17 @@ "outputs": [ { "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi0AAAGiCAYAAAAr5/biAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs/Vusrmt23wX+xnje95tznfZa+1B77yrX0XZVYjvEJk7ZkXGTBEVJN0Zp06KVi5ZC5wIJCbixhES4AIFa+Ba1wn3f0hJqiBpIi0434ZCYJCQhIbYTn8p13ud1nvP73ucZoy/+43m/WSJxVWjA9mY+1natteac33wPzzMO//Ef/2GZmdyu23W7btftul2363b9Dl/+230Bt+t23a7bdbtu1+26Xd/Lug1abtftul2363bdrtv1u2LdBi2363bdrtt1u27X7fpdsW6Dltt1u27X7bpdt+t2/a5Yt0HL7bpdt+t23a7bdbt+V6zboOV23a7bdbtu1+26Xb8r1m3Qcrtu1+26Xbfrdt2u3xXrNmi5Xbfrdt2u23W7btfvinUbtNyu23W7btftul2363fFug1abtftul2363bdrtv1u2L9jg5a/r1/79/j85//PJeXl/zkT/4kf/Wv/tXf7ku6Xbfrdt2u23W7btdv0/odG7T8+//+v8/P/dzP8W/+m/8mf+Nv/A1+9Ed/lD/xJ/4E77777m/3pd2u23W7btftul2367dh2e/UgYk/+ZM/yZe//GX+3J/7cwBEBJ/5zGf4V/6Vf4V/7V/7136br+523a7bdbtu1+26Xf9Lr+W3+wL+Qet0OvHf/rf/LX/2z/7Z/d/cnT/2x/4Yf+Wv/JV/4M8cj0eOx+P+94jgww8/5PXXX8fM/me/5tt1u27X7bpdt+t2/Y9bmcmzZ8/41Kc+hfs/vAj0OzJoef/99xlj8NZbb33Hv7/11lv88i//8j/wZ37+53+ef+vf+rf+l7i823W7btftul2363b9z7C+9rWv8elPf/of+vXfkUHL/5j1Z//sn+Xnfu7n9r8/efKEz372szz60R/DloXWHMvEE8wctwYGLR0zY9gAEvdGZhJAYDjgGCP1tUMaMLClgRtYYmaYGZ7O4k63js3/MyMjaUAa9EjSzp8bBkni5lg6WGOQeAatos00yOaMDDKS1QwwzKCFYTSWZaUtjjXDl4XFoLUVs4a7E+40B0snIjALkqCPICLIkRDJaRwZ0RljYwzIdDIHJBiNtMAAcz23cKO1xpqu60TPOElIIGEz6CRLGi2gxyAM+ujM2uTiYDhuC2bgDT07cwxoBtYMyxUDvTtHv8CNXJIWxpqNI0ECqzk9Aur9AERdXzPXz5G6f0saDUsnI0g3wpLMjpuR6PqyOUSy1vuFxDAygOa65UwyYeQAD/18JuHOYo2G1aMJksFIw1nwBCzZcuDuWGhPhQXpyZLtRgYSeCaWEIAROEliYAsjtWcXS3DdD+kExsi5dTuWwfCmcxGJo2ttTf8WBt2SdMMyMQZk6n4xIrL2iO4Zc0ZovyTg9dytd52zEaRDZBKR+HyHe5U6iHkf6YQb5k4belphBjY/9zsRVHO9G3cjrM7fSBztOWs62wdz9DFGeGI45g3GwBzCQ/slTJ+lo6H9HlHvXb9+8ab9AqTDmsaSxsaoq0qGOYbhqeeLGYPUc3YnQ7shLRkGSxpx496mDcGMjGBkgOtczPtoZpBJz5BNMacF2iNEfR02MzqwoPep7wXLgWEM9OzcYY1BMyes7VcTqf2OQViv9x5YJGYLpDMyCW0QiCQjdc5S79lvnMdM2cP96/VvBmVHwBIasiF9MRgBkZg7PYNuqb1Zz8JH4PVc0yDMaeGEJzkCiwY2GOhZmQ4t6dr7Fkkr2x3ocyMC/GzPSZ31qOcAB8ikEWDU+w0co4V8R0TQcLolPs9MJM1NZ7jpOVhqw3lbWRJGdoaBW/mDsnl6Vjr7mXoegUH9HnPwNHLUfXqdV9NZx+CUA28OXe9r1HO3rHtuspPb6BCBp9HcibrHJc7Pj5sVDW232i/J5klLcPSzzYLFVry5fLMZLU/87f/oP+LBgwf8Vut3ZNDyxhtv0FrjnXfe+Y5/f+edd3j77bf/gT9zcXHBxcXF/+DfF19wX2itQQaLQVrDzfFIltbK6Fsdfi+HE3V4HTejRdDMaSDjYTIm7m0/gM2a9tIMFEKbvC1gGfr3ocMBhrmVUYGGy/s0OX/I2mShQ22GpeuzYpAV9rTFdQ1ueNOfW3PWtujaW8MSbG1yPJHkllhzcsh5tyXoDLoZOPhWwdMSeIIPZwnoFpitrDjRTI7F9czWMCIDW5oMRQZZhmtY0iLw3ZDqe5f1QGRj2MBb0NI5sMqlu55vc1dwR4I7i63oFciwNgMjCddBdhbS5c48YHEZQkdGfUNB5hIKXnEjCMwHGS4LzkLUoXYU3GbKKAep51z/FjNoHTq0YwR4fR+O+9D/WmObhicTtxWygkcztgQfgbmzNLthOBVEaYvFDWPfcIVR9CznP0YZLsdxFoJsuq6GEalgac2kIcMLSaThZaQt/ewuTY50MTlvkJEdEYyQoVzafGZaiSm4LkNvKSPorq/1FQXAZmSWsUWObIyuoEERIMGCuYw7rkAuDYYF4GSWs56hrxktHPNkWwLSaT1ZvdFn0EHi1rBMWp3jecPLuoAlgySGnIi7ApweXWfQlkpGAAsywXOl2cIYQWtOWnAIx8sJpjlWDlhBitUVx/nZZcqZGSz1apotZGzap2lgjR6DrD2weEJGBYs6jxaBuemBR8iBWWJpuDXcjUsMG7J6Ka8Ho9OaM6zOuUPLFebPZeAVvA4SG0HYYU+41pEK7twqEUoyy75lKEitN+Upe5cY3RSIWua+b/Q4FMgdcgbLRrPEPbGW+DBGBEtzuunnlIwYuWrfWZZzD4NwYkY/mYQ1PAeRun7n7KitzaC0kspU0ql/K1+RgEPPQVqr56RrBUgzeg4WDA/Z71QUz5LBEvW7zFjq94QpMVLg7bIVBuRCswpu6n2bGWPaQQaKqeTjWqLzPs9JgFfAHjPArsSyzQTBFVDHUNAVcCN5gzu+QL2H9NyfiYeugYSwoMdgWZaKWIKFxC3lM0L2L91YXUnlMGNx2bHMs23/rdbvyKDlcDjw4z/+4/zFv/gX+dmf/VlAL/gv/sW/yL/8L//L/0iftXgTsoLRXIdvPmQqO5lZm1VQYm4sNGU0oZdoFjhDmSi+ZwtLZW05jfP8rEQvagTl9yCTtTV6ZcgWyfCZRQGLDtqaynbGSAVRkUzT3Jq+Bl7oBzAdZKTQlKiLyYRyLtaR40k5+j4GhJzZGIHV342BZxBDCMMSRuuGteROH1zY4HpZGGMlXMHdkjcQq5ABmbliRHDAZMBcB2VEsLgOcbqCqbTO4o2VhjdjjLEHjBV3sFjT+2pOjmAJxxYdFg9TFB9BK8Ph5hPs0QEzV/CYCmIsYYQyKZ/ZYc43zJ79myLUymqUZ+vedI0xBm468A0rA+dAEDmDAeMwg1HTZ1tlmLXBcHcWc7YIGdFyyA476nH+ORkmAlqDGEPvoPZDzly9LJSCh/PvDKIyU8eHDGIm+EQ9puHICuTH2IPQVvdPBWBQz6UQpeZWaEAZ9yEnGFHGC90fN+8/obUFIxllZMPOKEb3QliANhRwYI2IUY9PWai5E9lZozJdA8+Q8wNw59qEPJiZHHE9F9tvvQzpjs4pnTyg9zigsLIZmtZ5NwUzYVkZM/tuSbK+T95uvieb77mehaHzCcDI+rMSnsxgbV6PvBABbxV0OyNky9zBbBAWWIOWRlpjpJIn52wLKjZQEF0x1MGAHGQTArAg3+/MzL6y6wD3tseMZOABzU2IMlZJnM5I1D6f23IQsp919pYmm2sVKGToyU100TKomBcaNG+00HvJCoKFuDhROaBF2VCUhEYFRgvK+hW0y247kO5EjvIHsjlBoUb1rAzDAzKnHROqKfRJNvWQ9XxNe7cDbomF7gHXuxVCb7tNWMq4ZAzM5hlSMMsIlnn2UPLnzXGCrMDWykNpb89ASXZT56GeUyXOBfUrUR8Da85AyKRXshwkLbKSDSq60mdPxFC/z2nt7FvNm5Begh6wuJPpWAWiUQFv25Mvvqf1OzJoAfi5n/s5/vl//p/nD/7BP8hP/MRP8O/+u/8uL1684M/8mT/zj/Q57o5Vti5sokoq7irDVBYEkNH1M81R4BFliAUxLuaYEpR989KHgiHXy5jwdJqxpjL1YwwqUVVGYNACWkKsBVUXhJp1QDLOKE9OEzkEDbdCIWxm7Qke2jj0oC0LMW5m5cA2WFyoEgWnZiTREyeJESw6LfgYXPSBx4l7MXjj2Pn0y417z59zOl5xeu0NvvHm63yNxksEu46ZuZcREjCiLM0MlQVGkhWwKHhqcslmyOdU6SOSi6WOp8lALglWzgz0PtxM7qCcLhkq0UUq8JmHpS20lCFcK9oPq3SCckojKziaWVVWtqffQ2WRc/XpwBMW5EjOsHcZiEKhdF9yJqqrVBY0E7oyJm5wQMjGyKDHJsNseib6TBmgMYTEWQryXqaxmkG56bkuqT3StaNVBiwHNNGOaerMFJBERL0G7U1GaAfmdNZJKzg+KQc2Pb62Ob1QGSL3MsTiDYtZkpvlkzKeVucNq+C0ymsTxQzbs0UBfJVB7giRzmk39uRk97AUImINLLiDzrxHED6LUULDAiUt1vseWjS32pny6quvZHbMmsrG5I4oKBIfckRUXlRJhwKF3O9ZJQwhkkqA5AQaEBUsOq7yHklGBV42S3F1jjBB9xWl6rG5nJpBy2S4Fyo69D5Txe9U9MiSBeVXAIU1lYZSz3baz0Top02UitxRFMuyaYwykbmXvvTcGiOCqOx9MdmtczCk8ljm0DMzI70J9UQB6QpkK4SokIuIrmTIdR0thLjoHQh9cNUw8H3P2h78D+bXdNVRyKL2V4XVZkRwI+hSMBWmsnSQjHofS+pZOE5HgfohkmyQNs9I1D4up1DB8lrXkTfO5lLPyzDWFAobBngrc6ITHDPp8CYEuNDkDIgcVU6vlSqbT6QJM1pREzIGh+ZYldYD29EnnT9Xadds34szx3FhuAosbdpSm+G5fOaI2mPsZenWVML7Xtbv2KDlT/2pP8V7773Hv/Fv/Bt8+9vf5sd+7Mf4C3/hL/wPyLnfdTm05gXTJc3WPTFYspwelbkBZkmasjtSGZQXB8bq5aWVtzN9vnmS0XWsM2lpVFmfEcG6NDyTkSnYFSEinhC9OBcVBIUbp8qCVzNyDEYkeMHNFKpTqAoTeo7AFkHCGVXDHDMrVtpxjI43ZT2C78WdOeXGoa7POfHg+Qteef6Yh+894fLFS97aTnxxGN06v3l8yeW77/IHDj/Gb7z6iL8cnffXg2qudVjTbL8n4kZ928ohlDFdzDCiIn0FEhOut4Ify1xDZbSyHPW+XPfdcKw3mO8mIYeCxwtrQiPcKyOVYe2hzM/LqTIREaUS+o1N7zNi0HwBBGG7Oy2UoTFUQkuT8zA3ldlSkHxO5zSztImcWe6GymgVVI1KYozFD3im+ESW4vPEhPyrtDEUiviE+hLxYFC2H0vti2FVlqgMq96T2XSgMKIXT+JmyUVIQhaaQVbWO2Ivt5m7jHGdKiMFA09HnZW9lnOCCnBRQtGQUxqZNPRchylAnOZPmbLe90jIOrfmxmBUyLUSKQ6PTPhS3BnV7MPkuLwSCahzPoPfVOY7zPCC7Wd5R76oDDzJIcXjUWJwPouzLLpQXJXaZypNQ5uOIsSfm9wQi1nszcqkZzl4YJn0of1iCE3Lcqw5r3Oiu5RDMSGInhSSEbXHxY2ae0DoT6UKEZVsJTG67MbQ2dILrp8z7T1H7yhTyUIzm9VGndUq+4WqHRU0KOFa2nm/Tn6Tm2MTdamyl/Zh4+jT5QUTNcyJWhmkNSZ+OMvKZNnHiPNZq6TM8owGhCeexZgxIBut0BJz2d9yDGwe55KfgG4Wa7gpYGwFRbg5kUJstOcKKQ9nEJgnRit+lPzHUrvWZ7hnBumYJcGgh4Lx1ZqCOsuzXaFBBTxR+cqIJF32a2mmv++7xDGPsj8VqFfSZCnqQNR7ThDKarJd01+q+jhqf1Wgm+J/tUJFcwbxOGsTn8aMKvNGIYeiVAgBOieFv9X6HavT8v/vevr0KQ8fPuRTP/ETHJZ1P9wtp5Gv+nJtKGU+ypLCBPdliFhLJCxLObRyapUduXwlbUaRZdjTRHiU4VbGOxAJyluWs9SBO8PFMBwFLZXZLN4K6RFyQDk9R9c/SZ5mrvLC0kQmboKjl8qWmrWqmYuYhauuvUTy0jcue+fO1TNe/8Z7XHz9W9jzJ2xx4g7wg+0uby6Np6Pz7YDHceQPvPIWDx8+4vkXv8h/0+CXD8a1tQL+nWEKngzbuR9CVHwnfC5FbBNKBVTm4u6shVqNJl6FZ2MPMaezBKgs2cLxJtREWe05ardZwnOVkpT9GzFEDpskR+rweCjDT1f9FpzRgcWKWKazGCibaRW0OGWwmkp+5kYujZ3AWQHJXD4znZTR9ZmJWfEeUobaPIv/oSyLkOO3qH20NPYaJeIpbZZ0T6FO2SoL1NfH6Pgyc6AyVK6se5Y0zaxIzPU9+z7TNawm9CjQ78ks3kqovp4TAu5jh7gFxiTemkqSVsiB6ol7xjvf84QqzAxGzoSUHaXIqKxejjXrHY7J7cmUg6jsthWaAjL83mB420u1DpwQ+bSZFwmzsu/Jv0lYWHbEJxtYERSF0iBYf2j/WHNGKGhQoMeelgYqr1goMLYJNALdhLRYzqC9znjtnUkgnXuxHpXQU3SWZhIBiJtAkeQnImYVHCAa97BCKiZyNLPneZYqAM1MDqiMMHkS3uSEI/QWo4J5TByXef1RwZGhoCtcicosve7vvRBk0hmCBckY+x4cGbRCvSNrf/ioANp25FNxy5kU7MGOGI3pgE0BRrrXBwq5JHNHRkQiH/v57cUXEbqsIBQoTpgi2LAgUs/BmGiJztR0uhGjmkRcpPsbZ8DcEW9qkObMsJ+cHLeG03Zka00hnHJDM/DR71fC1iqZNjAlPDGcGyapEJJ5bVFcs1FViSphWu4BiOFn+1mB/QxYzOozvBDD2p8TCIYoJL54a33w3/z5/ztPnjzhlVde4R+2fsciLf9TrZU8cwmqvrnUw+9jE1E39PXGLAXVRnbfWeSj8E+vAEUPWwEMI1m90gxTCJ7FS2itKciYxspNqEzq8IwYIpdhmMmRtESRUGpTU+WsWUJoDlsMbBquVMkpY+wENBvJ4o5H0HyhpSD+NEHsbaiTidx4/eo5b37rXS5+86usj5/R48QgeJTG9613WNz45umKKxovIjgsxhLXPDg+4c2v/go/8vbn+dYnPsn/89k7/J0wNi7qfqrDAUS8KCfd3Fm9HHVBzSIqi/jlJk5RVE1IYZ2MYnqhHRjWlj3bTENBUEX7s3RGkffqqAr9Mh2cZSgTyDxnIYaIckmBGnXYFMzsfl/GuF7pYsaod9GaA6OI0SLjkexOfjdGnDPCeZDJkFFDzixjvt8o7oZXppmCyU0ZH6Pvz7EbwFBpcjokC6FoBktYIXhUQFKk0BTyFpw5BG6TOqnMs02v2rQPIxUgLtb059R1BxAjSRvEStXx9fStWXGpRDQUkVHv+MIXEQDL6LpBNAX7S6EhJMWlKgeSXs90unY56NRbqEBS99mzSJYRxa8KDsw9moLV6/w5tjsbm50awCzhzoy72X6sSRORd3ZfZe33meUv1grdkVFfban7UdcfFRi1cgDL3MNesK1VFtyH+DXMn0H/nuq8WsxVMjUhHm7iu4ifcuYhjRw0azu3i+oKgbOjTSoALfQ0soppCa24O2lyiu4oZajrsRFk3Xek/jz2804FylWAKQcvpK9pXzTDorNEKnBpDbfGGIOGzjugkhIUj0VlNDjbxRnqDdOBmojBfM9YEOr7IVEXVUM/HBWMiaulLqrIKESPCkAKjcvETPbeWtDIPXhzn+U0q7KieEhZAZNXCS5bdTfGRFmpPTVLyFXatuKrTIJ0BXlrdSnNIMJoVZ5Vx9KoPRwzCKk4LTPpQxSCvXtoBpk4a3HS9vJ3JZdRCZtZJXETAYrid1Fl0pgeWXvKK9Eu/Os7kq7vtv5XELTAgSJHlkN3KyflyqoX9jdHWkHpQC9Mf7GC5ZtXF8aGW+NgYkRbGYeo1kZi0MxuRM1FkM3axLX5RRobOCqF9LGBGYfme5ug3dhYVpk9GcqIt1GQvkpSVmWLlinHkoj4O1RP9dowFxjd4WLAJ5494+2v/Bp3v/Zt8njFMONlqv7/cL3kNIIX48ixvNx9Tz5z5x6fu3uPTzx4hW6Bf+Mr/EEPvv/zb/Pn3n+Hv52N7guTM9HmYUNkrFbIipUjFFm6CkE75Cwj2jAOdgO5MLVYT0eb00gWX8RdaBqc0YHZ5i7jXF0oKTJqQwhBL8JnYRtVpxUvIPfMS8YgZ2hRSNJIIWHOJCIPrBzSLDuSIVStssiG9tmwJF2EbwXTTRnZDHpJRg+Vo6zX/nXoKQM0y41FMLa545pKgsqqY2/5t9Frv7NntedcfpYhymn7OTuaJQEztYLLSU2OijEqCJjGdxT/w+t+rZ5P7IGkSLBuqSASZ8niAZhgbncj3bHKRvW8hfJkcWOmER47b8WZ4KhuUqgaVDBQnDOowLCrVdzdVBouB1MbiEmebdWiGs13PpN4AOJjGUZMEmI2PLSPIgNrru8r4urIUFnBm8o4ZNkeJ6t04qngqWJZmCTVEazue6tpUF0xutW9tCeoXw7HQsFOon2VjkqMFMJkatMm2Eu08yzgTW687M/k9587ZYylLergQTaQIYeUWNnHKvGlyiBZAUFP8FZnbaj8kSQM2YwoBHAhd8goetfunah3SBpi8llkA9ltgu0ZfshWGvr8pUr/1Q23VgkvTciOV7Aqwvp8niXrEMWP2u27V6C6KDj0ZHYPLLPc1IwRQ1yaOn1nzqRQn7XKUmFKgjOiuDcLozp21qGzOmY/OLm3HzPfPcX5sqzEEAjfqwO4M6JVJ0/uUN1hXSqJms0KjTCVf0ckS13jVgmOlz2f3URnRmYh7hklZXH+r8y29oelUG9UNdj+Af77H7Q+9kGLmMkw28iyXoq7ItClOotmtj2SsnhCKsKq8wSjo84Ut2q1rZoeVNZcNUmz3Dc8dVCtOpGau1CbmJGzDr8yInE8bFR7oGW1OysrjckTsKZ7GlP/5cyJGZFkSw4seBpjnMtgS2sMBqOt3OtHvvjR+7z5q7/G5be/rcwYp2dytzWarbyMwdFhC33eRRoLwXZ94unaycdP2Q7O0xfPeet0zZ1vf5Pf//prfPXhwhMvvZVCVCaS1F2GyL26neqZTZa+Ej5lXyKO+V6+sMrydrjXzqUgLza82mOnTTMaTbyamMRaEfRIHbpBSJugmRCuTGCRwRw3HJiodvr9lXkuWQahfhdkkecKmZEAhgKnCgDkwJNmS+2HqYvhLFn7sMoQlCFoZRTdivQYHWw5owGx7QHaYgthVjyI2UGQaqeuLF4BILvxHJ5FAhZ6pOs1BR3YrN7MnEhZrjmEEEfxeVSYs3EuI83Cv5yxY73YLC6U0QMOqLtipAJSN2mITMDdM7iYZHmTA8yhgMhMWhQdBXK77kmhUY2qo09kiyKH+0QbjFzqGTBYSC6rdLV311TiMG37yBsOldpfNvk5MzhTIDEMaEsFY7a3n+9ZdZ3x2dk2zAinCOIzaVFnXlZytKASQsNoOQMFBQe7rkklSlkYQ9szYiFzgzMhdXbZrFb3a9VJVshLVonKCqWaMg5TR2hqiixeKKrVy61gHgva0ui9V+eTbFqfgSKpJMxbldQDmpziMp+zFb0zjdWXkoHw2pe2B8XFRMGrPzlHlTcsicWFTo3ZKKFnbCbS/iT1x/5mtF8u62+TeDpuIARZ3MNRpb9lKEkeFaw1b1AJ0Vb7RTY/uShUQbwcIVAKUoWGtHl/5ZRaE4comtDkQ11gzoTJpIEF1HuSHWoVdM8dgclHLLaURow6qxQ3zyTZi59V5SYEJTrFy/JFwUyqsWFH7gw2ZDdm2chNEgQ4VelQYjd1bhZrhRid7ct3Wx/7oGXBSviozK4VVK82GhljP2fm0gTQC4sbjkhkwGR1E/QVWVC44H3V7eSs2kRmCt5dQs7RmUiPUgG/UTYKytA23zP0MOioLTDLwWOVV5bDcy843QT+6jbr91e23Kz4AzFYGvi45kc/+JAv/savs3zwAdckR1dWYM15SfAi4So6PZP77nxqWXnjzh3G2Lg6Hvn24w95evcuD179BF/94Ft8dHVFw3j5/Jq7P/ZDbOtSRp8KQBYoJ+MlJuRNhin7wH3Zn6eXsQ5DiEGqI8ASTqML9p5BYTkyn5GKzeehd4d4rCKMAbMcQxmWzPreEdVJVod77pkKkBQQAK4Aa8QQfLt79LIgJkfe8Op6qFKRZdVxz/lG86WCWJkGr7bjEdMIq4Qn9KAg4ukMZmAwjUrt3zHfe13TbC2fgE+rzoIe6hZrJjLrbNudRFwF03Y2JDO7LmInVDDiqLzZHQ+VSLPKBlPcQhwkY1kbp+I8TO0WoUkqkSzhe+eWKRLQ3yL1/tHjjiImQ7Kod2bni80AwqscGqYy3ZglDiZhepYMKjBBnKEcwWXpuAwkXJY7SdTOWWyez9f8XJ/3VWiUuWzLsp/z6rphCuXBmq1c7XkrLSTDR5ViEtJL20QBTy+7IMpDsIbOyixFQiEBqesbqGNo9cZWSJc6g24ErqYA/NyJ2M6lHuq6Y+i8VqlCnlRld+3npqC6nNiUKjCCdco+uLRmLILV61mSWE5GE2RYNRAoDFlSez4LMWlmRY7XmQ5T+WOJOHNKan9OHaNtRyC031rWGZ7JRZQdiME6YYGQXZldQ2nqrHEv5agU+nJiVLCtd2U5ieQiV4ukbYVuVfRLlWcK/ViHkHwsOYQE5SZy12aXoDnHpEqcVR4dyRILbkKkiS7kpYLfeZbDpZ3TCl2mECib52SegtTPyY8EF7VHOlMINVhq72Pq3NoTu6oThQ1mdSFTdjYs9xKzbLeCvSWAJnRrR6W/y/rYBy0NZ7VWkTRMLQ/D9tr31OBs1or8hTZpJktK5bJNqG16gAo0dqc2s/+s7pb6czQrBcSzYZvwr4xcbRiXURpGlQoUgU6KrpkCngx5b2+69s1yJwtbDi5c4m+j6vZOdSVEMEwEut9z9Zgff/ebPLza6Osl1zSOfeNkyfNSTz2OYBmDLz54ld/z+mt8/8NXOVjw7MUzHl9d8a0XVzw/HDi5sbYDF+H0xWnryj1rXJNqEc7K1ryRlqwlzqVW9CGofPXSkvAyqIrKjahsD3xMnk6hJGa77oKyZ2NvT5/RSKhs1sr4wlRwjeLQOUuv8lEoKxooq2yT10SVDObzH/X8K8icbzWKWzHbcMlRLYH1/ph1fwWyzVYJgUVltnUvI6udMaMQu6z9KtGoKHSNCpyobO+s/KHlKTh6ZoHK5uUVR56Fvojk0iBT+2M1dbq1kfXOuBHAVHdDOd50iqgcFaxVtmqU06syQbJ3zIgroKsVKd7VbRAVaLmcHFRQFIG1Bh678wyz3cGt1qorUI5h1vMVSIwiNSiyn5o/XqVG3Cq7TYxViNviEsxKOZe0aqEu6MdswuwOpqzY3Xb7MtGZ5lZcF2NWEloqg44oFdcKUqY6qlcJZHFD5M4CfYfeb0v9gqx29x5blbq1V9W2XLwQRB6OOBEVWGZ10Szl1g/1EDND0HFIZ8UwfJl7NlW+rVIT9f48Sy+qqXw9O9mMyqaHUGWPctLFszGvLkrUip1bl/+LVJdXJq3c0s4LrIDFm/bUqODJSrwQy/0siUUxSdhCri8iheiVT7T62QWrbjEFQAOqdC2nHFCtxXWocujduIKGWYK83JE7/Tffe8TYn7MXwuHoecsOyHZknuUmdDsKLE4zOajnRyYX+PmQT19UZ3xq8ESvcmr5hdkBt1ol8BNJnR9DUmqKuInzl8aOPPtE4EyKubOsJSE+wIWQWRpr1FPwGfz6HnAKXT1TM/TMxBfaoZ3vYX38gxbzChDqoMBObuwJtphaSwsWUFdL45gSTVsS1Y8rup7BThQEPQVylIGMyrSUPXgRf8fkW0wHZo43Rc+dElELaYx0n/wDvWTzEkqKUJRfzlf/Y6w4HkoNDnsGUEazsousry/N+cKLF/zhbz3ms9cbHFaGGdeHA49PJ751/YIO3AvnrTuXfOGLP8D3P3yVC6+e/UjuXK7cv7rm3atv8fjxU+4ej7y5XHDv8oLnCcfDJW89PfLGncQuGse2co3zNDYuvHPhTtukfDsOwYct2XxVZmhq+Z7ABWNIg2QpRMGCQ0XvioeastDmnMqRmBdiMRS0tRlEAL3QFDxEQgQwERsbDe9DrYA2UQwdxCxoF5RtDaLI2MV6N8HMOpkVZPl8R+1G4FKkvDSWcuhW8LXwEpEvJZLVRaJGonVRCJGCXhkGiXvKwKjF2KCC3azSZ1CKxBSK2IMLKzJuKkONFFFWgYyeo1DBIbVc0/gBxWAmgp5FcUAE91sDa0I+ZiFt9cboifsiJ5zVdTRJrKB204IYojrFGlXSRNdvZUgXV9A0fKluOoleOWqtzZHsGhVWQlYVzOjTbEctx6y+u0jBVhlfdxjbkP5OW1lN2Wf6RGInyrmANbXQm6602arnXchNA3ETRgUvdd/eqiV4cidoxRlQ9hwZNDuw1PutqK+4QuOsyUPtbbddkyN2jxYVABoXQ62zyVBZhoWMiQzoHY6e+NJITyGFXjpWTVIBFzR1t5Qmk+O7jANuLMsiRds0WhiLT4RtIcYQXwaNIVkqmVmqi1BBbtYzKEQmz63KdYs7KqBn61Wy17s+pMocw+TUeiFoQqiNaL6XT8Rxq2APId+RgdMgKpBhatzs+U5xLtSpiC0qe6Q4U5aST5gcJiKZKc1SQV4rZGKWrXd+HVTg1YU6FMl8KZOy51wBFkJurRLsNOjlX6TCqyDbRtKKa2Jzt4S0sUaO4lZO1d1k84mqVTu+NyJ8T+iNSnpib8ouGQbIXnKTLmI7CafixYC4elO/y4CQGJR8ZiVMS3gFvt99feyDlhmWpttOMFLwUjXA0rBQlsuOsFgK7swIbQo/BzVTRE4+womhjasOkdzlmdfWzqJlKcMbjR3mb+ZsMTMfiTkdRpwdh1lpqWSR7kzaIZGlyjnhaAVKUCUVLwh0jiiozf3Zq2v+8EeP+dJ25OLOBekLWwt6P/HR86eMhAe28P2ffIsvfeZtLi4OsG3YKWEkY+vE1nl2dc07L59zHcEP3H/EJy5Wnr54wdWy8oVXX+dTb7zGb8Q17//i3+fh2Lj32qscLi557fkL8vSUlwOus/H6D/4QX/nEQ/5OdraCptcdYlQHBujwFn4LFOHRre4rd2dPBYyWKVGq0qfwnA4qStpaiJtqvMV1GrnzSZT0nPVYrAIHq+c5odHJVYmM8z7LnCXePfNWEKbSSnOjpVpv5/dR9XJl78bYYkc0towitSY+BlPll2mAq7w0CX7W2JGGGdSM+vYxA4VIVldpZESAqfVQYyrOHXRr1BiFtOoMKT0Ks8mLBFQ6iVRAqLbI6iSKxtL091ZhQzbt5ZtjCijOjj5OmbrAptK0MAVjzb0E14r/MPEW19miBPsCRLItXs/eHVZcBm/Sh5lK1D55DE38q9bkaOYLUswpHlxieCt5+9aI7CJCG/X+KouMfi4b7SiUVausoHw3cUeGDawJBRVi62SHm3ojPboSpAXoEmY756XGHPUgAqmCF69Ap6XsCE51OWqfecZOIt77/CaKZlRwpP8mSkfNxymGhjRtCkmYZZmDCUmNCOn/nA8B2+R/UGhWTHI7TFXVWZJJus5zISNeXMHc0Ybp9GbIP5GePDtWkmyGV4lcyI3tXJRRZ7gXFw2juuTmHeq6xpjibOd7m+J006G3Njk5vqO9zYUi67NdSaa8hJw5Op+zFIpVx2lWAFcIfWG7ZJvo75mzNtHWUR2GXgCMaM2zEqBu18Uca7p36h14pSsiYBuHBBvJRojKYFaop3zgDGhnKpYsaBzJxnAl+yvFjZm+DgVAo+aotdCoC7Nlt5lp+7CE33J97IMWq/OSBT1NFcNREHCrWT9ZGxlKn8Krc2Bp9BHK6nYDmPtn+9CLVPSoYChNQdIWYvoL2QFbnI6cBViJYYlx3g0ZGbMSXIKSOJRWC7BRw9IyEXak2mWWtL/vEJx+12CSfVfus/HlF0/5seMVD9eVyBXoPPXOtz98l+ux8Upb+f7PvM0PfOHTrJHQk9yM09U10Tv9dGIbcN27OiNMKpcP7lzy8P59Lt76JBef/zzPr17wmT/yhzn9iT/KR7/263zrK7/JF3/4h8ns/Pd/7W/wq7/0SxyuOz/9R3+Cz7z9Bt/8L/8r3j8FVuRSa1WrrpKbhMFEfosItiobrTdQjCX1HqZKrODhBjZr7DIQ6saRgzFS+gx7EKkgdNTwOClPlgNtvv8bsOs3BBA5Ox04GzqowGFiy/qcpdxDhkjHM8DwSX7MQgOLcxVMw1TkvPlJslVloFTSyYKks4LbqRO0KBqXaJupfdRMgbkk8xSEaASB9u9AJE2bTtiKfF73rYFs09CWa2tSPG2FyrRcS2NGWjE9o4Lo3BVL50BCav+q0UdncWl6rmFV169n6FZBK2dZdkuVD0TO1v9JQZdSIch9jsrUCsrS4xFJfKLt6k6bYmx64HP0xw0VX5fznnNTvPbE1GiytujeRpDt/DNGw6KEFRPCUwMaSWzM0QtRQayu24eueSvibfNkSSmwFsIOdqOlG/Cokl79jr2NnEKfJr+i9umkKZB676MEFT3Fddml3w2mqNlsXRbqWPyJOXNpBiMuPSTIko0oBz5GlcTq765ye9okvVJu0YqT1iAHOcbuLKHm9tSemGW5nVdEFrctOIQCopFynAa7wKeoAbOEWHu+0L9OSeQvjanYrHlO7P6EIr1mSAafSnrdJvdxnqkSUJz7qpA3UjzLlkXiLfuVhRiq5boqKPM8VrzeKOkGJHbZSzROiGI/D91FwflOX6jrn2Tiy3QyjW5N5VqSjL4jPULBUYdsnRnNYTMiNXwyp7MNsBF4W7A55yugwlfZarLCtbY/hzm36butj3/QEvVgqVg8d9BEnTmhfnkqemYadZcRWPCKiPU+Rh0Ey4K/Z/98OZmeIkyJR6EpK5FZehqKjtdyVBhsNaDKpzJgspP05n4ZQ8JHU0PD9qC8uhCqRKEMvhyMzDubwZ0Y/GMvnvMHnlzxsF3gMXAGpzX51rsf8OI0uOMH3n7zDb7w/Z/Rpu2d7Wrj5dOXvHx+xcVhVXbtjUjN1lgieHl9xd+/fs4b9x/y9DOXfOGf+9/x+ukZ7/9/f4Grr7zLl/7Z/y2vf/EzPP+V32QsF3z5//h/YPxn/y+u/ou/xod//j/l+d27vJrG07c/QV9gVKeUz4xjbHoeVU4P2p6Jt6XhrdG3Lt5JdSdsTXX/BSPSdyNbjCbcVBzooyYj+9gD2ZFgY7DYgUbjmqj2W2dLUynOzuW5PjsZ8txuOlu6l+JkiDGpMiRV0905UQ1aM/ro4nQUIXAHHnzmjzXIz2YHS2O2S2ZsbD7J3sXtITXNGa/stNReM6sl3DAPcVfqdy3WiKbM+dDaHuy3gv9bZOl5NKxEEUWC1POx5phpGJwG66FyWejGWjnKkMi/suhIlRKK1zPijNjMUkvYLA/UiShVVz1vhYieWWKGy67cKrKs0JG0hFZdZpUl+9J2fgWo7r9UFjs5J+oAa+wt26MzvIIvp4jAM+CqrhRX2SsjWdrKFp3FKjuNQvnKCeGGx1JcguJ3mO3iI06Spgm7SyYj5C4wE3F9zJKJnk9koYQp/DbrKVY8opljTToguFWnlBdKo8BkOkbNvknCgqV4SJ4K0ufQRm/lbIKC/CUsSSuC9TZnzshRie9yojW17fYinUf6GT0tj7y4yh0znhLCp98rkntnn/VlhbalMWKSozU0dBrvKKc653jNzuRRXZ2ZXfYNYyUqYJMfwBrhQjGkCF3DMTNUynKju9A47/rNW2UVGqJR11/7eJ5JUMeRFepj2QqVpQQ0qxRkQkRjlsyogBavkrIS3MYMdoKskSdmBptQyzFR+EqkJQxYCCHGhS0lEqh5XZTvnJw0JRmxt7CDmgxIiS5O4cteCtSTZE5qbtLBxBlLl+30smeQtFm/+y7rYx+0BBIjkwE1Nmrw2WyBZrbCaiNLWK7q/eiBTuXGSn0k/1/wtLtLRClCqqOzXSyGMlOqC6lqvEzthCJReRm6iCixMtsjdMNmiLzDp1mGAaiDWLyd3SwZrSl/9lxZcvCF7Sl/9MOXfC5dHB5WRnfe+fBD3nv2EjPn4b1Lfs8Xv59Lh/HyxItnL3n69DkffPiE66Px+iv3eXBn5XS65snTF9zzA88ZvDhe8XQb/LUXL/Hjxi/8Xzv/5D/3s/yeP/nP8ubTJ7w8bPzGn//PufzFr9CXBd57yjf+yt/i6vkTXv3Kr3K8uuIrl/dYPvGH2S6yNrruZJ8SbMaxDECbWic+u7uQM+IGnE/u2YgIuop4vIIIlYMmimOstH1Ue4sAFtKcU6irQq3mCSxsO4FyPu8q97mRlJoycOkSvhvrdAj762EKdbVC/SJkABnapz1LSwPJ0k+VyWEwSXdR0H9klqpoVsdIdV7pyqq9tBxB7V+orC0VMMgHVnmpzsXMEM3bnoWS4kUNZFB1XpxcjKjafPOF1otjYvNzFYzsHXxtolxV70dZ9dgxzCRdqr7l63BblJGZ0KdlWc7Z2XzvyyJD3lwdDPXD4nqUcJqru8ubSZ48xBfyRajcvHbp7kgRe0RNuw2NyhAHbiI5RViu8ljWz1oRLQdCc7ec81V0vVPFGoylqaOGdi6zhTveQwT0pdF7YWw59sB3dmV5iE8HmoOjIHfsPE0FpXmWEzDK+UzuVoEsWaXtVt1SdrZHc7rwWqRkc9iaHPCcAN7N2HLsgURGcbuiSqloY1qdVQvYojNcWb53dRNuc79WkC90QxHGLOF+B9oDEMW9aJpntqs3z5A0J3G+HO04BzNUwP2dIpPzeKdmiwV69hU3Rz0roGbVCeGOKu9B8Y1yBltZyIiQ9GFZAXuV9SNUzp9oDtXNiErlU89k3osXOjbBznkrSyU8mjh+bifOatzw2gNGdcW2dvaBqWAHgtZM6OgM3m12vZ15oYpZTCKOrq7HdSJPre1BqHHmcwFnRK0+dzHHxzgDmd9lfeyDlon3tahx6U0tg+l6QdJQ0YYaLsh1qQOmjg4djEqwlYGEomLVfU0dDK4AR6WF2giFtrida6CAjBb63M05ayek2ngP1cMeVcOdRmeSLk85N5Lvjl2BClibM4qMY0u+cP2CP/b4OT84TviFYengjacvXvDeh89Y2wWXrfF7f+D7uXd3ZTx/xunZkevnVzx7/pLn10eeHYPlAK88eMSL7ciTvnFx9y7er7jOwdcb/McvnvClT9zni/mC/9v/5ef5Y3/yn+HOaw/49i/+TU6//mvE+4/54MPnHH7xlxjW2L70g/ynv/Ir/NSnvo+npyMPM/YMgShkzIxsMmITVYrKiDGKTDnr4WUoyhirTCsTNMlo81llzqBDz7gNzUQOpInhGD2ETMhBm2bIeFMZD4okqeuQnk6WcxUPZ8tguMpBC8WfKsOR0wCXQ7HmgpYxCQOmfncW2kBzssupTW2b01AwtcyW2whxd8qxZyRTVC2rK2NvQS0ofmSyAV7twyobifhd/p1isohXZEvxNnJH/vby5XQSZtXoUPnxBEfszP1JKGJ7ZXGoxr47jPqaZ8HpJuplmgiVYES15LRWwxfTOHmRMouD0W3OjwVr5zZwoRJliCNqgrVSz3VxTjeQjLlPsKzrKmdTCs+zZJJYcV6qfFxBjqTkWwnyURyfSY50YSCZhE9HJ+7AknoBw0RQDD8HqvOh7qWV4h00d0zDmXbbMcsPM6iK2n+pmoo+qdBZ7aNyLOVEpzDkloNoKjGu1vY2fq+S6LCo0keVqQp13AcmQgV+CqQ9pjZVtV4XUjKMfajmGNWxFLM8XImf3XCAU6DNpxRA3MjudyusYMk5dw9W0hlWwTWVGAyhSkWD00T6rBbsCNmj+cVKXMbkcJlXKXompA7VnGEVsM1ytbmu+YS0TgyIocTMLKujTihaw0tXRmdimDGKCxAjxAMkibQq09S7vdGNEzq2tNBeEEozUfrz7UT2fT/n3PrVaTQpFrNMnhm7ovE82b06n6aPnJykrLMvvplXWdc4We6I1iz1f7f18Q9aUHdGqwiwIVLXVnKTziI1SCsomglHVqae7AJSNlIHVx/LzFF6Raw9bhCWzNjcqgNp0qHKKWQy1XI7yRLz90uZUUZF0H9Q4jw7BdTpodKUDQ0E9FYdGEuVr1KdSHc58uMvX/Aj14PLwwXWwDM4Xl3x7XfeYXNjXRY++4XP8fpnP0m+fMbpxYkXL57z4nikj851dq6i8/yF8fTePZ683DiSfPjsMU+yczjc5+89e8qvRvDrX/s6v3h95PP3X+H/8x//efqTx3zu0SPefPU+/tojLq86X3n2mOWNt/g//5k/zV/4f/wHnN57ype+9Ht49+KSVgPF5owfcgZ+qotqSK8IibNGNo3u1GqQgmqlHyk2f9tJlcYIK7XSkg0PY+DSvZgZAcZZh6PImyV+p5ZVyriqTKA2dSFEo4KqZoKMB4Kce4KHdHCGJZkafrfU4L2k1DBjI7MrQJ213phooBx7JxhVO1e8Me+xEJSAVLuLPmdTx0IWD0Ndbk7QOBEcmKhRBxYWX6tbaWBrtSQXEiIF34rcimhXQFYhCBKkEt8lz6UqFx1YHXUNt4XMECphhofQyn2itiGuR1bGygxMxRdRy+Vg0KVAagtSlpYiaTcq4KmSod3MUG0m0axFrhby5jtpmUVib8YiufrsWPFlPFcIWBehRCdzRvPS1zm3LjfzPUC6mFmz8kxltVRCUoZ9eonW6nlkCEEojpfaYvWuNNm5YxV8Rn2/TzQvVIrZDDaXDXOMgxVyFLE7LHPXwNMbqMvkWin2PwcGGQ3zhVFlAtD7kURDIO2kCtyqdKJH7UxFkIamZEtBWaKGwXwncu7dJVffUjOZgq5Ar1CirNlVOyF0ojKztFJ7322toabJicHVklXa3kHH+TRFSLVJIZhDNVXqMBIW2/fQyNJvwcCLz1EBbB8Dy8ESrT650FBn/71hU3sHkc2jinmmwMOjnkWRhCfvbo6P6LVPV6vSJAGhnqqZUEt08cwFM5RgtZQ/C5Ouj0rIEDVbSfQEnSEqAbpJ/sWWCvKyRiPIr8heSbZBk9a1R0S+VqcUoBKnCd3WrCidzT5VAb/L+tgHLdeoffFgjbYoqm8UpGpT8a8Qi9pUw+CUXWWgtmgT1J4McpfX1iEqiL7HuQREZY6hSRZXld1PqfAG+/wIaSkUSdChh4IjKguVVSsWfGWjktYuBCBhDV3TcBECLWHN5MeunvPjj1/wmq3VZjiISN55/yOOYfDKfd789Kf45Oc+hdlgu7rmgw+f8PTFC/oYjJ5q18xBz+CbHz3mw+2aZ7nphhbnrz95zN/ejpzMyAG//O33+OjRxg9/+pM8/vAjxvNr7m2v8YNvPOLOo/v8xgcf0K5f8ot/4T/jn/lT/xz/1X/4n3C5XMpJVYYqFntt5BG7fsNENqhn3mjEVjOjymgkZ3Gr2UY5W8U9OasNh/hKI8eecWlGRxnCLAn9MT+rEBUKfjX28p9qwxN9ULdGq+BUOgVlNNxKI2XKmsMx+05oNNAmq3G5UU7LYqckslnsTnZt6pCZnKk5lDITtSyW8ZowuRxz7M93OqZZ0wcUMBTs3ayVMFRxbCYhk1alhFSbcCig8GaMPop/EsVrKezBEOkZBVSz3XOfOl2dN+eWXfFJEmkRWQVKaXnDaFk5w1CG6E2tpLCjpEqglfHOroyCXIgcHKPv0gZBFgorRGWxEh5jlnKiEgqVJ8ZQucBLBybsjAJOxx870lBcowoMelf52MtJAftn6i3FvuduPJJd60Pk5Ma2HfXaWnXAlQ3y5oxR3BsTOVh2TOTjMNReO9SKbln1PG8l+X8um++8vyyV1xkMV3A5ZilrlsuylLkrgJhijhVy7lm4GL4qOwU7HqNOtal2XYFvxAwtan+WnSDOqJB4TDoDPQaTbC+ipz5/EZyg9xnnMrJinoDac8OV3K57907SXShgplCNaaOWeneZhQ7VO57DPCf40vbkCi5q91LcorDS2zZnzYVtn6wu22MlgzGDJs+J1Wmz5XeUDIVq9ZR421L0hsnL0vgPoWbTLu57OkbZ4rIZ1dlYPf+iMbjaznFXeTCV6J1iVPnVwWZP3gxXK2GKxGy9kUCc26mn3f5u62MftKjfXqzxQBDqNtQ2K5XCInVVhNmYkJYO6YZaTldrROSulGuojsdgr9kqai7IWe0ENfir4dl2cm1mKTlEL9XLeRBaHU6vbDPKgZUBSwFx7pKZ7zHUseFzo0pvo5F88nTkR95/n9euN8YlEButGU+evuTx9cbVK/d57Quf4RNvvEprkNdXnJ6/5MPHT/no6kgyuLdcsi4r94rg9vj6mheV+bx55x7Pr5/zlTC+jrL/1Ywt4OtPnvD0eMW9vkEY977+Lj80LvkDb3+K55+44smdCy62K375P/xPePW0ka1DDDZmmjjNV8G35fSoZ7AHkVBcFjRIcVS0P0mYhQL0lKFXsJjSELBgITmaDqmNaRwD6nd0q0GIZfRk2TRXaFR3RKtMJU3Z6lYIwzGCi6XVyPmJ3FXAYUZnsNpS2cg0tq7uHyseVhQyAcyhbVZBczcNRpt6MVsMelPgZdb0u6qMaDsvgx0d8Tg7AOX/5dxQ7T8zVZqwJqTrBnSbhYCVP2cktOVMLtV1FsGuDG2PKljPssFEDtOKmCqjGzOIqWyzz2iukEisurym869SYnpg1uihEP87MvdyXKMcWRjVWiwUKyh+Rhijkr1GObV67jkdYug9ZaaM9KqipdsskbEnOFlIX8XZmJ27QmQL6kprf+0Tcc2gD6IPQfxFlKRQrkkejuizhqdsuF7RdF7iy9U9zDbVOKNfVOdVGLUfpiZU7tefVVKd7b3TsetVVpmRYDV9LYyaJCz0cm01lGGgPZClY2ewTQXfCqJmpUKjNWYwdSa95zxHpq7Jkbkrvu4Tyc32YbKKT4RmZxP5dE2bWFc9A/b35jZ5MhT5NktzT0Fb+jnJXHyp96uLnuV/n8ihTpdUiktVJnKAK1FeEDlbgz7PgRIBh9IXikJ45uBZTXoXiiGx3CrTUAndjXeSUeNjTAHtGvUsFk2Ttio9kXY+eyGdm/l8lNQpqNwqyaa1snnaJxtWZT/Al3PCWferJNvq9wRtWRg9dzuyCz7WdX8v62MftJyySjR1oEf1ge6EzMyKnnWAp9yz9nMWUVNZqgZT6R0sCT5EuMWs2pnFvMiqz+mwtT2Sn442w/f2sfTByWEZ0EZparRKIfbtbNW+Wt0rZbyVkY39e6z4GJfZ+ZFnT/i+Dz7kWSTx/CXrxUpz5/0nT3l+ecmjz32W73v0gLu9Y36AU/DydMXT7ciLMThu1/QVfFnorZFjcP/uyivtku978xEvXh75uy+u+HZcc1UZ/UQ0I+GDqyNPLblP8E4Ev/jOh/jlPZZl4cFIXj5+TFsOtMsLHsexDJWEyzQbZyIVcvYgZ591kKIyHDmzxIbG0p9Sjn62IUaWQzBl1j2L+Kcph+Q4C3XFTGoLkh/A8KV+r4aFedquSLplciwSYitnaCEzflgPhdwMlSUdIr24M46l7kPdE+ruEIw6h5bViIDYyiAZHQ0mXNP3LO1saCQohU8elpRBCcm7D1N2CMqOWmlghIMPJ1lJW9lcHQoL0H3QfZAeZDSRoKuUmm3u6fp6jsqaWpV0EMLklFbH5KKYUBhLOoGFc2iNTlYXwQz8RYCUfL/pOjDaaGd5/WZsMbNb8JpyDgveK5MtZz8NqAFZRNJg7Lo9idqqSSU6PSe0nvv+G6mzPRGrYYG1tWr4o3y5Oj5GFv3ZtAfNZqGgbFC9z6QEv0JOupk+fxQ6sWsHFXKr7phRWbmxZKvy4gyM84z8UeMrzDjVM5+DXLP5NHLkCOkambhd7uJlCSSS4VS/ocoBIybCInHLHMkW5/JBMrkcuo/KAwiTTtJEL5PZWm5y0LODs2xZZjKa+CXSF7IqzbAnoSqDCZkKl+S/7QTEG+WjoGxH0ot7M3Ba+t70IGJ7kK0zeXBjGPjCMDjGBjGJuSWj7yahykkoTz2cNIdcREifdh8lFQeUHPQsIvkMXENl/VOJ3c1AJImd3xal02JR79GRvSue0ZwqLnmOqISvtF1cc+/U7TOYQ9xHdbaFO5gENRUsVzDDnLdVIw1LvoBSj55J/7SNoNbrcGU0XuRwTV4Ezy7AwG74x5to73dZH/ugJSjp4Rk5oH775uokSWAwyhZXxFu1dctSRMw8a6tEMFybUnLrRfYyOA8Ts52BMgOkHSUwox+U+ZqjAxOpGm4q252kJp+cAdRNkGNwSGVPm4lf4zW/xgvqGy34kefX/PjVCx4lPN+S677h1zqIp6Xx6NEDPuGDO6drlvv35ZTdOW0nnl6/5HGVoo/HE75tXFjwifv3+fQbb3Dv4pJ7d1f+1uNv8f7lJcd14e7QnJT79x6wXBx4/4P3uX7+kiucb/TO6814tpzop8e88vLIV69fcLxorK8+5PThc/rDFX+URUJTLTtGlkzG1InIysiNUI+tUK88IxAKUKpTZb7/6g5p3jgVB0Dqwrk/b3W2nMsifZmESr6DSLgZJRcvwzp5SglsaOK2Nz9nP4DTiicTdDd6Qamz9RdTbdldTP82AqvgdZS118BEdZeRmtAdQyRyNw3ypMohFhIDm6WhcAUHDbgIyEKWPJ0YCpBHEcFny//McNWSrSGaZIhMbGrvn70MOkFVn0ZEPs/ic4iRK2M8YE4uxzjzlkIiVlE8C8ukLRpaeHIZ+7V0X8aeeXdwcUgmghNZ5R2FDELWrFp+K+jbsY3UZN+IrtlUxY8ST0nIhLeFHkJZJRcvBzW7jSKjOpCE7m05dghfv63g9VlGqUx879Ax7Yk9SEbOQUHEOJeS/AaHrkp5Cui72p2jkF07I2RGSbFHshWJdVgWOlh8hkq2KnQQb6KCEV8KWZyOJUqorp7TCxsMMy7SofdqLJulMAW9BuwqrXW/QaExs1yQtuuZTNsqleY69zV3rGfJChgKFqq8Nwepxnw/83mXw96FGOfbF89VKseFQEQ5+FG8DU05n/u00EQXapRoQ25JKVDX+U/byzOGyihjiEtpaSUrIMl78b2MpaQGDNtRrKw9HKkk5syvy0J/z0hyc9/3Zc/5Kivwr/c698xM/iZC2hlzKgBU6VqBzdi7U8006HGSp20TQdmL/5TNiqRcI1iQDRkxaG3REY/SOisTqq4vqvxUliNUStqsdHy+h/WxD1oUaepQzpbXZgWnxij287mefK5HimndQjLJW8bennlWVKxgpCA126PtIvSmyjczqp41wymuxT7HxjmaWqYbVQ7AJZdeGYD2YiPc2FyZlqKmDdILKl1449T58tU1P3J54OqV+2wfPOWDq+f03nlw/wGPHjzizXsX3GWjcVHZ+oab8fDhQ169c48nz55xtMGK88gv+PRrr/Hmq4945c4dloPY818fwcsf/r186jNv8wlbiBy0ixVa8Oo3v85X/+u/Tj8eeWNtfPGtt/iBT7/FW0tj++iCb3/7iuurE1frM2Ib8CDZEk6VIUKpESs12Y3ZGFUuc+HLMszT4LPr4FBIxBixO8mIvusBMGTAtspWO5UdlWM65pQJZ6/rW5WKepa2S/2bV6CjKp6mBbcmo7iuC4cG62EptUy43jqnPhh9nA1WBr1XKDPm52iooSPnnGi/rXjB6jMItx22xkT1nM9EJcjEmgxduILri3XhYEbfOj0Hp8qEBsEYncNUfu3KVLdWgZ/VnKeYBg/asiqInLCwiweU1UUw8fapkUFdl6dX54ccQhQSkESVbIIM2zuesjLBGNIY8YVyYroQwdVF1DS1nvcK/B0juzJWkTf1Z5CTmc0grYY5ngxsSEDxODaaGQca7Rw9QO0vSyNWITNGsCzVxTd073uXS03i3p1HPZckixsjGzWn88YQDytiSu8bOUYhKErFPFOJUu1/jX/QzYSZROUSZc+mIDjcNGSvHDdl7cQ8yDpbGo+gszH3uQLXU2scDbXnZ+eybNSG3vEstSyu9zy6NJDEz+oKtioYErHU92vPG/aa2YlT6GF3lQotdH1roRe9nuOYJOpy1GZz1k/Z83qubuI0jqgAN4UEYTpHZKiDr5JMOVglZVZoU5iQ+ym0aFb8sTjzb6w6flrt35PXfKxAQWo58axrm6T7nrHLNGQFe1aB4662nankI1UKHrM0SQVZzD039mdhZSsg1f0k4LOqCno/yZmPk/UsR5W0mzdGPbewLD0ySnGJfbQNTSiMp5SJ90Cy7qmPLptus5ag/RcRO9L63dbHPmihuj2ySifNZl+67UJJkyOBLXWACjYtOHsWaraEi8r2Cdvr01m1EW0JRezhVH1YE3QncUz16w7mkkPOxlaoTlZ2FXPzzxpxFnRdNf6AgrGBKn+soU6JL52O/N5tsNJoDx5x/eLEh4+fce/yDm89fMD9i4VlO9EXmboWG37q0Dv37z/g933pB3nrgw+4evGCi4sLXnv4kGVZePzsiqcvr3h0cY8PXzzn/csL3v3EJ7i+vFdlKl2XxUZ78pzP9s5PvPKI3/vZ7+ONN19nuUx+7d33eO20cT9XrnrCKVguLxiXxhYnXtjKmhoy6cNhFPXOJvytckSg5zjGqFesvpGGAkFlLnobNgwsq4g20TVldxO2TtQPOEmC6wxcs1j/lIHaIfDiReSZlN3M6NlZlpWL9cDSjLYsHJZgPVRm5AsXF43rrXN9THpPxgCLItSast1JShPSp/05Zi6eSXRIa4TDabYhGuze1/X/3JK1GdaMZV1Y28Ji4oQsy8C44LIHL7bOcSTZO5FwzGBjdiY1PA/iiEShJtGxtZFu+Oh400RvtczO0sSc71PtjNWbJ2fddhSNHJVIePG0cs8C3ThnwFVSm7wuiwrWKFiwAi/Xdikqi5yDWteFYmjmykq17WjnFm8jZmdfTm5KaeFEcLTQ+wcWX7AeKq1Z0E9HWmu4NfqQ4JkNJUM9irdyo2YvojLngDKzukRyH+jYe98z+ZHBVlpQFRpqbyd7kCGO0YJnVycHCgLH3BYuLR2GkCuVWCaqVueg/uBRJa2JCjYveTQlerN0mxZsRX7vE3fMZETxZ0ZoX1dJPjDSC5XLkpgozs+Y7iuDyHOZYAZW6uNKzMrSWCtUVSglrbHFqLlBSRsVnBToIFBBooyZTlZ5RAhDr7J9JQtTRC6zqLRWwEWhErVH2uz6Gv07AlGVaPseTFrZn54aHtJSU5ObTbtZ/sacrQLMpNeer31tQkA6xlZIYpTkxWq2o1cUkuclG0CeCbppzrajXDMh00kVCtIY6ZJ1yPNOg0KI9pdSvqr84qkVMpboB5HadyaEn5HvJY3wdq46VDIqnbEJ/Xz39bEPWqJKB6PNjGTsjgE7Q5OcE8HKWBVAbBXBzuyqJ7sqoLKuCUHKULd6mYGy8lZES5/S9PVi1P0D3RUYKSNVhin9hHM9kWLBTyh1agFM9d2ZjT7YTvyhHry9JDac9bDy8NErvPXymjv37nL3/l383oHDw/v4YSGak9vGeP6SvDrh7ty7d497rzxA29EYp42vfPubvPfRM15/5RVeWx7x/OXgndce8vhyZUSUGJoUUrerKx5/7Rv81OEe//SnPkN/dMH2xiUvHj/h+fMXbFvQl5pDMQZtCx52eGDGeznIY2c0NHyu0IilsRMauRFseEqwS1wAitAa30HsVAuwwEgNHhSRzncDVBlY6mBGZUdTPn5f9W+C6+vdz/dZ2+Nybdy7WLm4qDb1IlzPQXI+VMtd14a3C47HzvE6OZ0UxI7M4oDE7pw7ciY9htC58uizNGYm7ZZRTmHqj5irOWO9aKyLs64y1D73bxkhd+fycGCJpFuHEGQ+QsP5Guf7mBZsgWo3FhG53UCjZmYl260sb9t6ETvn/o/dyE+ebN7gLc2gp+IxnZ8R+0yVKOcdlbV6EQGbA1UuUiCqGvrIgZXapubIFN8kVSLSbBTbW0utCNEke4eQlaHFjS02TeZmihEqmGYEuTQlSj3rXJRzGmPPphk1CFORQt1kVIkuK5mqEsUNOz6dyHQCiRy/AVkzzlxHRMhrzm4RlQ5Hsov+UeNHCGqgYIWVqaB9toq3BB9Bz6xZZlldSnrmo5CiqV/kof+yAq/JvcuI4pUZ53LQLFkk2NgTAgvjlINYfOcZTc2SSkUqHBYK4Bnq8kpKI+bGY9tvM3dn6ROdNdvR8mKa6eGUGrFiQqsOveA0oRqDDKcnCozLzsyxFnsJlOrmjEmmFSI91FMtxHb0mqKt5+G+7HtT9BBdiBfiHNbUpZhCnT1tT5wnqoe1vVxam3N/D2EqYc5ZSwXi6H2M3EUifUcIs9Ql+l5mGjhHqHNTG9Gsxs8ohTUo8rFKhLNkPhN6EPI8Se6R3ysN938FQUufDo1R/ezK0LpZlVRKu2UnASkDm/VhMtU+aqrRDcviL4i7MmKWIIyL4qNEZYe7ZTFUAxyaDVI5g5DP1OjyYdBN5L5RA91IdUFMqLO5IG/NhBFhNYeCmiWCH+7X/EGvac9upA/WOytvf/p11ss7rJeXcLjAVmlk2MuN3Daunzzj+PIacA4XF1zeu8ty55IxBu++/yG/+e33ubi8y8XlBVtPfvOUfPO117iucpfAjEHGxvW3v8FrT57wh974Pto949l9Y/XgdHXkFMaLPjgukC3oL17SP3rOg3tv8tqnL/iV6+ekHciurq10Oag+qgPHKtv32enldM5CTJi6mFrM7oriJAhHVocNqikbATWxV0MWvYYiagBmNsogTlRGDmi+0KlcmibfuBycu5cXXKwLvoqM66IPVtARUuF0x9ZGW4wLNAF3604fhaZk5T6j72WVOSJiuLrLqFKEbOaovWDVvqk0aVngcKmy1GIQo9MpRc6KudSNID2KO83pdxpxSo7HIIZuTAyEk7g5uMYmZLB1IWKr2T6VVhOxBVW7lSAX0HuvtuCZTBVBsGDj5OxDe13crtqJyqf7pPaCoXPC+4FKBkDzLJ5DdTOY7yR7NgUzXohlTv5TnfUFhHSRxOg7zyUI6OW8sjgPi3GNHGUPquMHvDlbHxrtUfwQBciUYS50Dl2fAukqZ1RA0xL6KF2Mskc+cudbSTF5nodkbFu1AsueHUwCaeFNqr7JvreF2irJkJw+O09lypF6roxBkatnt2QNFYxeGbZ+3xJGH8ncjaP4ENnFAOleZSGodyKE5aRsQcrCMxAtXsiEJ9KFpIj3VPfuvpdgZif47FZj581Ul1yYSmwB2WQniEHLmveGbEWUoJ3jEpGrs9brKEWetUuGiYTLSE71exNKFVhtZ3sTR84Qs0j6iWyCBcTAJm+ufJIkCmAnBBdpeKoNB1lt0ZqxrZlmvpcYs5BDlcH0b3EDce42H5a4VNGKCzXPCYUgVeDqdW8K6BS1x54018EuVeIWsIUGC08ROWcmMdpzraKjSaBW8qKp4qN2e++3U54BJH7jZ4lzBQo69HOYnV7GrD/bzlGZA92y2g2iUBQrxyIV03p/NmE7Z8Jmyswml2Z2KUk7RA1GtrfAjdm+SqPXHCmriJTK5s/tpDOVkCrlMOO17cRPWfLGahgrdlR2v1xccHhwt9JcUyvl9cbxxUssAweOV0deXh9xb2zbRt86d4+Dl6cr3n/8EYeLCx7cvcOdw8rz45GvrCvv3b1D9NlGK4N/PF5h3/wGP333Ht/fVqwnF0foH12xPb/Gj4PLAVemMe/WB9nh5dPn6jRARtgMaE2tk675MNNplUWT0xHpZCdGWtWkp9x9khJ6KqQqJ2BWmcw0OiNj11dYgNGq9dmmIy1p+OpOaYhwG6TKQAfj8s7CcnCySIplvnBU8hA8n2RsUjutIKOt0E7BVgq3I8fe5mkGc4gikdUCf0YEtc/0e8xSGefqrM1YD8Zy0H7ZKtObQydH5p5dZcJSGTTWWJdg24Lhk/VRkuClU6LOA6GBOQRzWw2TlAGNylCn+FYJ0mUQPUq2vIy5qy1SxHd1EYhoahC5l0xpClA8E9u4YewrwzWJm6mrJqhu2eICiDOkbNXwUaMzCn3IQjkzkhH9nO01MV8YKk1F9eRO4z7qeeW8LjMyJkFYKqoCUYx0IWXyh8pUZ0dFzJIZNZ4B3U9P8brG1pXNz/1ovpPP59DJ8nYqj3BOaKI6QVohPtIfKseVuSMNbiZHaga5ydZNO5bB0nL/eoQsnqUC5cm7GFUC6xESP6zzzLRXN/LoKSuQkSUjr7hkZvm0KsMOdu0bgQ65B8RwDuRkBnqV+I2MmUzqizOpHMWVGnSV9DGVL+h6pgHpS6EUhRrYGaHLkUV4prrqtOd9H+I4dW/qumo8AeXMo4KLLNpAs+ngE58aRjaF3kRIjxk8pJolJrK/pWYJuVWSVRYhnfJZKJtittnvBoUpyT8KNV6yZgZ5VQuwmjlUCuIxdM3lK63a8jPU/UiWqCmTszV/P/Vc9bWJ7oQp6RdiWPusWXW0fff1sQ9arGSzR4knuTt9GywuzRZBVqPqu+yzOfYyBCLLghXJy3f41t1LF6OMrckQ4K2ISLbXYLOiaDMvolVFxRVLtKWVfDX1dcoJVy1x/x2zDXNmrcoUfyA7P74uHCwJW2irYBxbFsmU9yjNieB0PHF88bIkuBG0bMrGXvaNqzHYRhCx8eDBPQ6nzp114cKdr794wW8+useH7bCr0IqLsNEeP+YTHz3n0+sdTi+ueMtX7vUj79lzXru65mG7w8mueZzXPNicq0iej+DF8Zo4DTzUmokVGbM8U1AQdk5TKiOXfp6vIT5N0BahP1BBYszon52kNksT03i6t8r2RFKrZAtyDhcEUmS0JNlQbb85+LpwuGi0VR0dDlAD2yZZLsvqWmH3c4S8mdMWo60Gm4yamQnxmWWSci67lDYVAA1V2ylDgRWRdRkcDivrKp5OprQUHPDKGjFTO7Iid06TQFkZ37IGp+hEWGl2OKfQfKSYGhhRA/sAGzBVU9s8cyF4W4ZaHRSOJp/j1e0VSaSofGMIUWEMBRqIMOuruAqJ4GgKGdtFHOtVVdK5lwAEhU8rkHtGuLaF3s9GGGoO1Yj6+TqbfZRlqJc/qOGrckziNXWanfU6snQ1JBBntbeKCGwwQvOA3Bot21kLJcUVmo4fM4YZUUjICAV2upI4Z9+TG5JRAVCWlH2hEdUZV5xglNuW7WLHu1RqycnNrA6PiHp++R3PZqSQheawVZea7NG5O2ow+UzsMu8KtvV9kxTLLM9U8JxW89zqutTROc97sOwaTLMMIZs6bpC8rTL6Sm+q8638dQWZ+p1NpfsbHDdM3z+C/V6WyhkxduHJKU4a9dCEImindJvoYZYPmGXcKppU5pT1nt3E8xkj8VaYihX/iEKRAWh7EiG/VjamCmWK16y6qbLe9Xyu9Z++Sz4rNQKk72RtK8Vj7ZMtooYeyk54Focqk+7lz+qZDSspEGY6omDwOnp9TzmrXSCvOC+Fqs2ZY2223n2X9bEPWmaJZ5ZG4Qxb6YDFmXG9e/FUZltlFp9kt/oAZTNCbGjspYPZuqZ3oZd1rq9OcmXN00BTjK0OnJxcZVKzJli/bwZRWQa1j0IjTBnb62Pwhz35vlYttuZEU8bO1omuevvo1RFxPO5t3X0M1aR7qLNldBZgWZxH9+9xd4XT1TVLO7C2hW+k8esPH/DSgNywXOVIxsblN77JD1mjH694d+ksL+DBdsEba+NOGI8uL3iyDD7nzkj46oAnF4P3tpdsp2tyWTiOjcjB6gANj6H6bpWiFs7PORgKHpoG5ZnDFqcibJYRLmVQidKNQk/OsLU6FDpm7QaXqIzOFGVL1c2NefiFLLXmtAvncFg0iwjNL2557hAxX3DUBj1sBiMKhKtiIhVTV6eFjjw3fn5OSxYkbj7VZOUApoOGoDVYqvTkPo3znHhbHTw5K8tW6F9pUVRJxqEGMBZ8XgZOgmohdWF3Wlt17RHVt0FpaKijYYqxxXxes/U2hwx0lS6oenYkzAnc4p0E5ivHTZ01zf3Gcxh7hi9I0thGKcyWAZytwjdVNkckczwEacxQaGr65KjMP6oF2yZBNM/aM6PXMMs540ZkU8zYbBBj29WWzcRnyZO+HtWqKw2W7Tu1WNAvmO++h7g4+7UWFySj7z+j/Rs11FUOvgpHePieWEWK3KtARfe1WXWEjAogqly1l04nMlOfShT3wBLvCRZsdQ7XRS2uWY57zGYByo6WJ5zt2LPkMO+VnHIGNzqIav9PETerIHZ+B6SENWOGrdWNlsjGVpIY3vaSiWbtaO8HyaFqTJPevEws12cZ0aXIPZPbWZOyeWgRoqVfVppJCkaioD7pmxSyVPdlNROL1F7YKiGyiJJCgO6p1mPOk7jdZ1t5BWHlY3L3IeV3Kvi4ycWcfi+Kf7T4QvZRKr1exGKECuaoexUdwZqxhKsDcu9Lrq7O0oBRQTz39xy1n70qCDkbUQKykroRUSVC+c/T9xazfPyDFqjosRzEXl8HZgg+yy5SVhwqG03IUxbw3CqHDtWsuE8oca97pjRgmp0P2d5yZueaoLcyCjY/SxAZOaH4aTBy3oagtBIyEvIuJOeLsfHjq7NUXdT7CUaSfVR5Qdlfhgz3djxVq9+5Pj1S2fWWQ7MpHFilc9FH5979B1xl8qvLgQ8uLonsDDrLSc/j8sUVn3r2kretkYzS2TCeH5yPbPB+XHO5nfjUsvL59Q7f3o5sq8OdlZe+8IRBHA70o4IEijRr7A0S9X4M99KxSPF5Ymw6qF1oVyt+gA672Op9aNaJcR7ONwlhk4RpIW2P2Qkl/Z6acgtMpV1H82GW1fHFsFYBrZ+5Ccysx7IQGHE+xg14FWPvZhpRehdjZoa2783JbzCl1Tu/Yk8BMSK1b72y0T382ctgpcZb1+blQDMkbT4diyS+XbD5JlG4c32efT/G6Ao8ipMSOevViY3cP5+EzUKxRfSdezDh4unFjFJInRo4FizypESb2VkhJtMBWnEbSu3VPSGGymB5rueXl8FIKegWXD6o4W5jyPhjnCKETJqVCN/klFX/RBZisjhLuIZZolLHVqmmp5KBZGao1cJaRzlGFyE2FAxOazR6sivcZp39ROJxFUSCzvB0zt2idHisOj5y11uZZM4KzVROopRpm7GNUEtuIhgwa4/tRFUhy0sKgR6VbScqT0QhF8d+EpclZonoPGcGh5xCIkYFahV0lN20ibhMB2uIp3RD/2TKVlDXROTeWmwAQ1IS1tpexme2h9dWPFN59Zx6RgVjglOmXhF2Q+/EEYJeAfsyhfeYKCK7T6BZcawELgTSZrIKMluTmMXU3kpAujmV0NbdaH/V8MOUrcmZypbN0l7Ss8omoUqVsCsgNKosPFHLunNXUlxiSjpfrvcyg+eB9qGViHWmRmkcIxSIVMIzfWhUUr2X7wolSmZnmtDi6zzTKabtikKw9D5uy0OAkAuanw12kVnVhJFnvkk5gjOMpiBFp1d1OMuGNak4JnD0OUPGCv1yvXKLvUTgvlaEPar0JO0Dr1ZHz2QFQWeqUUyWgl4684hrWW2Oykt5ZQR/mMZbttAGZB+MU4cxqkWyDP6QUbw+HunbRqvsaBvBsW+Yw2Ft0IPFZJQev7zCDJa2cFhWvnF9xa/dOfC4DTLk6EYkg84bH37E72vJgw6ZK3cPK9v9A++0I8+3jZXgUxcPOGyDdVk4nk48JUhbaHfvE21hBSw7lr5PUhWCIsuwzKwpc6/betXzbyDERMGSc6jezGL1PGTQegTR1HYu3oKCkr4Hi3yHk5/EbA1llHH0pXGxOs0SL0E0tZ5WvliloTDBxks0EQ4LdoaoLCnVcjEqAOYcBOeeXaVIgTkzqDkfhnoeTvNFz6iCWkH9kzuRO0F8ypI3u5GpycoTFUxElTUNiKwsuKbxxUjMeqnb2g00URfvKaXbrPcyJw7LFjqWmhUkWFnOdqmSFbnqd6UBKr9EWqnqlpNTllEdB0mmWtDX1D1v1SFoMUtnrmvP+vf0CgYNEEF62KBDtczCMhJcLaJUt1mfiAHQR1TpJUlXB1eEnmk1UJAGpz7A5azmHk3EYTJzGJ21SJyBMUZiizP62JEJtXcX0pG2jxjQNSFbUDD7DHaNSVrWWaW1XfZ+YAokWmW+5XzPtqUCpaZkTchRie9Z6SNZzbKvTrfN1Cm5lEPdO5xsnqNzx9h0cFHvPYrMPzf/SHFxHLXfUkFhttqRKeKsFco4y07zvifhOTLU4l8CdFMdW08s9zJwbX2N4SDOCHcI6RkTJbGoobiG2Szr1ZngzCGigjz2ryvhFJGscB2fIwzY9xTTzrswsTm2Yv93Y+d7TeLvtAFRbexmE1UzqMRYE8LVwaNn0c/oVmvipZjU4+uQVSA1ESutYUVlmPulfr8efwXS5I5cjuradBPSPOcuMQnN9VxPlNr42Yr8lutjH7T0qvd6Zb5J7jXP7molm0jHHuUzg5gKbOZnaQiMDhYiD47RSwhN0bkIo1aoycx4sgiI7BkMM3ttN2a2cG6ZVknIq+Y6M3KwEvgioEXn9/cTP9UWqZ32wXZ1xXZ9wrztHRsjB70PTqfBNvruVPvY6GPso+Qv28LizsmSl8cjy3Hj3uHAK6++Qnrj13F+5e5BxtoHS8IxBm8fX/DHe+fHWuN4aPQYPLx/l08+ep3DnYO0MUbnYMZfe/dbXIXz2AenViTNB5fYYVFQMc4lu1kemfyTc6fPfECTVyQOxczuG+yZXhYMaWX8VHtvE19lm/Lupnp9WAlvpWBuMwWsEvqqj6jgd5Ly5I+HfFNlEHvLdeigjirFuGl/GCK4ms0hitqrgWDYrRRL92m2Y8gIV+Ar0GWyMqyyKG500JZyqt2Y68OEbUsKPpVwqcpZqEJDDqA4/eJv6HlboTt2k1NSJD1xrWzvRokYVZ8TkT3DS9n3XDLap6pHYVuujrmsoGSQnLJrMCY3SmvTjGbpgxT3I8uhnpDzWFKJQGSU0FpncY1JGBGMGkHQIokm7Zg5IgIgSy5fE+KTXITA2lDXUpiEFr0Hp0yW4h3oHFOkbZWucu7HWfIBSGk4jZxlmeKDqM/9BpCmknKLhg9RSWP+TJZmiqs9exKmRbhsxD7tG6aHzqpDZR8cnV05Ngohmd8bQ4HeoTLr3jQH3BAZPcbO+MFNWi5Tm2eOSbHI4mhpL0yejFUwPc/FrDpMRWxLFRxG6Nm3nGV4Obs52ZpKFg2XqvSNFE/oUA2kLTL6lEBYyq5klfalCTR2XtFE8rZqtvAmYcOJRsyBhntQ0mqMR+3LLB5L5uSFFIexkpTZUiwb13aEYkQhuVmBjjvbtDd11vX6CnEtzhmTD5Ln8z9b1PUkK6AxI73kOGbiM5Fp8pwoV3CZpNqVK6FTkvSd1Oqb8gX7nDMoH1gij1RulkoMNA+u0CWXyekT2vku62MftJz5IBUVFtzfM0TgwvYuHcGbNY/IVFdMkxrkWp9lhnREaKx4ZR2U4FLs6MzGJN8WblJkT+GUlUG565D77DgSjDbh/3m95Lm3PZisbufVEfzUuvL2RbVQXm88ffGc2DoXy2VJwydbbmyjs/UQL6S4O2nG8bjRI1gvDpoh4o2XHhyvj1xY4z6XLN64is7fc3j/4lAD++TEFzp/iOBPvf0Wrz16yMsNrq9e8sHVMx4dVu7ff4XrsXHfndPL53SHU8D9dsFFDDZ3ru9f8DwlcHa0QeYZ/WLCyTdg5FljJoV0jRxCrrDdoJWXLkfDHggaZ8c3al5ML+IziUYqzMMrRmK1Hkq8bqT2iHVoBxek3KqLa0wxstyNnrLg4gikhLCsGPd7rbwCXjnxUGbMxNqqVo7QnQQ5wXo+zllzZaRktJcmkmxPOOt9TLRDXUS7DHk9qnRjc3GuMmHr6gzoqWzTYS/PkGMi5+cyFjMlO2eXUQafeu4jJLx2QlC29znnyyprHgxqgnjOEp1DEVGtMk2JNta71PAT1kyOyR40GC40bZaRxFBlsCFlTtXtM/pe4s0sRLYMqKHs1IY6mrZQZ9oBzR7rJDlsH7p4bOIzLZWsUEFEICVQa44tQloigoUmqfSG5lmVcwLT55qcQ/ch9CCkBhypNt0Mdgn1nNovpa6bJDEm/2tjIozBspfVNAJCTkkSCROtUWIwu5Q2M5WbzUo1VrZ1zKgqgnVoD50sqsJlhQLEztWZ90P9uRevbhKVzaiEKMspqyNOLcuzXHaj/LqIf7TFkPBaBdiSM5j23yrxEJNlBi59opdU+ZmyG+XIqbLKtOsxhIwEyl7CqIB+Sg2UZow10mBpM1lQUDqrpXNNArKceZVlqkNrsXq5eJX6zj9cOn00u5G05D6oRu/VRak+mdBAovhLMTiNsY8HGGQFK9oLzPvIOlumPWnll+aE8rhZwmbP/3YeVNTnzuTNS4xz3muvYD1iUiFkw/p3CGP9w9fHPmgR5elMjKIge0vT2HGlCeeDALtmi1MiTQV52sweJjztCa3t0bvj54hY/qGCJMcmnJc5y8dVPjoT5SREdebDjILiZgfLbCtLSy7S+KEY/PjlJQ3I05EXT55w9eIFrTVaCw1eG0P153KMkcGBxsGd56drtuiMkawSZOD9OyvRkjvZsZAEvbfGO8DfX5zj0ti8gS2sGfye0zV/7Cp5tCbr4T6PHqxkPOR+f5079+/x9OVL/vu///f5wc9/jjcfvc6d977NCePzdx/wzuMj33jtPheffMhhXYhnLzllB18lmpTJ0pQZz0CjW2WxbjWsK2pwnlCI5kYfgiWXVsqclQXM1unFxLCfAzMzc1e+pdk+pI+RrGmcUN16SUqu2sj04gvIAISVxHfWcLfW6uBOtm3tmYLVBIIlp9G5Pm2ceieK+zBN+9yzPVOBbXVO2IRpK9NKk2JyT4nRraZqk81ILKv+n+pY0uUUd2hyD3Kq0hrbSHoucq5eAZOfkai0waJdJwGzqCzNC3lhzv3RffhIvOWOnjXdnBCXIm96cw12xGoydiE3VQKyVlNyGdI2QZPT1QW10LOSkghGIU5T0p6ctXVwH9QgZ3UNtZoQnJ1e1yxYfBQCofKhM2MpaXtsBjGWEvrS+fGCw7dCl3YnLb8hY94HbbbNoq4pSawLjXIXRLOTPgthgGDL5JDnbrnMwVgWqHEHM4iwlM2Jeq+U41WnTS/jA7hapJdo6gBrWQJ3xgosJnmG4U5Y4FGdVkB64lYjC1pjK3vYQ2dscjjqBBQPYuz8P3leZxvnQZGKbmO3xZGm+UButJ5ElQGj0ItJmHY7l5PF68gd0cx6flYvQjOuDLNCxRpEhUSTDByVkEGyNKGNrVS3uyWtkIs0IXmdsRPLR5GBo8p7Gp4tLuJS9t+LN4cl65jVmKm8xFnQtHRuDBGrZ14wn19WEmdNvmkpQu0Ws/GAHQVVh+woTkqNSGAyGrXn03S+PGewVF8vYvVEZvtuzuZInFmamzaLiaFUGU333U0jU2Yi48VFi7If/bZ7SMvzPCuoglsFC5W5Zx0CmDDpDNGTJV0Tno0z/KaPkD3JeqnlvCbXZc+AU6Unr5rqjEybNSaR1G6ISynrrDjKS7UhrXgvjkZaadO8ejryR3A+awvENaenL3jy7MVeNhgcd1RhpEoFasWMEmcTIW+fqorx+OKCv3dh/KB37mzOYW08uDhwYOGbEXz9sNJN7Xhrh7e3wT/10TNef/KMxxf3uHNxwYc5+Cg3fuQP/QT9cuXe177OP/7DPyTDf3nJ64eVO+td3rSFH7x/wdMvvcaTH7jg/tPg3WeBmWbZRLWnZ7LXzee7mfQ7+WRlhrt42eQnGcroq0vErSYGK2Y4o2xVPpoKqHsb+74fRFQdmXSvJ+XG5ppdJAOqspo3icXN+R2A6txVhpxVAXchNGHJkSFUDs5cplmPDCF+bdVemlyGm4H1qHEMlZ8Xm7/KPBHMGda+TN2Uub2VVc4AqbUFrEoyMXYkctb9yZpi3Ipw6TfJeArSIku3Z+/CqJJSoUneShAxa6PrYZCFMmEqUc1uiLASd090jxXwT+VjMFouxJiaE5IysAhsySJIV81fB5+p4KrMUrLp7k1KrsznXE5BYuuMOi/qJJPwGJWFMjbdg1OCchON8MqeO+arYPycfKpJxgabehhlJ4ASUGQvwU2FZ9I0L6sVyX+W1cxpkSJsVpmhl82L1HugT4VclV8VCMPs/VrLDmqUSHF3wpRshZ55uGkqssEYSbdN52NZhHhNYxjsZyDLuWq7SSsra59P3hkz+J7Ih88So1CoKPJ7Mkn0heZVWTsKCc2cpagKzmv22Cz3qN1aAe8+Vyetnovy/WFC09LFqckaWzBn7ajRTk7+PM5glr2KeF1ZqZCtes4jSzJAiApeLcvV5TZJ/5OfJr6j7UmVbAjnMpMvhUSeS9TbTmyv1nxLGApmwEjzElu1fVSG5uAVh6nOvyONGMbYy8lUMjaJx1OSgUpo5vva7UERpHvZDwU76q68rL2hVvUZ2Isz9L2sj33QMtT2Q8tiNO9WUOG0t1lrrndTWFflPqzmGjQX06jUkbOqpVYGTUGMEz3JMn5eH96W5TwrJ6M0P2r+UR0SHWyruS/FD4iA5lXKELpwSOMH0vhDlxccLODFxkePn3Eac67EKELcmXRp9WeNn6+mV3eW1ugBVzb4pUvjN+4s/GgY99bBvYsL7t29ZDPjN8P44PKCaCvOxltx4o88ecbvffwSp3EdG6ct+OjYWT//FlevXDB+35d43q/49AdXLFcv6acrPvvqazy4+5CXH72HP1p49rmV8fDI5VhFmg2hDb6fqnrWpcdywNWdgu16CDtaUpDlUp0HMdPjyvAX2LtxmM8biavZyF21cxSSMwmWS6BuC6KCWGVQpxyCNENGRbo8vgfBmDLSWcsVsVFImjdxHfrVxrYVr4YKoLyCMJ+U4CpxKL1mqr4OK0QBl4gi6q4aCc1L3l4tbOylRqazq7bjGwG1NSNHZ+sbkdUxNbuDmOWsyvTKoYqnI6PdmoaqUUH8nIJsy40OiUkktHJ+qUBL5wIZ6iqlTXhDwf8lMPZzYN4Y3WrMfXVGmbgRnpAdoO2clkEIVMosrk9lvcOkvzHfE7MM4Ug8rkq41CC7nF0fSigaMFy6FpKc19ybbiUUWOR8r2emcLvVfc9p34KBZvfNrvtSe+IETH2n6mUtUq0CSGrfn0ZnDmXNIjoaYNHoiJPnITXcJaVmq4C0JjEvhQjVTKEexdlxQVdL7cYIBc1ZM8FGwYvW1Y00h8TmDbs4987s1FGSUCWNCgZmpm5lo821f9I0D4tCCKzssMWUD5Bar7gdOnjbGCqdFWGW2ZqsmSBYxI5ebvrNaCac9q6udaJdFaC40fNcmtU9pM44kCl9HYFlKjNHJhdDQxj7mF1VRuZCdMlqjNwU6HqhNcieTDKzm4nv4fPsCeXIsmNRdGTLohGkykc91TadI7Ah8nBrBqPm4dlUMq4ydNZQSpTEZRZ6WrSHBa+uKq9S2ux6mhya6UvPz3zyZ6zey2qaTh1WY1NSHXyeIvB/L+tjH7QsZex3BOVGpKwI8IyAuFUNu7LTfcR5BElNHUYvn8lfmS/SXQdizHID6grKalUbY4c2FYlrAvQoIyl0VC+toQ1PZTVbRbAeyrYvI/kn3Xn7wuA0ePrsJU9evEQ10CK59frkanmeyBCZxKI6c0u1bXaDJ63xVy8PrItx5xTcO9zj0YP7mMOLMfj1DJ43w6Pzah/81NNn/PiTpzxsFywmg3DZnM9+4bM8+ukv8/Jb3+Tdxy+5/Ol/gnd/5ZcZf/dX2L75mC98+tNk37i6ct779MKThyfuEFy1KKh/VPYvhrsGW0psLlsjqL+jTopTSy5TkLaIFiWnnfNlB63GL4x6b4JZba/RzwAzZyBU8VL1gu1E20PBmc2MixRp78Vw1j5oBw2sNDcsjK1vClB2QMHgkCwu9cstkqurjeNL8FiYs46yyUGNSp9MEVfpQVh1TYhvNcseEltTdnfqg7U5l03iZWpJbjVXp59RPbtQrT6T1YWy9LFxuj6SAyxF7rMIlnWpgFBDz2zeD+eOghnHuDcZ+WQ2RKnsiYTpvAI78pxATLn/0+wACZV1e00wdks6XZW2VEfMsiOgVq3JELRCCqbbUcv27CDS7z9neMo+J2GyOsOsBOGGValHc4qWaR8qSMw0WISYZSIE6ob9WANUOOi1LaX5obCgymehoX1efKI5nM9g75pR0FXEzArMPZ3VTJ12iCOQroGNQrXqgRailLBn05acS9gVF5JBd7Xle2j4RLoxyol6JsMGoxVPBpVSpv0jnR4nVheaObuM1KfEHsjvgmqhjp6eSTTbnVamyjb4xuQV7uhbkwLvWmXYnoHlWQXbXaUIPXWd9QNovpoZrQcxO6ior1Hk9MoN8UYjxfcyBQY1b1Wlv5r1MwM7N71HaojroGZ/WN64Z4pAX8hTOXuvAGlY2b2CMCb5X3ytSsJMaFjGHNJY0+YLmZmlWa+uO8PUtt9qPhIm3lTtobRg1Gf2KkEsYdgwGssejPQKJNcaVHplRUrOmcjUsMM6Sz2F1sykwDLJEVw0IcSjRo4oiZ4K5DKQ++Dh78Wnf0/f9bt4ZSTezhtmak7sLc76wv61mx0rMznddSrsTCzSUDUDUqqPfn7gUegI9Rnnd5E7fEepVeYiKW4bWS19+j0LPn+8kAJ9wiD5gS35qYtLLqNzfXXNN99/j6vtxOorAEuNSjc7IwtRdUdqw59KF6Q7bKz8d3fv83fv3OGnY+OuDe7fv8u6XkAMPogTX1mUaTzoGz/1/Jp/6sNrrsfGr0Xn7Ys7fMpXlnbB1efeZn3lFd77G3+dX/7aV/n8z/zTvP5DX+Lb3/oG7QPVxuPlFe88CH79zQPHtjBenCAP4tekKGJe8KmVA/FUyWjUM+w5wERqHbDDw7McMPntM4PTmgz/s5fVTJbK3vwsqOVQDqUxdZPDxXe5KDXY7Dqkxxwsq3P/csU9abnQ2qrAdgJx9dmtOdt24vlV5+VVL0Jg3audOwIWrHgY81loH84gIU2ogL6/kKEMRk9ONrhyuHuhYERdTkbLybNREOYu5+HWOI2N5y9PHE8hV+PqcHAgx7Y7v06W7P8NGH+Ww0wBWStkT2WpZVdsba3tpOK0Qo8otGB2mhg6r9VCSZUW2jyvKVLhbPmdyM9+rquzwgqmnwJYVDClQEyEaCGPdj6X9a4CqKYVOTyzs1Q/E13SrljbLFGAsZZOR5Auoq2HMuExejnhajGtAC08cYowXL22k8Q4/1uVcexoUiBUpnmT2F9b1YVT97srBrsC8xhnYuq0T5NDYYVODFMoogGseQ6WzfZp0DEG+MJhBjY29s9dbHaG6WwlceM+Jim9Ovlaq24ho7k4UWFJM83qkj6JRAhnj4kgV5VktyjFlTpcO7qN9sxUX17RzKFOdbgVT2Wk5uRIm0dEblUk1cF4U0QuSltEpZWpMVQaLyZumuwTuEW9g8QsdsX1tKGyYfUJK5gpDSmkD4MpKF6rjCi/IvRl6kpZlcClJyWEcEPX2xJsUcg7J1RT1aJhKhFG+cO9I7Peh1PBUpsMdyFYs8Q0QGhtIYnSMYLZXKBRG/oeq7M6yva2tbTDzFj9XI6ePdNZGU/koNusi//W62MftMw1HZp7kaCSvYwD7LVR7dDYyxMqr5w/ZzdQ9SLC2YWcBBff4EnMjL5a9RL2/v0ZRJiSQck/1+9yVJcn2Gulk/F/r3d+EvjMCuMqeO/d93h89YJGw3IOz4tqhzyXTwK1bmYm26jGxUhOFjy7WPkb91eeH+DhRy+4WC+5uFwLp1j4Rjvy1YuViwFffnHin3z2nHu5wXLJr8dLPsznvHLnTe4f7vL00UP++i//Mr/3j/4hvnznIdd/9+/w1htvcne5hH/iR7n6pV8nrp/zG19wvno3eP7kmnt54OoUbH1C8hV5Ixg8SlNk40YnTDs7M3P27B3YI/9JsDU7d1lEvZ/dT3kB9iHjvprR6ueiJnMr8FVp56ICv3DjYOoBvR5BciJGcOdy4c7FQTAoRstBq06CYw+ePr/m+cvBy+tZPfZCLgqJTnFoWiEaG2d+1Kydjz0SPncpzX1laWw9yE1Qx511YSk+y5wbk8T+zGIkx+3I85dHrje1XEs0S8bMqqSylOBGzHJQZpFdZUSKwi5kwYWWrBV4C6Zn5+FYteNOA3qaM09MuihZmfrc963OnAL44oKhuvnkJqnMVeqoVRJQG2wZ+oEIqlmIWwwkRFdXP1GSVNCoVmdjpZCFJud+ODR8hWVpLK3RPOlbJyLZxmBsgTeRpy2MFkv5v9hLDa3+LPxWrdnNipdU7aKDVkY9S4uoOjPs/M6jAjOieC+cS6sZCrLlrL8zy59xmoTxAIzVFkghLWaxowRzTtrqNVWtbEpUm/DU8tFZqhZzCsGx81nLVKl9TZeIXqvOpSxUtIysWvthb8uuicUASw19XN0nKK2gw+bsI/GjJp8mYsDkxTisY9kdeC91agnyTUFLwBcRYCePztTNMwOGGfutUcNxsSpvTjXbKL5S0REiYJmdOkUvL26P8lcFa15k6eH1XKzOTBaJ3ko3DKA6JVsF/QEsFVQkMMc0LJy1nvYzMysPe7CpfbTV1+fwWWuus2YSh2wVpJg1hg8sknUmQIVeK3HU71iK4zY7LlmMJRteHYleiUt4Kz6NM/w2aNnXhLLU5SMQtvmNttodTbF9V6rkM0lG4pKoxifjllly1VV3XM3p1cs+B5kNrwygZORLHoXRdAhy1iypTRipTK0yFcPxISfSbSP7wie2a37yzl2Wfs1HHz7l3Q+e0ksoSvx2ZcjKhOXYZ2reZ6taGcyMZFtXfvXeHX7t8i6XFrxyDC4PC2QjYuNkzlccNlv5/ccr/qnnV7y2dVid1zjw6nbkG9752tUV3/eJN7nzybd47TNvc/H5z7AcX9Curvjwb/0Slz/+Q2R2tifPeefuM/7WK8b7fXD84JpXH77Ke+8cGT05LI3ejxLyq+scLdTe6YVwGdLVGL1G0ivjaKgkkaYuo0lSs3L2UeTN2VXjqRZRb17qqKrbe00e9QpyrdUeMBiuWu/SDmSRLQ3YTsaTETx9eeTycORiWUsvZiMy2E6d47bQe0H8rDs87tOAUdBw8T4MKzl4qVimnXVqwqp0FIGvE6jXnCmAfp28OHaOF53LC7hoDZcdYkTQx2A7JddXQ+hMSr1z8i40DFEOyyqQWNa10BfbJ8jOev46uw2WJm6QJZsHPiQcFQ6BBi6mGKBFBhysXl1VGF6zfDAZNt3iDSlwiubVNCHWU8HXiOoKKuM5spM19HHv2Eo5GbVkQtpa11MIDyV1b4l6ARcRFZfBxeXCvbt3ePToHvcfHLh79y6HdeXCpaGzbRsfPX3GR09e8uz5keM22IaxARHJMoS4dDc8m4TwqovEbDqPoJsQUAuhU9q7Qh5kM/RvrUiQrRSfYyZClIOKIliGdujkC22ZWBuYLXtZJSJrPqR4P7OpkiwEhXN3iAfMkpyWggIiaWFQWjaJ7bO6SJUwRyajVfksqyTrnOUcxhA3LFV26yQxNgWeYXQPndvQ+5HeCrRQdjeWKFSitI0qMJ/2MKxshNvcfDRTaTmLu5iM0i6SkICnetl6qJMoDCWaITXoMZILV9A+9XIyOkvp4/RGJY7gNtSQ0CQAWeoyKguluiBHpviXIzFXEqUSU1mISm7JUlZ3m2lGJSVnoUIH1kKg+0zOXRDinBm1JGTW/ZtUwZcwaMkprNCjQnpK6doRb4kIPJV0RU5+TrAgXqEVyZvWFCD3agLJJMqfUojXbH//Xtb/SoKW3Il3ihanbHRl5VmRdspUTaEsRfzKLAfqxGBUp4dNsmAZljh3DgmwSbDv1Pib8LI6FCoinllrzpybGzofWRnajJvhDyT8oAUv3n+fb773ER9dPa/ovYZRVYmB2UVTTshM3UJW2YMGtMGzdo+/dP8OH1xc8pmXj3l4OnE5DOsd652jLbzjC9+3HflnXg4+eRz86nJNM+eHOPAWl7w7rvh2P3J9aLz2qU/RLyH+zq9y5+7Kr37tm3z7g5d8+af/cda//nfx04m/8lbnb7aN03Pn/mlh2zqPH0PkBaNn1bUV7Hmx63tJWR+oDoQeO2s9oxRm3Tm5oFlPo1WAOGuvjOpmqWy213tUaW5C0FUCQI53LhGB+5m4bba/x2mQFRA619fJSbx5Oc+c9dpSCQVsJ36qK2bPSq2IqK5s04Hs6gAYORUl5YCEMp2nNjd3lSVrbWFsR+Pl1VEll0lKpNDjCmabIlz9rjCwpQKSUUTirNZ+PZtZclOJQiH3FNZaRu5jMHrKyEXcIJaaygFJ6t3YzNMrsIhJPT6jLd6akCL0nBoqJSnf8CoVOVHtyxNRZSKgZQtV8skd9VG3tQilgy4OWu2BqQi8HJwH9+/yiVcf8cajhzy8d5e7dy5Y11XaPW3du9s++Vrn6viS9z56j6+//4QnL048e3HCT7Inns7i0KOzGTsyajZLNoVY1b7aIwebvKUszoupfMfUlDqjUgCjS4tpxOSusZd89JHL7jB2B1i3Pusi1cBVrcjOKLHBg09kur69SlDevAKacwemgivttV3+oT671bVMQqdGGrCXmKbQGa3QvOJH7aWSCNZEyBDFXamyl3g6hSjVLUUOjlWyIRQYRC9yay80zzvVsK80shLUqYMUQx11C6ZOoPp3xlCzBLJdhspJLWGh2uMrDG5tJiEip3dCHB7TebdC+dPr7NQtLCny9ET9M8+VgsjElqVARvmfOTNsIu2NEl40IYEZKrFb2N59tGTDR1OHKJuuBX3vUsmfxBBn8d12X9la7Rdf9DPlZxzZpREzYJmo+FBakGpldySC+r2sj3/QUlnsUtoFWXBb2QZxLG62M+dkvStbIO08W2GK4XgIhiyiU5UP9fP1OjPZdQSan+eOJNr803lEab9MRcKzsJwOo83eeYxXc/BT3lhOL/nWe8/49rOXXEXnTltLdK04N6le+70FbQZFdgMmBnpr/M3XLvn1+5d067x+fc0nqM1+OpJpvN8GY9v4kzQ+59d801/y5GC0zbgK55Nvfo6LP/Alni/B81//Ko9++Vd5pV/xdAF4hc/6JZ++67z2C3+X07vf5G/eec5/c3HkeYfD8+SNfMRXPui8PF7AAmLwV6BRDthIGT+ge7BSDHRyL+PNrgQzWEe156XqxQZ4L1Lg7GKoA43PcojSy/BJ6hTPZfJGgD1ImsiNNREPl4KCI60Mp+DzkYnHsndD5ITdgaBrRlVU11OJDy6CQkp+W+9pqXKLmbGZ9BcW2AXiep7bJEd1FUy+ydIVNPRMzWXJ4Fxr0d4bpRuyIE+0IRJfyzo3FRgMj70ebhU8LEWVilYZGOdntKRpYCXSLJl7O2o4S6Nq8xMCx6qDqxyiTRVRx51dsXUfhhexizvOs2W7pyrHqiyBtQKzGjcosjENQgGKmXLTqYbbXKTp1165y9tvv8rrr7zC6/fucme9wJYLBUPVzQVWJOzGcndlWVcu7tzjnfc/5J14zIuxsTU0JXqoAwnnO+QIpg1ahHMBZ20Vq9LXRBzGCEYL1p0EybncbMayqlNRyFRgNZVXIm4ibY887SheJqXMLSRZ/IyZuAk9MMQ/mShGZJR+VMlHZNmVrFJahIK5+poXMiEl1tJY8nJ9lTjOfeOJ1IWzhkGO3HkRQXW4WEIU8uS+B7++u1NZjmk/lPwImV1yJnMqBY+m7rKYyHR2rMmSBwnNaWMGL9NRV0eZGSejEG4rDpMk9TGV5NdpzWdQGhoIG8hRL4qylMCYELls7J10ORT5yR9R5X/f9zxt1VakGk8of1TvZLZ7z6TCsAqSzo0InvJ9w4JuTsukmTRtMoxRUXRjnqlgaVN7rM77TJIN6esQpbkkwnJPjWtwK0Jz5D5XS/zK2+4hoDKrKsMw66RF8rNkh5D3GTRm++GTqFxBqMixdNHMC3kR4XDBzvL7oICnPkP1VmUaU1RLZq4y01QKcTQJmbVUPt69SjgjcVfL3BfHic+G8/ij53z96TOut46lar4ikJ5YCprHDntwUp+kgXrICJHw0eWBv3Nv5aU7LY+8fjrxicMdDmbY2AhbeXY68Y8t8MMZfCWveef+wjgBzflma7z9E7+fL/z0j3P1yl3WX/0Vnv31v83Fg7u8+tqb+Lc+5BMP7mIvrhjf/BrvrRv/+fqUr7fEXxqvHg/0i5VvPB6caBK6MqEhURlPpnRtZmCRqZ6MxcBCRtspnhCV0U+EK41lVJ1ZbRNiuKPZF5GVVafKampZHUSJNTVZa8xcY+z9TJJVuUbPchS61VLhiPRFTNonN4wxXYjLoMS/kupgykL5CkWwhpemxJkLUmVI1D1ViLqyKJ8lI31eqzKgOpK0Kxuw5QkyOVTnwOxlEYdKe2U0Qc5L1gTW2s/Npiud2V916FhDei+FfJjvJYQ5LqItDRujlDFrqOM4Z1VmVtOV9Zluuu5RRswoefhWAUYz1qH7HY2a5D1KVG0inx3LYAntH6Ep4g5ZzFJh7GdxyRoSWSW4SzdeuX/JJ994hdcfPOCVe/dZ1pVsqxxBDO2VOsgaVbTgvnJxcZ/XbZGTjmDjCf2Fpo/rhkYFGHKuOcsyRRpWF291+mTuHUnnAEK6TRFx5mhVGYEUytipn03KXqX+zb28jmk4Z73NMXrJyRfKWXZTAF2NKKHeHXr23a1KAexddxbJunBuTEiq8yf3AD+BUd1vE1FpnMc6eKoVVrFdtVYvKn8Eviuq4hTCShGuhUS0oSLgQCXmQxpHS5rPZEbPfIpPCgnJff9M/pgBLQdU19ViNX+qSmphYCPOxHBrKs2lnPwUT/SExSWAN1AnV6vOPTzZPPGR0tKxpaTuRRa2PoPN1EDRoGze3MMillsFA8QZIdsqyArUji9UTahzRLIUnSFikqDFM1ksmDOVFKSd5SSwCjYruHPajhbKqU4V6jbT90qmZAvcwHPbz/5wlY4TlbC/l/WxD1omymA3CLhzymZ1uisTn+SkOmtWGahKOCGFUUQm64kQmJgRfO5ISiHY9f70j1bdS4raq4sE1aWD4seX0dn2ts8ZNBk+Gofc+KER3Hn+gnff/ZBnpxPbKO0Rp1jgoVkzlbXtIkXl2OVa9P+vD8Z/9+DArx3usbWVu8drXuvBw4u7+MUKqa6d+9vgB7LxDld8OwbHat/zTO5dLLRP3ufxf/z/5vjwIZ/833yZx3/4DsfHT/mv/oM/z6c/fME/8cabXB6SvNr4hcNT/uYD4ynOay+TB36Hrz0ZXF1fYDm7Fti7SXRPMwMsB113sLhE1OYk7aK9SdOgSl+N6gOapNU6fA0RnfdST/3/2TU0ERv3c6t0WBFLKYNs9X1FPtT7VYl2sWplzzLm1XbeWitiY9trzMqU1D5a8wiZSrh71lWBS1YA1NxZKCPoFMGUfXLwJH9DsfjFNdX9zcy6gu+Z27RCmrzQg2Zqh4yluCuZ1TEzIepWMG/Hiqsim6mOJIrgTFTd/YbGiwa1zeOZ+//OidrzLA3T/BSv1mdNhE28+AIEHAxyyIlL36XQS7LKKuxaSFNdMrH93U/tpLKptQeMi3XltUcPefjgPg/u3OVyvWAnv9bO8/nCdv8cclK2cHG45MH9+7z26sbVaTC2p5yqUy0qoZEKs8plRDJsSjEYRgVEDjnOJT+PMyHbqow0Rf5qpOSeZU8n47R9ZIWUkqd9kNFzmz0dkytRxM9CACh05KYM/1lNOirkoIJbK66gTpRPxHFHMRKKbDq1PNyotvkKniP3wZOj2polo699r7Osd0s1K4SrzCu9JQU+PXO/5lbo7Zg23620QmAO7ZyMXyu7exOxLPera80aqugzsDG4gXwsptLUKfouTGh5LuMlmrmUJls2RkqBNq3OngjVMdHP1KyseqgKIPdAPxSoFlrVwqqcKn6QuWMxyL1cJpuwjX7WBjOJLM5py1ldUnOQYnMvjpWqBM1UzplBSWGchW9JSVv7b/rbsq2m0SlhFZxn7napcZMn9Vuv742u+4+wfv7nf54vf/nLPHjwgDfffJOf/dmf5e/9vb/3Hd/zR/7IH2GqIc7//sV/8V/8ju/56le/ys/8zM9w9+5d3nzzTf7Vf/Vfpff+P+KKZuZ1Lsl4QI7QgLoiv+YobgHs8OeohzpIji3ZpsGpOR/FIVLm1kcN3MqaeRJn3kEENhSB9hgQSR9dzrXgWg9pCFxbcEzVj3uGxoYbvDoGn3t+4ltPP+DrT5+wjdSg0MwSZUtFL3j972wRVe17bYvY+8uB1Q586+59fuHBXZ6tC5mDO1vwyQGvXN6BiwtiOdBH5/J4YsSJb2bn+WEhbMH9ktdffZs7d++Rj18wvv41Dr/wC8Rf/TtcvPUprh+9wvsfvcMvvfc1/uvf/ApPrjd+2Y/85TsveXJpXFwHr50Wru0ev3m6gHFgTcStAFiaBqM1Ob8Zre+tBmaMmE5dA/JOc/BhFGehtd0oBY5no3W4KKY+bjSi2nkLO0gdsjnMLFwGSR0GlVm1WQO23QhR8GpktdCG0Wg0FrVNl1EcWRLhxt7S3ZoyEvPKlhFaIi0KKWdOJxUuTxLG3up4s1V/GocZqE9/uqDuKNsMwrlOuDY4NmdrjU5o1INRasnKeA1kfFLdQ5e+cHc98OjOAz758NN8/9tf4u1X3+JTb32KV+8/4u033uITr77Og8s7rGmstrLYwmKrxjEgA2nuLMuicROmQYqLNxaXGJy5iPKrL6zWWMxYMllJIU2RdJdC8QyE5ACDBXXnWLVUu6lg0ApNmuWrMUSobk2/012BYzNnMefO5R3u3r3L5Z07rMui8k+iwMcGU6vJ67M9cp9TRP13aCv3797j0f373Lt7QS5JLvUO3UqsLvd3LimFuacWejrHdDZnbze16oaTE0xxTUo/o1GOuXg8I5SJz44aNz9zSkykZ/eFxGmmEFadTSpJZw4p9pbj0hA/9kBgqU4lKinbA5r5OyhuRQUiUWcsSgRz8UZbmrp5fI4hUKlxlkV2BViTErG6LLP2+HSI5/JLznOp4ySuhOmaVlzcEFQi8pFSEk6JsDkoiMo5sLAS0vpcMs9SDDO5rUB2LsUdSRvJBY6P879PGzPnjGUk9GAZsk+ZhfzEYItBxFA3VXHwIpPeOxlJ74Pe1bU2etJ70ofmb73cOldjcBqd43ZiG4PTCI5bcNxGkcQVrG1pXG2DbZT8wxg3tMqE+vXI77iOXv5pJla7/QmFhV5lv8nVBHYtHis7KI6L7LRlckirOUTfff1PjrT8pb/0l/iX/qV/iS9/+cv03vnX//V/nT/+x/84v/iLv8i9e/f27/sX/oV/gX/73/6397/fvXt3//MYg5/5mZ/h7bff5i//5b/Mt771Lf70n/7TrOvKv/Pv/Dv/SNczCYIJO1w6SzkUnCgSmO9OcH7vUjFdZKptLZV1t0ha9fQPglyWygbrc9GmFovfd2dEVs2/ZuPE0hgEF24soXIANif6GuuyyPiN4AunE6+/uOLdD6943DsP24HWBKHPWHc34CTHvqkbpinLctRVcYHz4uD8/Xt3+frlPbHnB9wfnU+4c3nnDnlh0J2Xm7QE7vrCJ48D+uA04LXv/xK/7//0v+f5V36Vb379XV48OLA9fskn7l+yPXnO5wb8ye//Qb45fo0XHz7l165W/svXrvm1u5L//9RLuN/u8refwtW4Q1uXIgkXoXlCVeSeFUvwqsiUqM5KopZIogiDshBLSuRvRBJNNfYtknUOPSSgOTZGKTT6ronQQu3GynormECTn9Nth2fVHVHvvLJHmzmAT0OrrGtCrUnbu3+oNt8cG0uJLc2Mxcq5NBchL2uQGpNG4ZWJ1XA8q1LJRFHG1ACpuTbNNJPJTPLr3lwdAkGhcnKebsZpH1UbLPz/2PvzWMuy/K4X/PzW2nuf6U5xY46MnLOyMrOyJpfLVYXLBbYfpttMDe7XvMcTAqnVtCyDBHRLFhJIIISQ+ItuPek9tVqCP8Cv0WtsDAY8lKFsl2tyuebMGnKMyJhvxB3PuWfYe61f//H7rX1uPWi7uhv0Xpc45XRmRNw499y9117r9/tOPyVoxSAOuH7xEtevPEa3yEhquLrzFDtbW8zbh8y7Q46nh8yXpzSTDS5fOM/2qOLtt97hwf0j5ios0wKRY7rcYQFx1iGKUwfinGWOtqlH19Jku+AENUVmALsmWOGXHHJHisjaXVdSmWgzGl0akzkpsv1FSxxNXb9RGsqakRAJDUy2hoxGAwZVTV1FJ4QVTdlyT6QgGcUVqFBUD5K9EKgZVwMmg4bhoKZuIqtF8vtjX1MRSWLTqj3zkS4EUhai1AiuM1AbtZBymdVjSHEM0msMghrymjVDiH2WTHFspJyN+hVs9AFrgW8yls864lLUBCs4Qhj0Og4NuSfVlDWSoQUV1DIuwDUZZ9EKRwwrz7DKrktDxAsu1zcEsec34Ke9z+5RR1+DkguNJopoIpZmBYgpYNib7/tOqYmKUy2cQZgEcrKxF+KqZUfOLS8luk7MdDZ0mSYIZahrSXFNJA9ac0wmWVq6iGlygpiuo0xvRw2ZQ8BnMDu0ZYhRSOYWNFow0zoGWDlinjTb8+3XWRTacuZIeaZsX0q5NOReXAbTwWXjCxHEzinNFi9GtmcsGSqkFlhllmZf5SqW7VPnojWyID4QL3x1fXaylk4Yx1HjwFDvrPV0qO/p9R+9aPnlX/7l7/r1P/pH/4hLly7xu7/7u3ziE5/of388HnPlypX/4Hv86q/+Kq+++iqf/OQnuXz5Mh/4wAf4O3/n7/CzP/uz/K2/9bdomuZ7/jwmhjxTCeOJkdYzUASZ4jkrfWBW+X2HtcgYd17in71StiwDC9gZSChcg8GPPUVXoFGjPkrXk7Jtwh2dc+KhT3KVEMlJqYJQ58Tjy5budMr96YyqMl5XnRMX1xWgthnlUB4Igc7N043QhJo2KPdGAz67M+CgHiBixc1WarlQDwhNg9LyaDblcD434eKiJUbYFSGEAReuPs6yTUyuXuXbn/1dnhtMmG/uUu+MWf36b3N89w7PNud54bkRx3v3+XyccvPqkC63XF4kdpdDblZDHi4GZnGNnanypeo3WnR9fTPqyZz0dJfdH98UJdiUXBME+Z6gPVRQBIEr1Lpwt4uqBCrnXq1584daoqFoEohaHkAvWIORTnhHZZuOuxq0uFaEEF0o6lw/qqSOHgUpRUoMZWt13YDEtfo+m+7C9lg72IssQrF1bbB2eYe8pkLdMosYFE9K1MGSXCVpD+HjwmFb45lQuY07QM4VjVScq0e8/PjzvPziu3n8+kUunNtkoxowiA2rlFmkjiSm5bn94AFfe/0W9/eP+NFP/Ai7GxNu3zrl1e/c41s3vsNxvkObDu3nzeuQNitEzeVBER4n03qY3gDTEhTtj5pgd20WL8VkdmrP8h/sf/6ziqx1IihVFFbaESXSEE3/EwJ1HRk1gXEjDIINT7Si1NdUxsX8NiCwcudV36z414lEqlAxbho2mgEn4dSREMCtqIghtZROHkNRAmLUb4YVPlAu2u/FIrLO68F24JlFakVp5+sX/9lzVhN7lx7aBc+5UAHeUIlgRXcIoMkoakdJwA7C4mop1xy/pjGUBs3n/zil3mvrvAlIXdcXDAXdKGuYGFDPaikWb3smrXkIsTQU4kiK0euZEhDn1I7fL1HxZy0h4vOJHMGOVUXOmZran+/ca1nMVePC+jLsNnkMhZig2Yo61iM1/L6piLkRBT9BpG/IghfJUZWlF6vRCwd1ftmEzeLX0BrqQsQggTblPi1XstJItOnYqGXyeCNCrnrayShNH9dBcHrUzgzbX0wcb8j+WUotkoPSRju7BjlQNkx7iqzZQwpluEaitQcAbAstmqUowTfcTMYE450X8t/L6z+5puXo6AiA3d3d7/r9f/JP/gn/+B//Y65cucIf/+N/nL/5N/9mj7Z89rOf5b3vfS+XL1/uv/6P/JE/wk//9E/zyiuv8MEPfvDf+z7L5ZLlctn/+vj4GKC3I4YQ+lHiyUu6kNVDtuxCKx7cBT5VNntB4wm1yTsb6KHlyjd7G5+uvVWwzBqxD2ELr7cn+poS8M0394fgWfEs/sBvpAWPnS6YLqascmKzqokpmaaug6qyqOfgoUZWaNn3qmL0YskgvmU95AubE96pRybEFKXqWs6dLtmJQ1SV6cGUk8MpUzIH7Yp9lHkH1e4Ou088AVe3uPG5L3H96lU2Hs25sFUzjkOW//a3OPjOWxycHnM43uSFx65wOOxYvXydZXzA5u0ThqfCYX2eW6sRyhhw6DHE/uDvbdseICdgD5lnAIgaCpExaNcektBbKQHvWoqex7UaZ4ocCUX/77WNGGRcwqesY/SAJhFSNDi/RHz36BlO/yAeKW5v2EOpeS04zVLcGl5Q+M/b0zGuru2pnnLYiB9A4joZP6qDZx8UCL10UoX6KLHp5lATlmSQYEF6vobV9R8Jm+ZbarRIw8Zgi5efvsKf/omf4Mnr19l7tMe3vv0qe/uHRDV6cjpf0WmiqwKXrj/O5Sce54M/8AHifMZrr77J8eSIH/7I+/noh5/ld7/yGJ/+/Ne4+eB15jxkJe7lERcDRjFHiIiP13BBZPlvTDoQHWUTlZ7CteeMHqlUXT9+fVCXeC6Pu0eQYpt2GgPrWutYUdc1saoJEl1PtKbcej2HH5ap65zG81wbP9QK1RNDIFbRpx6vqKrorkOPWpD+SLL1q5B72kFdO3M2h8W+R0mHzqx/XbRDQH/fC52dXLgbQtlrWFP0rOnO7N+rCt65B3++vHnwBr5311EoIFVKjlLn6OfZ27Nep3j2zhoBtOIqetyDIarilHfZSsuMqaz+xHl+z9l7AtBFm/guycS3ZdKwoab2HIn4Hi2B4KiuiU0NKwhi50WoMLpPlSyRLImVV1hWe/ozX656cspEMonUDwlN5Xv5GsvBI/n9ruds6E3W5Gm3tjklg8OcjrQixxKZ6X/ehCFl2jk9XNaDBwxmMRcgfv5oceSJFa19BhDqhZO7gM6gL2Q7qwyRBdT2u+DOtxzOUIZ2lVE1QwIi65wYb6KCQIw2263zdZqLePv3ef0nLVpyzvyVv/JX+OEf/mFefvnl/vf/7J/9szz55JNcu3aNr33ta/zsz/4s3/72t/n5n/95AO7du/ddBQvQ//revXv/we/19/7e3+Nv/+2//e/9filIcpe8Q/COuMDCZaOXMxsBpduxyHBVgy1DCH2npnhBlM2SqtjCLCJNSSbexRdNzskfrljaYqc01tClZKtyi7A0OHx4NbfstCsO5jOGsaLJ9MKlqgr94rcHzqr9EIpV1xZ81kwS4eZ4wG/uDpiFGglKlYWmy1xqE5MonBwecnhwzIG2vMOKvSpTaWRnco6X/uuf4uIPfQANsN2uSPOW0fEezfltpp/+HPr6bXZGQ559/mkWixNW00MOn97m3Mffz/Ev/lM2Z5F5tclNHTJl6DufIhhyZum19nvrcDffxItjJqvHnXtHLYV/dpQF58PzGvqupMwlcRGnC9DKwxZKx1c6cgpEbId5yeKx/AR6GlEcmo/RUDE4Qy96NxF9QwsEc4SpTdrGPx9qBUllldO6oHUEJrgzwX7fDgLL3QisckeuBOkyRKXTrheziXd8ZUx9o6Wr8hNAysFdNnLTCwQiNQMub17gf/WjH+dHPvoyb77xOv/sX36R2eIhd+69wf07N6lyC1Xg+Rdf5uqVx3jt5tvcuvs5tl97ku3dx3nvCy/zvh98N/f3jvjkZ77Mx97/Hj7xwy/wnuce4xd/9Tf5zKufo5NTiwH3e6RFZFpcfHZC+UFcZlLZz2GZNa5boSBlnnEhudf3lAbCDmKlEBHqjsDKr1cONmNFNFOJEEKFSI3EgR2mWkrcXFrTnlJTsSC0cgvFEQkENNjAwxXulKgE2kTt2Si9e0bFGh9jw3wfsn8KpV2p+WzsOU8eZFYK5kDnQ+6s6oy+lIxis2RhPA3V/ySafdqQtdAfSIYMqAeEufjZqaPYZ7qs1xlCPyxShN7Fpo5Ql33Yz01Pci20VikYsj+zdqivSlFR7m02uio7Oo1TYbbO/Wdyt5+599yp4vt8Kc7wPUXK3ljbvTWBvh/aXsyFGJweM7RppdnHaAjBXXaGzpsbyBAwo0qCF0g5Zc8lCu6YwtFji24wV2IFuJvIhcUgrvcy23EO9LoYcjb9n+9VOa+QWPf7XZmA3vmYBdPdGGZbESEnn0XkacZBnIrCihFfeoJnBapQZS8Ag/YNovp+Z5IEa+z7EFZxGt+fg5JzJhRUBbqUqbTMUwqsusW/d37/h17/SYuWn/mZn+Eb3/gGn/70p7/r9//iX/yL/X+/973v5erVq/z4j/84b7zxBs8+++z/V9/rr//1v85f+2t/rf/18fExjz/+uHdYtrizd7XRsz3Kg4RzvsE3jz6syXGtIuYr3WssMCcGA2YslVFQcu0D+wqUEvx7hdJxOIWQ1B0DuD3QHSDZOfwQkNQySvBil8nzU6arjqvNADyUKornQ3jXn3JrjKdEg1WD6QA0QEVgNhzxxUnDo1g7m2Ral6FELgbQ1DJdrTipA/dj4igr292AUahZXd7ldNzwyr/6Dc7vXmTy8rsY7p7n2T/6h1l+9at0hzOSZi7WA9556wbbO2Om5yKrH36Jz7z+Os1hRmSTvWqX/XllhRyl4vcr481KSYoM5k3luwrw4B0CuS8a+knDWpGy3V+XfZqmKSsE1w3EqnfpFCrQbpMjEt4lacBngth7F0jcJUqU/JZCWZUxDSVcy0qO5CeQuzH8Yc0oIVSlRTanWMk8EHW3RfAu1bodEdCQXUxqr4pA19k9TNjBoYWndjeFhujFErbmsDko/WTnIHTqzjoJ1Az4wDPv4s/9qZ/k8tUd/s2/+xQ3bn6TjWbO7Ttv8I1vv8p01ZIqaFnxzYM3GTdjLu5c5NL4PLvXHid1j/h3n/oF3n7mZd73vvdx5fHH+I3f+QrPPHGdp68/xn/5U/8FCznkM1/7khdR0jcG4kiAwPr6SKCqLNG5y0LC0kuTqomm/SCgwNoh0naduSg6G7wpWENQqUCg38TLgScoKtHXSTK9UHa7a6gtzyNnt1wb6lAWrcoasTM0KNhgv1xElS66zJYEGlw3Bdp3lyF5IRataCuznowCsMPCOTJUE0HM4ZWwotcgf3fBdKatKTQrsp7kTfl5xV0+YT2Pq5JAjNCllijRIhJ84GD/s/q9MTrDIP1ePOz/rn3TbV0ALDiSJU6/q5ZaZS0edmSlxx780FRxN55dPoKsc7YkBougcEo1eIhIEB/mqEW47Ch0+dyqUAXXxxmiUIZHhsqRkVSeOZcERENro1lyfO8sqHu2zBvoCxNxZFcInsIbWXmBmsvznJ0WxdBlyy4qGjhbUyW4Mjs6VPaozjcuU8q5mYRIR+u3KiOx6oXF9j085gFnG3JmECpr4HC5wRnEKkUrwSQEaqlQ7SiuQFFsYKg3l5W4PouisZRewJw9i8geOs+x8meFWNl68LX4vbz+kxUtf+kv/SV+6Zd+id/8zd/k+vXrv+fXfuQjHwHg9ddf59lnn+XKlSt84Qtf+K6vuX//PsD/Wx3MYDBgMBj8e79fZrWE0qy6sLJAlTFED0ayRWE2P9uCCpdpaI1faO8kEIO1XUJFcaWnEkccLHfCWGTtw8uKIl4xZKFwyoDldSSDTckrNMLleebpkwXT+YxBFZlUQBIqsQcouONC++LK3quSYOm9WQl1Ta4rXtsY8TtbY5ZSIXQEr5U3U8vlrOTcsqiH3OyWPAqZkdRsa0V37RIv/5k/yVc+93niZz6HpoaD8xfYvniFZnvM/OE77J7MeOdon8Fkg43BEB0G7j2/w+en9/naK68yYoOHzTb35wOyc8vBKQ87mExBbumuPifJT67Kv14Fskddl5c1a/mMcUrR3BmEHayAKzkWpSvrvGCp8ILBr38IoYc7CYZ2qB8MRdUn0He+xaaqeA6Cf64yaJAArXdjXXbSPhq1Jem7DxCja7JfizWMXjrEAGgyUWVXdCghUKsJ5lpPDhUXamrONvvGBZtakInyffLaCWHTVs1h9vITT/N//j/8NwRZ8P/8F/8jD47vM9mac+et1/jGt97gYNWhzYDBuLLAP1myDFCNa6gr/uWv/Euq0YBnn36cG2+1LE6P+ehHP8HzL76Lb3z969x/tM/l3S3+9J/8ExzMZ3z51a9T1+EMRZr6AzUGPMU2nWkzjXcns06NlVIwrB0l0ZEGOyRz38mDFxB+eMQzVmyRQNKO1WrF7PSUtLNj7yHi1EWLKrRd0SFkioQgIqhENNuaQyCnZC7BVUu3XJHajjqbCDKFco9tb+rEDp6QrJgy+6sjExQlCgQ1vUenFLUOAQsDk5xpUZ/No31QpuXAlBlOawo6hNDvXzbkNZKTCUqj0zz9VHpfz0mTuXDcJmtAohj16QVIreuQvoTZW8GcVUVnRTD3Tla1OWK+N3fZf6ZOKUNG7QDGBKpqe1uH9oWQDSQ3TYY4uhKUHlEJrvGqKqOjkNAjQeX9C32vXnE0YkL+lcHtOG5CpVZwtv71MZiexNxqZaxH0cV4ancsQZM4fWaFMVWwa+DorAqIOqWkiqr0qFVBVUKwomq9H0U0FYdlR3HNKULn+TKKUU8Dceu7d20W5GjfR0Oh4bTfk4rBIBQ0lujUEHT+8J2lF5U1SlQAAs7sl603bRFx2tsZgnAmCPV7eP1HL1pUlb/8l/8yv/ALv8CnPvUpnn766d/373zlK18B4OrVqwB87GMf4+/+3b/LgwcPuHTpEgC/9mu/xtbWFi+99NL/x58H8ARAh8W9u+sjiIv40+9NKAIlv3GlqCjQaXGaaM4+qyagJtunElN2Jxe3WLqkuyAEs3hhfGPKlmqJH6ZZM3UVnUO1guNSVobzOQfzOedjTS2mZQjgQU8mDjOBr1JX3iH511UEVCJdM+SVjQH3mtryYEIgtEpMSy6njserIeOq4nZO7IfEVhix1QXuh1MGbcu5zfN86Cd/nG/v3WP6+h262R462+OajkjtjGZ7mzYGbrcnvPzUM9zYWbD/zAVuv/pN6tmSWX2eO21DUk+BDebYOZv3YFoVvzdY5kaMkdbvW6nhC1Km4pkgro4Pfr8tWt4Kxywl7t7RLxdUK/TwfmkUfcH0AVjZoctgAEWfBlkF76ow26D4/cB5cEG9QyrTe71/LKiAf6vivCj2eC20oy1D+zhn13GwwyA7TRmy0U5Z1YLCsmlwul7ViAWEORrVOuIgHjCWvZCqqbi6e46X3/Us/7s/9hPMTg/4V5/8JPcP79B1N3l47xHv3DnicCWctspieoDuJeJQaMaR0Ui5s/eIRzLl0WLKcnrEqp3ywvUpdC2f/ULg4x/7OC+99DzfevVb3Ht0l89/4xWeff4F7h8+4sH9u94J4g2EHT5W4Jt2QSX69Gd7LtT1DBm39rqTq4828HVVbm0U3wOywdQpW+JymfdlZ6mtQ13CYr7gdLFgYzimrX3ibRBHCMQnV4NhYeIlTMROV3H4u2OxXLFYLDhdrkgJH16oTjeVs0exUsV/vmD9c0lgTq6LCmoHk3pTVJ5705S4kyxYsVSQWwsxtEKtaGD6NFWnkuyQNIQnxvXz0BcsfgBZkRsg2WeOQfp9NRUnSwgse80WZ2ghs80LnjPiiIuWx8IWpl+btTaIoqvx4g23ypow3zUcORFCJiXBRit4fLzfcxEfcFn5ASwF/3DCL5iUt9DBWbVHvYvQ1hqe0GuDnA2z6+d6puSFt8kBvGE1W5+jmvSUrKrpPGqxdGBy6YjWmknTE0WbM6W+M6gjUh5UY22nXbfotDeemFv20pQSUWpHOTzVGseBfK8r+1BBrQM2yDOIEGJlhgm15lJyJvuE7ej0WWnAy5lnwYX285TnNXjBRvIGW8qPbEXX2WT63+v1H71o+Zmf+Rl+7ud+jl/8xV9kc3Oz16Bsb28zGo144403+Lmf+zl+8id/kvPnz/O1r32Nv/pX/yqf+MQneN/73gfAT/zET/DSSy/x5/7cn+Pv//2/z7179/gbf+Nv8DM/8zP/QTTl93qJFohFHDIUOq8Kox8mRXWeRVxQ5A88xhWXg6zFwrzspWZJ7k8Vh8ywbUy9a08p9xUn9jGM04tmyyTZQ5jV5mFEtdC0HALDtOKxbsHq9BRSZjCsqHQ9Bj46KiDZ4Tk1rrOuLN1QMMpgFYQ3tiZ8dTJgVTWkZMRpFuGxHPnhLFwfjkmauJ2nhFp4LI4YPXGZ/dUx9d0D3vkXv861P//Hefn/+L/nzivfZn7jTRaf/hx4t7gz3OCZjY53jh7xnZN7HH34OaZVg5wkVDe5zYTTPEARt1M6yqRePBC8I8kOUUIk9ie4aS/t71ZuLzcmRAweTqwDnMSwr+BziqSgMM5nlw49O1yr/vCWmPlULLlWBVF5X21Cx/UmbIVobYVDZ4PdSsdREmfJJjAEQXOJVqenJEII/fwUkdCnQxbLouCboKMx5TAgWQfWagY6KoeDrIszuLlyWNB+Tj8es9NT9h3tOWgC/9X/5if5gx9+H+/c3ePXfvPT7O3dYLV/i4Nbr1HvbIIGFu2cRweHdIuWUBvcuy0DNqohy9mS0fYmuzu73Lt/H1Hh/qMD5vPX0DDk81/a4uM/+GGeeuo6b9x4jXce7HHzYJ/3v/8HeOPVb/DazTdsHIFbrkVtjglZLUZcQEMGsXkpa02aO6GyX7PSWftaEC2wujpHZs9pLcG7et9MvQyVEEkJTmZz9o+PGI2HVIMBQ6loZECnLa14/D5iqcmUALFIqCokBlbdktlqwWyxYDpfMlu0tC3m5AihL0Ry/6SGM8FyjsKhPTJsEH6BlJSQk5tEhZDNIr7yDchooQxqaEmZR1UKceuQg4VEZnsGAz48RjLJf74SeCi+cVlyKpatIutiQ6WUbVgGixdDVYxma9bci9oT7nrzLj07LRLcqVMomC6466/gFupUioRS25AcbTNkaI1KSvDiN7sQvwC6trM7wsuZxsWe9ZxLUxFIkpHGacGUXFNnfy8Eb67Qfs9HiwjVppYnvODJ9EVYXdym2NmimV48nfx7F+oaLdlOXcErvOnKfobhDbhdv8oLIfuApXhJqERPOk505Rqpae1EoqF7LiFAMMTFz6JB1ZAlgWRCSH2DWSQWhibb+aO4DrEsNN+vxc/QQlUanR8pWgDxghpHrL+X13/0ouW/++/+OwD+0B/6Q9/1+//wH/5D/sJf+As0TcMnP/lJ/sE/+AfMZjMef/xxfuqnfoq/8Tf+Rv+1MUZ+6Zd+iZ/+6Z/mYx/7GJPJhD//5//8d+W6fK8vKa6dvC4iNCih8ofMe9vgE5+K7TgGG9gH9LwvmX5wXXEB9QIvcL7POwC1IGnKIL4ztuuzbgQNvbzQDheHyVQqdvOKZ9qO1XzKsGosGE1sKZQD0p83QjA6oMCHpqo3/n8xaPj81pC79RDthCCRqIlzbcePLpSPLwSplHtBOG0adnLkfGoYXr3Gi09/kDu/9MucfudV7n/xGS7+yMd45hNXuPPPD6jiiIPlnGYwIAThiQsX2ZBNPnOxQ3bH3PzWW8xOIgdhh4dtRaVDNHSEbLbPWB5EWS/sEKJ1ErIuQLJaZk4six/bjAZiMHrC8mSKJbWMKShkmagH/smaMxdHadahbKWocc2MaC8yK90/bm1MokbP4LOJshUQPaxa3gthJDWt+kYVYh+rX0SBxZrcgz1d7tM7VRXtEhrXTiUKzejFTRbLNtFgnaGa/QnBhvIpJnzT5MK/wocnX78Enrx+mRefusbJ4TG/+fkv8vDh24TjGzz65it0ZPTcJnvH98iysswJFTYyXGkH7HabnOZNUpyws32VJ164yvxkxmRSMT24zd0bb3Lh4ojjuyPeeuMcTz/7DE8++SyZitffvsXDB3t85KN/gKSZ1955G5U1p+6+V1Q8nbM0ILpGKlIqGadr5MoexWComh+gkteCv+KuKqm4UrL4MYQn5cxqrjzaP6QZVzRNRTOKxFD1FtrgUed9xxosKBAJdCkxnZ9yND3h4PiY45NT0qIlqBqlEjzN+QzaEhRCjOvQu9INZyVqNESp11WU4sUN3VWk66w5Sn5AWjdvX1NeWc19U/JtooYzaLJngmRDDnsbfDAqppTjiuereJcfDFagzD0rdGO5E9FF8LYnmj28iNQKCmnundxrmawIcn1Z9ucuqBVlYgGDZVxJOTg78e/V04hODwd/1qPJAIqOrTyj9sz7EFZH+IKj8GXoYNlTix4mxggFLUrFeeNokgFfSDCThGRl5XR1L+j2vJgQQ+8yDOFM0eefv/Li21D7SPEG9RoYP5961EqgO1vMR9NOVkQ04mYQR9L6Pc0qOpX18N8qRJMXBKhjJAYhxnqdAB+jbR8pmTZLS+tnCb2Fvi8Op5wzoXLzQ7bPEfEZUL4uVTMhre/d7/X6T0IP/V6vxx9/nN/4jd/4fd/nySef5F//63/9//PnyTkTYyh7NBodlvIOIlbRtSpWyVvlfVZxTg//xWDTURuxFL/CiaJFROSun4xtFqJ9Z20bQnGnnDkgXaegVYBuzSVWJC7RMTmZc7BccX44JqRMqOIaBnQ0IgYLOQpiVr0qRFsAMZBi4I2tMV8bD5lXAUKiTYnzXccH5y0/Mkucq+BmVN7OS5aDyNWwQQ4N3cmCJ196L6dH++jnvkFz8Ih3fudzLO/fhy98icud8iCveKretIC47YZbcsqlH/tBTiq4+dYt7seL3FvBKDegpifphbMBF5i5oFa8yo/S56PYpFBPK1W3xUVx4Zrdr9pdDr3DxyHY5IVHpR4shisACk8r60mtJZnUbg49fFki9dXhaM1YBL27mnxQDOXQSykZXeSfLfhhm1gXP0lTD8FCoY+E1CUKBFy6HkNr7POZw80+ZfZO0j6Cd+qAqm0GWdaUQuVIQIGgzY0jvUX+yWvXiTHwxW99hzduvMEWxxy89QYbyzm5HnD75i26qgWFy3XD5Ri4mCMy2OJkZxfZ2EaaIXsHysOje4ROqQfKpe0Nrj75bvYe3ufaxau89dbXuHjtGhvb57l26RTtOr7ynTfZ2t7h5Q98iBv37zFbLPoOWCkUgmVzFC2qFirN0TIvQ/vn2qy+Z+aY+GGl+YwAmbW2ww5P63xzZ7hUagPToxW3ZQ80waWO7Y1z1HFAlSz/wnYMh+IrG+q4Sh2z+Yzj6ZTD42MODo+YLkwM3KnP9ymUnRrVELMiaihbCDZvi04peq/kKJlkK3479YLCn49OlLoK/aGE0k8dLzk45aAq40xK7kl/3YqlvJQnOVlBLJ4J4sVij1iI6VhMW2SFYKyip9XS6yNycIeUbT1UekYA7c9LCY+0EttSw4sLM6j0uVoNBUW1rr7PqfAGwWh7F76Ci9tzX0SJC+vpr43tAT3Fo0bxqDdFsI6w70cCBL9ngukPxajG4GaOzhOrAyCeQ2L6s4h46CXBxNiWPGufKfh9iThKruK0OB7S58ioWIyCgSoF6XF5QTatlB8NgA/VVBsPs0b8tS/wUrapz4RgtJoLloMjWjEITYy2Lp1lqAlmYS73QhK4O1Vxo4r36cU91LkcIqkVmEOi7Xdq57Ohdv8zC3H/F/OSgIaS3rEWIopERK1TqILpJyQG4zfFLYtepeMCrBQsbjoiSFIbrOfQpWDQqeaOWEeD6vwMKtVyECGG6JkUdumzdziSXJnuG0lN4qnlivbkgIBQ+/1cf41x8sb1BqIHokVceR8NwpwNG746GbLfNNSaadUcUs8tMz98esrVLEgYgSQYBKqtLYYvfYjz7383b/3u1+HuI979p/5Ljl7+AMPNTe594Qs8/K3f4OlWOG0iIdVc2NxCRwPeXh5w90MX+cAPfYj//r/979lLA+7mIZ3WxMqHdLmzpSBLpbiwBE876MtcHCso7XoUhIRwpltSi3Kvowt71Z0GPrlbJdtIdWtlHHoNvTZEUybE2FNViCv2y7rBIW01sV8Up3T8YMjuJqFHcIQQI53mnsJr3SIaxGgOixmPlsegxuMus1C5e4GqMnEciiQ7RMydsi547dDtrE7K4pSigpYjPBCkodWO6Nk2dtAVGyxIzJBhPKx5+rGLLHPH23dvIyw5eOs12sMjxpXSxRU6sXJ8GALn6xEXdMS0HjPfukQbN0xV1QnESBIhRSV0yt0DRTplGEfsnxywG7d5++YbPP/8e9i+cIWtzU0ePXrEo/19Ll+5xvPPPM+Xv/k1OzTUZg+huP7L7mOZ+WJno9IFK2ZDoRo8/dkKRWtGrPD19RbsgI64VsaLBRWf52JX3JCxTlkdLrnVPWB2csrVSzMunT/PcDiiiUOiNEhIrLqONi9ZrZbM5gsOjk44PDzh8OiE08XK0S/s32rjICqBJkc6b2SyRDrWwv1SHJjI3I+gnKlCtGJJjapWp0qLOaDyv1+Gj2pOdEU9GTLS2c9ZVZXpE8pB5vQPotCZu2VVChQ1nUcVguXneGFdyp4MdvAZDmM0ihsOLGCOM7oF07R8V8GpGJLg1EPyAqrDxZpqk9tFzWXUihWyxskV96H26yMGF5lqdtuzmMvMP4M1N/RIOZqJyQTDXfSv7aywDECL7dtg+TPWiLZI5YY8T+oF16eJkLXzPShY4jaB1s8UovjZ42vUvd6d5/BUIpTRIq0jSDEVCAcqZ8274GskefCl+GBRxM8wb4aCaY5KIZ/FhiWaHStChCpEaoe6JAYqXe+1IVQud/DsIFFCdoF1suuRvFEXtREbRm9JYYFIqbOxAV6opWTarCzQtHbf2+5/Jnrof2mvJFjGCusui+g0QzAulKw0MZjDEZDK4F71vIgi1rWiQPuY94riNFlD2hJqL6aFGH2jKRZcNWh95TCcQZ/9cezbhz1YG6o8sQosp6fUsbL4cFfTB0d0ikWwirGflxNDtLhvOqq65sb2Jq+MJ8xDRLSjypHLyzkfOZnxrtmK8WTAMMDlEDmoR5w+826e/lN/Eqlqnn7qXdz54leo7xwxev8HqB8ecfHWA55iSGwCby6OuLCxwUSFw/kxr17ruPLRF/nX/+yf8+bdEx5VF5mnxuy94vbrChMwFzFtgYTVaa8sBPXwN2tD+nycokJXv482WdlhVindoGUKZBFaRyV6bl3EDjzfcWOMRLXeMhfrppbu05AWsrkbSuCW8N3zas7SR304l0RWYIUYCtnQN/XAwuSUkDpqkEjUboEuQtICF1MoCO88DW5N/d8th5a69dMybuxaen4nqq4h8nBFTaBBaER5eneXZx67xHdu3OT+/QfE2QlH+/cYN4lWW94eKnckol1FPQicDrfYqx9nFce0GSpqSj5qTgZ9S20zVKosaNhkHka8dm/K+0Yn3H772zz7+LsYjhpybPn4R36QX/3MZ9kaNfzIhz7MO7feYW//yA+UbPdate94UVhp6t0pdr1tTcUYyOKOP85A02KbgKoVqQl6vUT0ddSmjs6Lm9qF+EkFTYHuKLOYT9k/mHFr+z5b22NGW0OG4wEDrehadxzNW06mK46OF3SLxGrV2Xu4E0jEBmbmoCzxzdebkexCeqNLlTYk6qw0Wei09mLaEQMJqGfyVF4sS7KQQHVNXuXPiVmipfAuvaMml9EQvqaKZbxkaEgRWpZCypuJUppotgJBgtNJaodgRPrsGlu+JjbVrLTuomkwSrVzSoacyXG9hxZdRFYMVc3YN8v0DQNyphhSQzpCCGuthRpyG8i91kSdXlZHMsp1jz47KbiQXdU1acGC0LpSFGYryHJOrju0r6m79ecoMIeoofLmjLKmK7qt35wyjqgFa6VNZ+X6k9xRTPWxR6HXn/csDaqC61Gsma21tOce6+90NZXZnYNPtu5CJkQvYKrgaLRfVy+i1B2KIYoLo71YkmwWfPVAPqxxsmLZB5CiTok5zSbRGvM2WR6Oo52CO+eSUWvfy+v7vmiJXn2LWpfvzxYxRuoYnU/THjYP0YK+Yla0ZGcAS1f3B6xTaKOsw+EKVIv0tEH2GHf8wI12j3uKQnMRyvo4cymHNJAy59pMvVpw1C25EoZ2MIrrKYL4AxaMEvKFUwiOIEKUhr3NMZ+djLg9HBCykKVha9XyQ4envOfolDENOVe0LWyHhp0mEs/vwo0b3P6dr3D5Yx/jqR/5CG995WtM/x+f5fG9h1y/d4/TkXBXO86FMc+Mt1lo5svjKY/9rz/OnRvv8MXf/Qaz5gn209A7Munhv5bOKnrfgNQhV6NfhMqLgkTuswn6TBQpxYHxsFJskyK+yXozEg1kDX79S3fVa2hw+NO7XksyDU4RaM9920MrFCS0546V9T3LbpstmxWmuk8Oifq+hGabH5Mo+SJi/C4Q6kjq8noaMfSOomKjBNab4lqZY3uk+raogGSnOrXXc9m5oL1A1bknJqOGP/lf/ASrVcWNOwcMs7I4ugt1y70KZnXFPh2h7WhiJFaXoLrCUoYErRzF8nXn10gQ2mS2yhwCUWyL2Z9v8vBgxrmNR+zduc2z73qewdY5todX2R58k8XJjI+88Dx3Pvh+/tm/+xTLbO9V8jlQn02ialPWrUGmTOKOKNJhIk8JLpg2rUVBQ0uwY1RBcy98cqFktMMzZ9raDxiFlKLZWlvlJGWOT2fIg2PqEGgaK8YrEXKbaBGLWFelzpGcjYYreSioD3x0qg/W8fh2v831UwTEEM1uq24icErUzvYiRpb1GnN6I4SIdEZpJD+ghVLAxb4oLiJmsOahuHpEcC2NNWkEW7/EErKn3joptUZi56WA76NlBlFP1ZbmL9IfdAqEylDnsrb7qfT+jAuZpPbdjELxPK2+UAlrmr3XyeTepRRi6AddBvA0WStIoyOpKSWfweQD+9SRoFAouYJ+Cans5QRScAqoTVSxcm1KoYmEnCy8Tx01tgwVC+lLdBYm6feTaFxKrbaviwYkW8p0xtezqiOMa91cibjIwW3TQv9nZYKy+h7lscZWlOTgw3yVOog9OxFyUAbBzpMUCxKu9Mm2/V7j2hbXG4EjQWJ0fx/s6A2BoWJCzBClIklHGwxNLdPZK3B6/Pd/fW8k0v8fv0pVGqUmaoWIjZyykd9WTETf+CwYKPWTgjOdQVnQH36KHYo1oeckBWhCReUuEcAOUEdEqhAshK62wzaq+j8gOTtyYvkaoplJl7mSlXz8CA2BYaFN/GAMKlShogrma7EBdIFAbbOFRVhJ4DvNhG+MxyyqCghMcubdp3NePpyRuzkr8U4Mg9bbbonGwO0Ht3jrG1/l3qc/C6dLHv+BD/DUB16kmgyYvudJXp0I7bDi6Z3zNOMB36yP0Y8+w8my5Td/48uc1Lvs5QGZhhgrYgwQFamUgUSaYFRW7YKvSqwzbESgCnSVkGOwgwHPpHG1Yqyca/XZGTl4e+BOARUsjj6acNJ2LyFUEakDOTplgOtMnNeWUgDE0FuUYy5obglUiqCRIHY9y8vyFCKdilEAmP6i8gO3BVovtGIuHLXNkkkGCaCSSUFp1bUEmkma6Mhe6GRcBYx2pRBJZO2sG3QHTei8yNMMnUHUbbCgvOQHVxI7coZVzYsvPU8QmB4dM6laSIdUkwYuTphuBLRSmlhRNzuk5iKdbCBaGSzu61ISaFLapCxTMn1GruhyoE0tqTMY/Z29E2arljv7d1mpMhqMGDcDXnr2ed64cYOtzU0+8sEPcn5rExGlVXWeW0jJZB6rrHS5o+uSuS+yXQ975ArFZ18TJSOazLV1pluVkJCY0ZBpcyJqRdTaJwCbM8cMzO5wsUVFyMFEWasGXVSkKSymHadTWCyVbqXQRaStXIeRCJqImkm5s80/J9COYNGURkepNUqGEVSOIvjhp9FEu4JpSChFs+G+SYvt1c6+qGrrMSghClUUlM6LV9MiJHeYtUSSEcpoZwFpQV1vYfC0hfi5a7JTowJyEEcucSQi9wV10DOicbcGt8EKhmBGFLIjGa3bu7O7XyJAtuuiuQNNNq7E04hzMAF8ozAoe7fYRPWglXNDqY9SKNqM6FblkBMpdVRZiEk85j9Sq0nqcXt4FqNLrImqqNUG2tZ+XxBrOrOWeARDz3IUH96phFh8YdGbiUQOKzpdGfoaxPYarLkKflE6ybQBVpUZQ2yIpk0FL1EbRbFcedxDDdTgVmZ3TKkwzDbIt5baojXEkOKB4OF30aawU1GHmhhqE8JTHI0VWQOd2rVBIjaXrTKxv8b1KAJHxkO0YMVCy4ek1BlqhToosbJ7Xmf7p9JA1eGREmd0aL/H6/seaQn4CHR8um8Qal/EJaTHLO9SEFRaMQV+6V7MWeSCSV13++J6DHFXEn642X4u1FL1WQIF+RJ/0HH6QcGr846YrPKuYubKMtFNZ4yl7vsxAZ8w69WstfDGt6rpcDQEViocDgd8eiNyfzikzoFIy7tnp/zA3iGpm3FjnFnkOU/KkKNJxXhzg2VYcjI75bkf/YOcHDxguKpY3XybW8dTrn70A8TnX2D14B7j+/833pUbxjLmwfQe+x/cZeOZ8/zbX/k0B4uau6Nt5q0XdmoP81nXDlmJVUUhlj1ywDoAUVIVXNciha05k0YpPqMoE6uqF2UW8XQQC9oCSFGMs82579SscTTYSkt+glj3pNmqlOLu6iFfh9FzLgMOzY2guu4MFEN+4plcDPyzl+Akza6HEixx0yc9ix+8EoQyKDN6R5gz/ZTeghiZI8iQK+3hGT/MKAFivmL8ZyhuG4nBpyR3jDdr3rr1HaazxMa45uThHp0sYSOye3mLdiocHSZCc462vUbKGyANSVtC6Jx+EaJEVlHoPHgse/du99vsvZJgmuDwZM47d29zfe8+m+Mn2BzUvP/Fd/PpL32R/aMZ1y5e4uVn3sWtL3zewtp8UrXmbKLNEKhUHb73ohIxfQprxLFcf/XMn/JMqhau32nKLIgkS2QV7FqGMncMNJgwtAR+oeZiy9qx1EQMFTknQrSDJ4TK0qi929HUmV1dCu3hz0TKqLrjraCwGu2QQyhjzVPWHqYvOT79fwvAen6R+AaWCnpyhvZJagdKESAL6pRy7sch9CGXOLyPCcmjRHoxbxE5B2Gl5uktRUqNIQVl6GUJ1LR7ZM9n8ntQGsDkNFVP3TsqaD+P074huFbDNDPmnpI+qVc9SClkIcbKmskQ+jk4BcUOoWKA6Yk0JBoRRhJ9SChAZLFcsezMTh4EYjTqkCAex+96KllP2e7E6LJasWJGLE4C7dbDWV0sb0F3Bbew88li901rp5L6e1HlTB0ibXaU3ZGi7PdV8L0q4b9ve2YRDOMojThqGEV8NIqJgyuxs0eqqu/BgluebT+2otOi/P0ccx2OlTQmqk7BnlHJZc+EnC3obv0zOvrj55SZ5K3RKMLwQi39fq/v+6LFdBIKYvMWTDAbWctZ7Z9KbG6CcX4GxQpO38h3Uy+6fvMzkB29RS84tFjyQIJYFVxUSVGLNflMyJJEE/ZqZCO0XF7MyadLxp4NUVdVP026HEIZoZH1OHQJVt50Enh9ssnrkwkShDrBhbblAw8PaaaP2B9XZK1tyF2zyaUf/QSbP/pDPDU94nd+57McHk35wE/9N8R2yb0bb/LVX/o1jg8f8d4f+wk279zhpeYSW1k4mR3y6eaIyfX38OnPfo23H644Hj3OrJ30BV7yh9EeGOv2xWHMCuswkxo8HWPoA8ak1N3iG6/DlTGEXnhr02Sd9pB1odHP3A3G3ZsV1R1GWqyc4kJPK0pSDIRcttZ1gZW1iHqlODUtUwcvXkNw6abNGWG9OnzjlXXxw9rxAutiJmcLeHMNnW3WyS3VIbJKHRLthLb0zYCkIpCkh4o1Z1J2uk2woqhfj0WYaBuqImxsbXE0O+bhccuSJafdAd0mjHa2YADn2GC1SKxm59C0Q0ND0rJl2WTcLG7jLRuTV1pleGTWZI6eDlax5ni6ZPNkxv6DPdKVKwx2tpjEhieuXOPu3j4/+O6n+Mj7f4B/+6XfZdFaW14Elur/Tl6kiqkg+wYDXdvUS0FVEqONwfXDwq2VosFsxDh4L8E7/+LIwpCsoAgVkoPNkvKcJYPai/TZHFuZDsrwT1NCIRr6510MCsJrUotP6Ne5TRyKUbFEbV9GYpu75Y9IXwyD6TEKHJ+8flW/FlagGbJrCbH0OVOKCcsVpZNEUHNEgjcHSXss0Wgdu8YOeALQqBkIRLXf35KcoV588zM9tfZmn/Js9X49/77q1ZeIH+zB5i3lnKl9TSPR9nPjPryQtHTZimAIit8XfK9RyRADkyZwaXODZlgDHZvDEZNmyHg0sHwdMYTs4cEJe0cz9g6OmS5W5GgoaqIjdTbGwYAUu+4x+7Xq0SJFq+BIrq9bfC5Pl1wSUK6T3ackpg2q8pmD3m3lKjYXa2D8j6Owvjg02DBG/KwL2uvtVDJoMjehr4/gJ18QMeu4iqP9WHPOmtYKHtKjJHC6K9iys/Kx6FVwPRGgurZwQ+4df8VppZ7/YzSbQDZDgn1mvqfX93/RIgZxaixgnW+s0RxFblP3Ayg6KuPFjHcLhris3SXFihlDtKpftffUE6WfcNoLyVBEMpFovxcMJYn4Q1esrVUgLDMXc8dkOuM0dUSfbWSw5Rr+a6rKPPISiNEgO9VMh3I0avji5oDDpgLJjHTF+46mXJhOOa4gFRtcHZhNhmx/+EMsR1uMLl3kgzsbfPFXf4N8NOfc7pj5V7/JB+OA9MqrzO7vsxtWVBpYtnO+PL3B9P3neOs7b/P2aw+YbV7mUIZlaI9nkjg37DBiCXIynto3l8puROjWFk6LRbcNrHfFaOnAnMoRCLHqO0chIuIdmXcWVaycV/bNzJ8MC49zPZE/RIgjYoJrbkw3pNj6qENFytlpHUWl8gMnIFmoJDoikiAoqUtkGzPrG7LZAi0czQ82PzhUkh0GOdjhmW2NJE0+EdYnvIp30J6YqinTafZuONp6Di2py2QPjwJ8crV1TWSlGg547omrnN/Z5q17r5O7JYuqY3h5iziEVZozTA2j4SVOjze9ALAiLyvmEfHQKvW8j8qHWXS5AzJBGlRdb+IaoflixaptmU6n9jmkIofMu55+krv376EvPsPjVy6yu73NrXuPsNBGQ+cCYjyT2zUrEXLq3LliB3oSK+zqkoVBESmvUdAy00PEwuwUKFBI9k7aQDfj5GtHFAimPcoBLKSspvOfb5XNqp+S54vg0YXB14M7FpMKSS0hW2NGc7JmCRwNhpSNUiguI9NKeM5UZ3ShxGDuMrVwNEOXLAFafa+hIE4FJdFEzMHdRNLrmyQH36fK0wrESKedI35WMRaKQjUTs61jUWsC0UysAil3+OwFO6RS6sW/ihtWlF5/EdT3gEJtlOdUrMG0+iQYreSdeEn5LV9XMo0IBRk1QXJHsqYtBDZHDS9e2+XaxXMMaiGnlqauGTQDBnVlGsfBiGa0gYaaRZe5dfcBr799m9ffuc+DxdyKuyCWj5ItoFDEBe5OmZmeKrBy6otM/wxqOZCgD5YTsGfXKUTchYVi1xdzgRVkRv3cMUeS+j64Fu+rUy6dZ9eUc0OiIWHqG5w4UpXE3i+4mUO0TCwvyGVBkc1IHrI5y3r00ANCcza3aupKUesmAVnr/oCeDlVNBoK7y8iSvP8z0mIvIzaLEcwOz1A2FSGGypEVgWCbjPhhV+ghejoouADTS0JfScVp5I+P650CPQjoixuHfTuHR2NVBqdZ1Z1UiVF5ZqEMjmd0Eu08zyaUKg90obJsUw2UqZu2Hhu+tbXJNycjcjUg5iUvLpa8sD+lC0rb1FRq0f6j8xc4PTdhfrDHF3/+nzK4cJUX/vgf4/0f/yG2HxzAz3+K5xYLmjCmS4rsHZNrgW7BW8vbvPHyFrel5d6bd0nNBU7iNqs0gBAw+Y7zvd7pWRKujzL0xVyHkrKICfOAWCDgAvU7WhGcc7drbqr2IsyrJeAe9F6UVjrruq6/a7ZFsWJWCqomopVY7ql4Bgx9IWO32hxEhqwoOak7Nxzax51NXljl5GjDGSg4F1Gerh96e/AtL0FFqMWcIHbI+EA9FwiTXTjsRZr297ygfZneURQiISk98K1CIpKTERDDOnLl0kWUgHYBuo7xpGFjZ4csLSwzqVvRrhpO25G9n2+C2CNluSCFRnNI3wpVDx1zWq3TRMwdXayYp8RgMSc+fED3aEo+r+S0YGfU8PVvvsps9RG0qnjy2lXeubNHFqNIwpnOOmZrROYkCxlzi3jtnLiJtqXXHQDe5XtHLwWxspucs62x5KhbcCQ0pVROGrdndqYHUnMypWzNiiGfdk+MnoECiFixvY6177RDKttHrBspBbh130VcW2iNPssjZ+/Y7X1zLohWwT8AtO98M6ZbIVoxZ+9dfF5QJXDdqQmNz755j2ICZLKuqaOShqq55Ab51omt4YKaVN5M5Gz0p0jRhfmQWDWEplBeZUMtFEdpPOzJwylgcQQp+2e2wzBi+2/SDo2B2jBVYgyMB8Jj22OevrTNs4+dY3M0NFFuV1M3DXVdU1fm2onNkGpQE+sRWSLntzd49slrvHTvEZ9/9du8fvM+0/mcNuR+byvNru1J+Fr0TQHT/8QQPFNJ+2uIFzkU1FDEAwXVC3RMHF7urJhA2I4qL0QQQzJ9g9GCgoqCZkf/YBWExs8RZI16lfvfvwHSz4Eyg0RBzM4wDNF1P2Vf9p/V0C1bB8jaeGFjTejRz7InmyA6O3AQ+3X7vby+74sWqaL9UzpqEdOCYDknONRfugGDqdbqdPDNg8p/r/LTbP0KiEHxEQTrnBRQpzGkCD2lA5SQpF8UttPbUEAkcWEJTy8yeXrCKNYMsEVah0gTA02s1hxwKC4ZtYc2CvfGNb+7tc3+aEzOK545nfHee/ucO52xt1VTR7fVScP1F97H83/oR1jGlkV7wPHXbyC548N/5k8j+3PC8RRZLZivOkZxCFWNZGH/QubBpQvktOLBN99gEcdMN7aZpdpGE5SD1Xe0LGpuJ4nrAi4IHSuiOyM68BEKUOW1BqZA9kULY3/VZwPhG2Zx70Sn5cL6AYln7uF33bNiozZct9d8WJMj/QZZHEzq3SEOa0qIZw5BR9V8Q0XMnZZS6peK5YuYaBoxSLkca1EDqKVMCkod/VBVIWdT/QcJoJZOmkT7JMpSUkFGQiJrRNWomxBWvb1bNHuXaDvVZNgwnc04PB6yORnx8OQho2ZMU7W0CCHUpBBYLEagI4uKFyyfCMhSXHdntBCidHSGuFiICDl6oieRahmYTA957ts3eU6+hn7qyzz4gR9i45lrVOmI7uYbvPnG6zxKCmGAqrIqVmQN/cGVxe5xcUOpYoJvh5vVC97sG7ywfmQN1rbiSoJlXJQMnCQ+p8rpBw1lkGP08Qid37Niz3UEImVDclUQtfsk7mLCoX+DF0sHmwiSvVuuzILqHXrQTCXqxacV+6hacJvaEb62cmv/eQw5Mk1YRKDtzHnjxb5Rg5Zp0hZBbe8W8iJPfa9T9f0ye0Bb6KlS8APMCwfJpjey6AIt9YatfRG7JrLWcYhYx59zyWQxtxEqvZYs6Pp5LYStFvTK13wxthcDDohPuFZCJVwYR568vMPW1ohrWyOe2J2wtVHTVDXaKd3AmqQY6e28MWRqydTWYdHFyLAaMa4vc2F3gzdv3OczX/46Nx8escILFzXnnuZs6Il21kQFo6SDCLntjBLy9ZdyIkdDUgvyUf6+BKNwbI9ZD55UMXrQ3K6u5xFBJJKTTXYu+Veakr+PaYzKqAMRxcS4HtZpG+OalnPKsySKi9o+Jo5wZkf97XqbpqcS6Sn9YslHAlmyuSf7QmV9phoCYz93zFaoWSH7n4sWAKN8KIl+0ndEVYhUhPK8E1zUJ05FqNhBWoVg03VL95/VlUn2/ir20FqD5IeSV8/ZF1aV7eHSUJm1EHWLnj3hIVpEc5UC12TJpdWcvW7JWCqb2REjjUTqKlBFExZLtm69Q0m5o5LAQiKvbmzw2sg2wvNpyQ/uT7l6cMQAuNBFZiIsqpocIvNb95mcu4he3uDaj3yMt/7Vv2H0ra+R/8WE7u7bbB7uo9WAm7MjmvGcxxlzWCdWn/gwm9WKo3/561wfXSZMtjicZXYFDvOCeV2T1aiUqgmsEkis2Ggm7G5d4OT0hIPlMcS6P3ijZ6EIQhNr60yCdxFq9Fw4s4FaTL7fYyl8N/b/QnCromsN/I+MOuqFI5RWUbCMBH+zXvSag21sIjZ0LHl3YxqB3H+Ojuzv54hZsEPHIsqT2Y1jhSZzNkQ/GArJb/x4JpFpQ0lONtg9xxIIJWWHoxKhxmiKlkwEUoJEg00uNi65t6iKdbXuQ6EKkc16yMnxCQ+rAZPhmFuLBV0W4mhIFxPLJJyuBiznQ58Y7HkpAqjz9cG6v+zNQHLaCg3YdG0KoF+YPcLJKac3X6ci0Ny9TfXK1xmf22a8OOajVy4h73qZ6dWroMGmk5/O6VTcMGFvErM916h4BhPG22d1ysqFpaWjpHTo1uHivxdw94u4GDoEOo8954w41TpT8QPU4LF1zIHZiiuNJvC11hOS6bTUkd6C7ITgegHxwanYemuSHwPB0TcxWkMC5hZLjlxam0oUXe9XRciphZIxAae6UycrlPlXZbyHiLk1rJO2dRhKHeY6sirYz2QbnX2/KOLCY7w5CaCd0WnlEKXsj2oC5kJjBEOhLNknW1inYdOGWuaCMeHPgLiGyj5X6eDxoieUR97fT7PShMjOKPKhpy/w+MUNJpMh42HN+ckYXbXkriUlQWpH1FSQ3KG5pV0taRdz6mbOYDhiOBwzqAbUDQzDJueeq9kcV3zqd77O6/cO6FKm9B4Zy3oqeqaCDnVOQ2dMEBsRs/3iBX+wPa9ycXMWHyzpiG9SpZaqnzVWhYpyScr3WbvixGkX219aLyRs5l7yrCdfz166ZHEE3D6wNUjetEUyORtdVGSzfSxEWCdUR2/67BpIj0LJ+ohzQbm4nb2lCOaJ0QNHIYU1Gv57vb7vi5YQIpVEyq3KwW6ulOqy5BKcgfZDdO2JbXuUcr4PHOvdHGZDlCqa2cXKHVKw5EqbwoxDo6zhtZCMx/MFZK08NClzPSfi8QkhZ+pKqIMwqCLjunJbZKmMjU4y211kKbA/HvOlcxMOxwM2usyHD1Y8d/+AQdsxiAPGs8xkOGb08Y9z7aMf4ug7b/GlX/jnvOdP/DFe+PAfZHTvIeE3vsDtz/wmWwijZsSgGjKejHmUT9iOwueaGd3+HUbffsBHNp9l90Pv5/VvfIv7r73CvfaUt2KgGw5YzJXRxiYvvfxulmnBzvgc73vqJX78ox9n/+ghv/zpX+Wd+w84Ol2ySv4IlULbLZs5eI6OnEHC/Euid4ioR297HVKGhsVg2QZRYSXap0fWWrpwS68t4UetoyaC9l2nUTfq6+jMFil+snj3WqnZ1nP0KH2yuX6QUi15dxGNesKKsCKIVQkgRYuvVJ7bUOyapRvK0boja3RsEJ0d3plBrCAF2tB5TWYtUyxiRUCypaDGEBjWkdS1tEmphoHlckWtgbisWcWKVTfgaJpoOyAqXV4ny5Nd/OnvFSR4tLlQMLAkmRhqP+xsU+y0ox0MCdWAYavUArUuabpTLnWJoy+9wsN7/y3P/df/FXu7A34nRo4lMKA4xsqYAx+kWA5GgJzI0WFp1LUerNeMcmakxjpwEPIZ+tE7TQpLov1/o1a44ChDVvomRoMdftG5+qzJU3a1L9Yqb1LMfRh6GkVEqfCiUMKZDtq+pjguCpqY/Hmwz2a5UijQYflAyeZ6tV5IWx3vPb6wRjywwqV4clB6mqNMTi9TftvcufMIn7xdxMqJQO1rQo3GE0tzLah255REeaY0hDM/gz/MQj/skv7a+1ZQwgHBxOmFjsuFQvanRgLDCi5Nhrz/ifN88PolRkNhsjUxlKJdsjyZkVVQiTQMjZIRy+6x9wvm9lqesuyWdPMZcTCmboYMRwOaOODpaxfoPvgCzde+xZu3HzJLkZV0lsLNGm2wz5k9LNKQySwes4A1N6b1qPphj3bQe5JsFFsbHmVQVzURG3ugYo8AnjEWCvJnvE6/zoJrhVaSqUuRJI5o+X1Zd99+XiKe/2J27s5jBMS1mUFBYnAk2O5TVtt3C2KTnDZGTfekGMArWW1sTb/R95u2ZQn9ZyHu+mWBcdYRh2DwaHR0oww6s5kwamm5Xj2CbRqFl8TFpFmVqloHCtHzrfZQ5uBQc9a+85bo/HTwVNVkM3M6/3siwnZW3t3B6fEhjUQmMdLUgWEVGKjByYLNAwniMy/UqvPTQc1Xzu3w+tYGg5R4dnbCS/f2qOcz0IocA6mq6M7v8swf/SOE3V12f/CD7L7yTV77pX/NCx//EYbvfomvfv6zhNDRaORyiDy/mnIxCMN6wGtbc764sWTwqd/hDzwasHHlCd756re599Zb7C2mvKWZ09DQ5CWZQJcyDx/uc+78BoNhw+Url7hwaZfHH7/IbHXAbPqQ2/fus+yUo+mS0WiDk5MTulXL7NSn465aVg7FSxEsQ494FOt4irJGYMSsx0XgRwkZy+UamqAQh89tw/TuMLvB3Kkmc3rYptCoH8mCOwPs8bH3TmcSN72ozXzXlFz7l21aEjyIKlk3noO9ce0W4hTMmeNlM7GqzE6aS3fvuhXA21AkWgFbotJLJ9nrBsQRhhioB7BczlmtWgYb9rk2RxPG1YDFcsUgbdOeHJlomI5MRW8qlnLoun1R6SO7y3RrjevrHt0RkRHmoyEno4a2W0EHsTKBbgyRQYb02nc4+L//Q37wxz/Bt5Zzfj13rKSmwfVklJ/NIO6qUBs+Hlf6kxC3fdKLNk3Pq70uKrkmpCSOSu7MXiuG05+RaPQHakGuTDPj40AQp/1KsWjry9Kwzb2Yk+052bvZ7Fbmynf+FLFBlmqHlMoayeuD3yTatce1IOLZKVjBkdX0cgTXO+SiYNF+3YXo+gpViqtPccv/GnykDpWjlOa8cSm7odMFkSnBnP4yYXxwh5N9j1wOpvJPLp/FRKGlmCk/kz1PjqaWQsJt0cEPeilFHYV6UCaDmid3R7x4aYf3XN7kye0xLZaG2+aOk4N9FrMZEipC1ZCrgFQ1dBlNqW8yEbvHktRGIGhLaudUgwGDwYDd0ZBnrpxjFF7g0vY9vvnOAx7OT5ivEilXHsXvM8jcbyWhTNK2BHXFw0Fdj4jTXjFGal9nbQQ00zgmYmLk3O9TrXYEL0SFta4KLTSiEqIZAoKIIX/+PWxsivRpyX3GTrBiJ7ojFZLpoUTMFt2ZWUAzrsU0NKfLun5WUupDXNUdeClbIV/cUnImtbrs5Wct97/f6/u+aKljhGAPYxH8BDGRVklFKOhF6aajL7fi1qmiLZQSiRyco0WERkx0GQWbG6N4R2YPcBk17j21aThi5cFVfgPU5omcC4nzp3MenM64WA/ZqhuqBoImgncXGaOT2tQZXB0rUhYejsZ8dTJmEQY8szrmw3sPuXh0yEBr5hkeSceqqQk7I2bLBb/5f/m/8tJ7PsSLf/THePHqLrd+7bM8mJ8wr2qGuYUg7FX2mZ4ebHI8b/nsrrAfK0NvUsOd/ftceP4Jbt26Tag3ePHSVb66d5s2L01LoJlRM+KxS9eomiF78wW/9eVXOJqe8J03XqWKidEwcnh4xM5kTLs4Ymd7wrUr72JQD0ECi25Fzsr+3iP29g+4f3zE9HRB19kBlh0Jq8XcBdZdu2ja4fkS9BaIPR2ommy8vB9AQaNFmxOcwnMoPGTncR2lEys+DfnxrhGBaGFUJf20cjpDO9eqeDEURSjD+YJA7XNEclCqAFWyoio65dWjgGC0C/b3ghjqYB2TfeZOszcu3lWp6zPUBbnBLJAxBMaNsjg95rRdcr6uGA4j1BXLpCxOMl0XWR5bNRWi9rH3ASvQSuiaYEXJWnhqrqYyu7rYU0VMsJiamtloRJotsa7MOHqpjR6JKMd7t9j4zGf4E09fZYHypWZAlzu2A+ROmaIu6lZIrc0LC8FoYNcFJM1o9sGVUlKF1Q9Tv0aqaPa05WDzZTp3u3RaxIZecKnZQrXcALVDR84UtUlyAU37Z7vyNRGDW4rFkQ0MkSuFThHkZ1+TSRJRKkd9/c+1zJZxjUIw7UDO6nk93sF7MSn+v8qpBvXu2YAee3pwtCEW0aXaQZed8il5Kz3NkL147B1B2fU7tlgtDsA8mqBIjJC8mAs4/Y4P6qvM8ir27GTMRuXKiJ52LGh0cKQvo2RNZmdHGETl3Rc3ee+1bZ7emXBtZ2L24DaTdE7WlpODA9JyTmhqpB7RjCfkrqX1Q7aMc8HRQitki1tOaVcduVvR1GMubo8ZNkO2Nrd4+omr3HjwiLfeecCdB0fMdGVrR7C15IiJWLXdp21b3a+9ayzE2KdhK5hRQAKNiM3y8Tl3IRmyWujMUpYmt8RnOoIGgprmLmumUVPJ5LJfhgCdTdXOkn2gZfBCXem6lqqqTIPnaHDnpomodj+6fFZtblq+IFh+TU5OWdqzF8TC7zLQBSGkopXyPdJ/7pKO/Pu9vu+LFkHRygJzLHjIdQ1epMQQDRZ2lwaCibm8A5Bg3UVwESj0iJYvFjuwUulkgmUFqIvd7JDzaTDBRtLHcnj6Q0wSmqw8kzM8ekSVha3BgLoKkFsUpc2uHicgnaX2VhJsjkM95tubG9wZjxiljpeOplx8+JDIiiwVjCp0JIQGmvmKZu+Qq/sPqH/pV/jS3Vu8+8/+FE/8mT/K6ad/m2fOj3n49musDvYYNFBLxbSu+XSueDtsscwnzNojHlaBo40ho0oYDoYMI4wGHTs7ViTVVc0wBBYnD3j77Y5z53Z4cO8eonCyaDk9ndpmqh1CJLVLqjoSmxEbN+565LpQVZGrl6+yvbHNS+95go9sDEjdioP9A+4+POTg0RHz2YKD1cxG1/ugWySZfU+CQednOsnkehE7fO2GGpVjD7pLz+zrgxcKirtRTHdggjJfDz65V6RY+nDXh7AIJjSM+EwkvPiNhpIY3GupwME3yl48CpZO6r9IIfUHYonzzq4mDuJQrCiaut59VWLsqx5JEOqobE3GHB8dcDKbMhqPaAZGlyyzEOOExWzJchVIJHNCydoNFyjiVSvSu1AcEcE2fjNEG9SMCak1aI98dbG2LlbseqS2ox4EQkwELIju5OEDLgb43165wqqdcie2/OHTwA9+6P186nif3374kJkWBMChKr9OWZP9t67LAyv6tO/2UvJric8FE7fj+mZa2421jT8Iq9RRpgUXxNUoKCuGNNh/20cQj3Jx67JPGC+uDTL0YyQwlG+gFR02pFBztp3ZtTZRZZ3RJAalV06dFs2Witp4DPW4egkkTV4AG5qVSURRo0iioFqKOtvPQrDsFhsTEpAYDdbX1BcMhOzFl5i2wlNWo1v4kaK1CIRQBi16Llbq1kVdrMl4mjelKMeTVD0DJNjzUcVITonKP6ghIoFOYFwFnrmwyctXt3j+/JiLG2OG0TQgcdmxnM9Zrk5Z7h2wSEviZkM1gc3ckbvWKNtgIxdsr7bnWELJK7FVUnRmZGW4sclwNGFjMuL8zgbXLmzzwmNXub8/5a3bd3jrzj0O5x3L4FOy1ZA4DaaVypo9oVZ6ZE9R1ynSuyFD0WaJFSXR95xskFbvQBKBkAPRKeekltArGqyx9b1IvLhXgCravuTOU5IlHEsMvZNOPOcI6HV+NprEnHOoC9VdtJ1TwtwoFhSX8GZBrJAVp1XtNjqS6PSq9QL/GWkBjJ+1BMW1i6SKlcGwWDdbuF4wNCbWxt2C8Wwi4p26LzSxIU+tdxxAj9QE76Rj4aQFQlX3EL3EQO12vYRatHVQNlctz8/mnO4/YiM0xMZV1cmiKbq2IyVfiOJIUDDq6MHumK9c2mZZC+87OeK52/fZWlh+RUIZpMC4jQQS3H0IX32d61evUJ3c4N63v8Tv/MMpH/1Tf5oP/PgfZtUt+dzP/xOmRw/Z6irk+pN86uQh9595F7FNXBhcYHGhZe8k8Z6X3svr33qb/W++TlMry0czntzZIm+OWGwOmR7NGY3sMHp0/w4ptQxjw7iJbI0q7h88YLWyEDAJwumpILFmdnpMiDV1HCGh5mTeUjUDJLwFCOPBgAu7O1y7dIX3vvh+Lmzu8OBgj1v37nHy8JjZMvHw6BGnqxNW2iKV9toO7WW52P2VgphgFB4BkqE41t25bVoCxCI8xXEzR+fEqBr7s5I1oT2EXSU/JFzcqb75AU4zlq7YLbRuu7fO2XJmJAZaWqOUshpq5IhMwpABCYYaVLhWx2e+RFnrOmzuSeDRdE5EWC3nZjvPAZWGxaqj1Zqj0xmabOAczptn+K6NVDFxXYtbsbEQMOvmAEzzk8uJ5+4pGTQkCaRkB/yqbdnc2GBjskE1W9DEiqoKzI8P2dHET57bYd4mrrx+k8Gjd/izH/koH3/ve/j69Igbjw55e3bKAwKpqu3bOrrZa3lwdMspCxGjhPsUVt8sU+l0vbgJ6mJIQMqML7X7Yhu7oTLJiB1TQ1OcZ4bC0Qvu7RXEaByvlc0FpOY+K+iFGHho5IJkE+vijW22TJ7sQXXBtVAd5XNaNx2VnsLOvgYsDskbshDpOoPsY6Gjghd3wT5/kEASpSESs9r8tWLf1eQGgnKr7X07zYZ4hoiGipATWdz2aq2bW3djj1YjJfPD/swKPUwrlN2hE4IhiZhWwwTtmWvbY97/1CWe3hlyfmvAoKmgM71N6jra2TGr2ZT24T6LbkXVDYlNTbucGyIhNVJbs2GJvgnoyJWgVYWoTfIOwbU6WaFdUsWKjSbQxBHjQeDcpOH6xU2ef/w8t/ce57Wbdzmez1mljtM2MT1dMl+2LLqONod+HhPJCtTisImYHkaQnpu0fSn7QW/FZXIRetnHTKhu1gMNVjJoCFRq69TGhWSfOWRoW0aoPMRSvaAptF7Xdb1souTpmHgYp/3U9Tqm2ynW5pzw9SEUWjJg6Ar4tOyY6MM2sz8DIdhf/h5e3/dFS1VXNKE2nl+cgw9rqET80PmupFvvGIOjL2XoUy7WWxxRwQZFSYHcQslNsQe5cPDg6YcuBIxqxVFXRA/ANh3jo0NOT6dcG50j58y8XdImgw5SyhbvLobyD7BKu2sib16YcGsYuLyY8d77D5gsT2zTcDdTUoE20Ugkxpajz32R8aVNQm7YlI6Tu2/x6H/4p4w/8WPMr22jb97hwhIu65Dw0g8x2Mk8LR3PhczmsOEzN++zf+cNvvqvPsnBw2MG7YqNzZr3xQmzm3t0G5EHVyfs709J1ZzTdI+j2YpQBx7bGPLud1/n/GMT3rgz4NE7hwxihRKYq8AgI5WyyJn5siXlwCKdInFA20GbE81gzMOjfe4fHPHt8T1GwzHXLu3y/Hte5Inzl2mC8nB/jy+/+nVev3GDvYMDll0LCJXPBkpqws0QY8/RljCythde06caa3H1EEyjIUIXZG2DLt1q5a6NIH7IB6oq0Em2lMxUhslZsZRz8q3GHUKu91XPbcmSDBqWXDABc5A5LqxIv65MY5JtJgkglXXekqHLCa0EiCyDskKY1DXjemB6kQzDzU26+YLlKtOl0HffjldaP6zOrwXXdwRDVEQdmSJ5lozZPrUgDPgQSbBBpJULYYMhA12AzXM7jGaniMDWeGiUSzvj3QeJNM/QwPh4zuG/+RXOXX+CP/HeF2FjhzfHO/zje/d5DctRwQ9AwYoMRSCXUvNMARFC/3siwX5WEVJniFRKtokKUKFUsXaQ1lM/XfcUsK8tNBN9jWYIS9Ly/Tz8zhsh20EElz/2acOlu8XphZWYeLES04kB9ENGpUwsskD0Mhk9xuCuNdsnynR6Fe1DC6sq+iFm7+eWM7uv0QqZKGLzrEKgCoGk0ZN5rbsORSiOsysh9KhcymU2T0tWmzWWcvKDzwr8hFn+g0Y6xOgktUJZkt037dEbFz+roT/jAO95/AKP7w4Z19F0F5XFQcYMXQzk1LGczViezsltIldK3pyxHM5s5lQsjihBCWhagq4gRXcgVr15A3/OcreimytIJIRAE6Ea1TCA0aCmjplzYyHljpQynUYWbcd00XJ3f8br7zxg7+SY1mdmNR0QgzntFFe8Q++KVNzG7xo3tTC2lLKjKOqTmw3RCQi12qR52x+CN+1WlJZ8KXGXkhXFSgVG9RYI2anIEv2heOGcMilD27qMO2fITgiqZfOg7oqk7HXaa5eswPXv4MjSWr33+7++74sWKTfNXQIBqxpD9Hk9fkMCWCfoG7BE23AMAjYBbAg21tve17jI6BtdRmiwyhasU+gooWdlelAZ8CU2UwUbpldl5fpqRbd3gGShzS3L6ZKkCfUsGfGDwwR6NmiwDoHp5ohvTibUXeb9+8dcPzyGZAdHrCqquqFdLVkNKubDwDaRzcUh8s4Jg/GIUW5Yti0XHtwj/vzP00zG/GB3Qt3VfOdkn4fLjife9T5+9bd/ldP5MeeqBjmccV4VHu0RF0tQGK4q4t6UZlBzMpvTzJY0g8hRdcrRYsHV4YhnR2PGTcXo4ISqXXL9qONqs8VoHFl2c+ZbA2S3YbK9RTW+yv3bp0wPZxzOZky7pc0p6WranGmXK6TNnG5MGW1tcHC0z/T0lLcne9SDEbQtnW7x3Lte5vzJPkfLU2azGbOjY5anc3NBOJyuqNnbRXq3EtB3eBaPnwluEc1mYMRXlVs5XSjs6atFKJlDonWqEYEYLLGSEvjlYXU2AdsSKtFsaCBQnGu2BktYk9ER1s140eCrWIMPzaPoMEzIGNzNUuYnhRgYNBWbwzG7W1tUoWI43GS5SiTvtDKCamUUCZaNYm4A8cLKBgDGUPXIgcbQ60HEqx6jUjLZrdJzMq1mToJy0p2wWmUeHjzidlpx1K44Xw/4kG4yQUjLRKgD7XzOVjOBCIPcsrhxk5uv37BC8tJFXnj6KW5OatrCP/SnKICSNBFj6BGXku+h4nkjBKNsHT1VlH5nLdCNqI908PufrFotrsOS1Gv0iUej6/qwMHuo0x9mLzNEzAy7dk+za2pwDZBCGWuIZhrX3ZW5Lhmb6t1PIu53Gvvchtzknvm2wlcIlJ/Ti+1ofT4aETISbEii+PTe5IdnJX7QeQCiOPVU3CN2aNnPJf3PbQdWSbmxJGihk9iLqi3VFnKr7rRyhs/XXhuUisrQw2CH3vaw4erOhEGVSLml08b2bHu8CE2krgYMqxEb5y9ysmxZpSXLJdTLKVUMDAfYSIzkTQNdT0XFqGiXieLUTLTzQRcLOlaOTnjyrlSEUDOsAjvjwKQer4vmbPvDKinPX49cv7DNF7/9Orf3T5guLS2ZnopxxN91kdlHYkS1fYjOm2S/9hKA1BHFB6IW/ZBKPxlaNNg/AYRMlztz1IbY6/UkZ7RzZ5Lb1MnaFyFdULeHK7kzPDl3NtG8iPEtfTdBzr4nFXG1U2uOzoj6WauW5hwRWoxU/l5e3/dFSwCaqiZronHBYAp+M51zK5u+HVJ2ccukTMubEExiYS6isi2YDRWCh6cZKe6mt5AdwM/EKhps5uhO8nk4ko0L3u5WPDFfMj08hKzMUkcThCY0FqSm2TjtYBqBSoLFeA8bbm6PeNDUvLh/ynMP7zFcraAaAco4BDZjxaN2ziJk4sC6pSiRQahoMuxkYaSRLRVq7Riv5rQV3Jkd8ltv3WT1r/45p698nlunDwlDYf/tdzj/1l12Ys2zmztMzmdOHx4yWSWkqdl7eEIT4BlGbDUTXkkLhuPAk5sVL6fM+VQxOsqkG484Pe2on3uGZvc8b379m4wOV1SnAw7eeIfq0ox5FZGtwONXzhG7CkkVj47mHBwsmJ3OqTthKzakxQmJmvv33uFkeEQ12uJwb4/79+9wcnpM17U0g4aLF89x5dIFBlXFyckJx9MTFsslXVoLKJOvmZ42Cgbpmx7Db3yy+1i6zE6zQbhaoG/LUyBltK6wYFUbLIYUi647WorqXkw7lcUyDUq8nsHCgOZex4LtSYAHNfUZGWb9XOMbdsCF0r1ih26FT72NAWKgrmuqasBktEOn8GB/n84t2uVgjSTIJr4tH/ys4r9X/ifW0e8S3VVjDoq6BRQWgzGvbm0wef7dvPTRD3H5pCP88q/QffsV5m3gtfmUu9MTntva4LoOaZc23G22mDMZDqiy2VuRREqZxfwR1ekO9eQCLUKZO1SOPTRTh9qavE59QFxyDYo9r/1Qy3LQF6RG/M88A8NmXcV+ky5x/SW9LqVkAY5i9xy1gK4SNS+5JCkb6tEG18Go9uNDRJMjFKkXhFNgYKf67CCzvanVbO6MoAz6bjVTQp5L+lcO2BBT7J70Ij1vyEQqUKMJUm5NxxdM+2DjGAz5kFLDuXNPvUgx15zPW6KkOmdEKlQTWlA4/8yo2Pwicft0DL7qPUlXcBrDrlFWNZ2JfSd2hlC3U6ZHmVFdM6gaC3VzPVwG6nrE6Fxgd2eHdHDEya2b6GzFYHzKKjhVH/Bgy+APpD1Xqc2uixOqWAoou9ZaNeTcWcOiiZSX5pbRTIyBJkaqWCEEp/CMqu+IjOQcW8Pn+Prbd3nlxj3mC3qTh/r+saYKHeXI2cYBeEMk4jonNdgzO5WtwZ4/TR5SiGnkrIjPhGjrsXdouSC90JLlpWpREmd+w2z+Xn3nlD3oTvv3EXGjQSlQimCbYl5xepHSTAio66YkI/Kf6SFgPdnS/tsXh2sTikiNEnwTsKLF8G3XsBRsNxKiXfi6wGueSKc5eVUbLA+kdDXOBeLpplaAaF9lCsbPDrRj0s551C4Y+N9rYkXERpMr66GIEUvOrOqavLPJ/XMTzs9bfmDvIVvTBZmKHIT92LElSsxCVxltMD5t2R41VNHg5i4qO0kYhyENmRAyGpbM5yt+68bbvC0rVl//LHe+EnnxJ34Y3RrxYDFlsVjymi5ZpszW9jZ5NGBITSOJa6GhCjUHq8T87iPeXcP+OWFRZd5gRXeUuJgDdS1sbUdkPiMsr3Lh4nXu3nmdg/sPOH/1ceJJQ0pHDC7VhJHwzsMZN+7O2Ni6xKVnzvP8eIcYar7+yhucLgLVqCKe26aWTDs7plmccnWQqU+XnKYF04N97p7s8fDmmzSDhsFwRN0MeOzaY9SDIat5x6P9R0yXp32ktAVImlagk1Jk+FTcAnWKzRwK+MZCoAPP6Ank1tzTKrnEZbijzBNGZa2erzBzcZmOG2PwYXP2KgPUTPNgD7g6P/0/XfOKu9/UzycN5Nz12S+l2z9dLlAZIBLZ2BwSRxd45949H23hAjvNHpxW9eiQqtvIQ/DgMzvErPNyvY+E9VmLdXMhRA4mE174P/1lRs+8m5eef4HNnW2+UwnzB3d477Tl+UXLPHSczpZ8Lc0IMfLkeJMXBhvENlNnQw+kEtpYQxCalNHkHXYwr4ulrnoyRi+aNipMRW0yM5Vt8LHqUQrTAxlpYyCK5wXhxaI7qYwGsQyo6IJVqSpnns/ebMM2DIrPPYxeNB6VB3UphogEzUblBJtubHOu/HCnXGtbj5K0h+HV6e/o+0u5B64cRyu1blYN+a18AJ7pah3R9X3GdHn286vTFJYw7WtVBO2soO6DeQuC5eVyToYh2cTFQKbzcQGmi6lcy9VKdno1o+LC1OD7Z1KLjgjBNd6ZqhI26pqr2yOmD28zi4HRYOjVvzKoGtNqtB2igXqyyXAQGSyXLE9ntPOO0TBSy5BWWipWVE1FCBX9vDPEtG2pJVfBMpg6KyI1lABF+5aakqEP2e6HVJHYBEKlZ5xY9rwMonJxp2Y0Ps9wOKKSmldu3GG66LwZsSLCXIFnjmdHblO0Zjrn8nwpbbD9KST6c8JGiOT+1zl3Z2QRa+t4GQlTigkLSlSq1B+DPZ2Noy4FQQkeflfGDhQ0saBD9HumknJBlTEhum8MWV2Pp5ne2fD7vL7vixaiRWcTTCxYEnHKdhOCeLiXwVmSM8SSs+F21xhZaWLge1Dw980CIUUilVnYykalHqiVS7hX9htoCE8iuIjJ+MNNOra6xL4Kg0oYVzDwjazxTTZlsSmgYrxvNRzx4PI2s7riqbv7bB8f0mTjq7tsvKWEyKyqON0MzNsVrJZs5IY0GXFCy+OhocpKDcSqAVqW7Yov3bvNN46mpPMTJAnhwT6v/MbnufYHP8KDWcfs5JSI8s2TIzbmU57f2Gby7FV2r1/g/pdeIR0tSFE5PxhyKURGuWa+jNwY17x1acKbQQgbI5584io/+JE/wAvv/THmR0v+7Sf/R+avf4PX7u+z953XkCxs3xly8YkVk0FgexV59TtvID+gpO4Bi0VL3u1IjyAtxtx9sGIrBbaGQ4ZxxfY4cHrUsUwLRjEzHDeEoHTtlOXRMaed8OjOHaQacP7SZS5fusT1nccY1YH5yZzDRwc8PDmiE0E0mhg1eMql2UNM05F0LawNZl/PHmMeqwKDGteek8+nwikicd1IztZho31oFskmwgJ9mmUO0HpeQx8U5nZD675Mu5Bxm2GhSJz6MP2A6TFUM/PFlJPVglhXjOqK0WSLyeYuKrc998GKsqRnNkPcyYLPAbJT1KYv+84VCiDTo0JimhqNyPYmm08/wzxkVigSG/avXubzo8D7ZoknxwOGLewoHGrF66tTvtnu88EnLjJok81mwiB9gqIMGGGbo/t5bfvVZB2oCLjeQ0uClQRiDj16pTnZcy3SF6T9nBQ/xLL4PLLsBwz0uIb2p7ftJ9oP7/QCRN2S7ru2BDvURc1nZf/nk3KjuA7GDuseBZbQjyYIrFEAkUClJuhOJWNWPJ7fuRINFv5WeSprF+3narK9fyvaU5WBfjmDZpvEDoZOu55Lk9nTk1reR+vZUaqZyu211rrHtdFBAogl14paAWaBmSYKLU1dOSQrX1chO2YmSgyZrWHFM5e2OT9WTvYeslp1jCcT+xmDshVG1F2iyok61NSjIZGK1XzFwf1jVFp2zp2jreYsFAYhQhz6GnYrfU6kVNJgGxffBzQ2faJtFuhytoKlXSf3ilSebLxG8y1OwRqVJgTOTUZINaZqhqTUcuvBlIP5gtNVi2rJy7F9wxgAa4r6IbsOcVW+TkI2TUoWpQ3m7AoSzd3mgvEiZgbpkVmb6eWhcfh6EXPgBaeasiraltwgyBK8GLVZaaj6XCPpkWD8+c/q60oLGqdmMMpOrQseymgjLL6X1/d90aIiFiTknWCZthswdXzpIqJ6N+SWR5tMixcXbkFDaFzXUtDnWB4qkX4DLOFJ4ihOQeeA3tGwHuCnXOgy43lH3SmjpmJEMNseBifbVuj21QCjUDHd2WRvZ8jW8TFX9h5RdXOy1MSckU6YiM3SaOtMGo5ZhchCYaEWfpdDoKkGhNTRdis0ZcKg4q2u49PH++xFWB7NiVXDUOCdm/f52i98ksFju0xTywWp2AkDZDyhHg9p94+4c3zMUTXgC/WKk9GA4ahmc1BzoYlc3tpgROTqZIOD3HF7teDOjVu8dvzrvP+dQ55+/GnaSc1qd0IcCo89dYnN0RaPXXuKxx+7ztGjezxzdMwLJzNuHU7Jacbu+TGPPbnF4cM588UQSYGNYU2sah7cP+T20QlHi1NW7ZJKM820ZWM0YHJuG6krjmenLOeJtm053HuH/Uf3iNWAK5eu8tRTz/LUD74IacnR4QHv3HqH/aNjEoE2R4iRZe4IESpvG8zB4ahacCGkFyB9lx4dgs6emumFrj3YVjiX01CF3jafnYgILnA1d0d21MMt9kVknvG8mEgI2h+o4vSiQP8+y7YjkLmwu8P2xoQujNja2KSpqp47ByuabE6MOswcPR+Efhq6otS6LgTMoA/iGRwi1tGNd3Z57tkXePPuLVI298ERicf+yI8xvXmLz/7W73IRGKqy0sRkOOJcjFzc2WZwumAqc+a5s0m9YgF1A4EmRFrbcb27iH7VHKHAUVexzTu7HbyfoOwOiH5mlXpkvdq1K1od3FVhbg7/WZMdKOZCtHgFCjIlRitUIfrMJj+Eq4qkhigMBw2akwnvQ3Bkx2LwbfikFS1JDA2OCF3ubKmIjR4QNXt29105KiAxEIM5vxovWi3Dx1yROUjvfLS4F6Nu+vdwjULZFwt8p7EgklaMpJQIla0pcLOCB80VwadS2UGrhV4oQFDoKYYyGDWq0DlFjyOfm8OKF66d5/HzQ8ZhwfF+w+nJCct5i4aKnGBVDxgC4xgZNCPSoiZJxenDR9y585BUtVx/8iJVA5pahs2Aum6syYjm9EypI7UrK9JTR1oKoWmoQ+OIoxVfnRcsAh5CarPuXNVNSe8t/13oxhgzO5MxsarQ9z3P7o097h4ccvPBEUenp7aPID2VUtyt/STpgtOJ6aRCDAR3PXaOYJko25rlKhhFFWPo17t4gd5Tu/6v7E2RSWzKyeVf4s91OcfWhbtV8WWelcV5OJ2txXnkAz0DRvA5qQEYHSd8T6/v+6IlKraJVQb9qVpuQOFmo4ijH95BOHQVvAsWa7UskM5x/NrFVep0U470Vas4tNfbYbV0p/Yqm2Lwz9Jk2G07ZLVCsXhxCea5p1SiVUDyerERa47OT5gdz9i9/Yg8X3A/CyNtGXtxtoowQBln2F1mhgl0saQaR86HTToykUxd1SRNdFm5XSV+5WSfuwMbeJfnSxZdy+ZowPnpnJPlgluv3WQU4MG4QoYThucvsVq0LGdLclPxTs58uRKWgwEXdzZ54emnaJ66xlPPP8e4mRCbbZ57+ll+6wu/zZe+8lkWs2PefP1LLE/u0AxqNkJisVqwWmT2p3P2jo74zs0bjDa2mGyd4+LTT/HyhSvsbJ1Duyl3D+6yGicOp0uOl3NyJVze2WJzc5NPf+mrnNZK0I7V7ITBcAeRxLNPPUEMgaODfWaLjvsHxxwtWrKu2IyB+eFDvv3qCa+8+hXObZ/j5Rdf4A//oU+QV3MO90+5c+eYu3sHHCyOWemCpB0pmFo+EFj5MMEo0j/kAutD7wx53A/ekyLipZ84ve477ODFnRkW8FR7Z9959x36jaSKXjSJ0HkWja2tyhwHnutSBaCuqENgWFeW4UFmPBqxMRrzKB94KrhtbpXz8kUrEz1QT5xuyQIr54pMRyi9+BTv5CqEZrTJeLTFxmhClzOpS0xPZhzWE6r3vsT+dMEXv/AlmtM55yVyYRV4/7XrjEcDQk6MNJNXdrguaMmajIHQZHQPdj2SOiKF0qZEHaI5YLL209ZrP0xKzk551hWncqQgqJ5j4d1mf+/UBd2i/cFuBtUWvIPEthgsrckbUbFN2wbSmQ6hriK6mNvnK1oXsUGoqmes0GpfX9JrUaUzUR2VKrW66NW7XPWvib5nZYAoPu/Hs4PK7iQWiBfVMjTs3Au90yf1PID93ZRtzRjaeJZusn036zrSP6ihfSstlJdPvBebpVU6dSuqssM9RXthn/LKzibPXNzk4ihDrlmeO0dYLJgfz+DBPnmxYrE5YrOpSYMBLUsGsmK1zNy/d4s7h0e0VcvJbEpdC5o6losJdTM0xyVWaKd2SepWvscHFqsVzWSDwXJkWsNoT2Xu1DRu0cL+pK7QKD7lw372kqVSTB+aM91qSSWRjTryzLULjIdjdu9P2BiNeO3GPfZnnbtLi5bKrnvw617oOhHTpxV3lUUeSH8vtVz/orUsSd9lEZfNwa99aX566qtovVT7/SWq+JBXtQTmov9ye38+87X26Gs/PVpco1mK6ezC876p+x5e3/dFS/Z8jMqFZFGiC4UsXj9hm03GMjLKM9kJaLJYdHvos8PgLqT1xVKCkbyoRcuvlT6OO4RyI+1rYv/fSqOZ8wqxWxIFGoVBDFQxrk8tySAWCR4lcrq5wXzSEG/cZ/RoxqlmHlVQdXA5JcaVcKTKRCI7GXa6jmHOnIqyaltk3nJ5PDb4b9wwrIWDAL+aT/jd0YTN0QHhJLFU2/02J5GL4wHnN4Z89IV38fU33iYfzxlc3GG7qTl45y6yatnZ2KDanfDkY5dohxVxMuRwecjoaMJX33iHq5ce48XnnqIenmOVK06lIo03OPf047zz8JAmCYPti5zbuEKez1nOpyxzJjKFNnP//pSbt+8Tq9cZj7fZmmywe26XJx57lve+dImqqjiZntBQcXrllHYW+eI3v8D5x8eMwnlOZ+Zk+uLtr/PkpQsMRXn3E0/x/LPPcHzyiFVWHh0eMz1doaFFQ6AOK/Zuv8NyOuXaY9f58A99mN3tHQ72Dvj6q9/im2+9ydsP7jLrlqhkupSpibRqg89yl2zApsIAm9lha87GSmTvmkPB40NJoSxrSr9rYzFHEsa3iwAVIl3vhim5KlEwqL+ywzF19k8I0SzGmqhCAom0y5aQAkcP78N4gy4nQmgoE3rV12vvvKksQEq9U1LXhBWtViyuLPtAdqhlK3Q6INYj5m1ngYyx4qhd8PDhHnQtB6cdXDrHztOPcXDzPk0WmuWKxy6cI9QBYoWEzpGiitwp2ilDTQgrOtez4M4qAdN9OBLUob2gXQhu64UomVQ0OPaXHJUxV42CNToIEpSU7HmsPBROo9nZY7BDo9OMSrL38UNbghi159RciKZViyKMGtjdGjM7TeyfJDrfwcsQxuyW20ZtZWiQfrZTKigWpoGypG8rako+S6cmABYgV+IUQCbU9v7FBksw7ZPpoMTnBLnYm1DKZ3OKYIecePefwYvachGBktujthbED0ViMP1HEJ855m4l/z5R1k5NjW4PTx0XJrDVmHgpJaUZjdm+dJHBeMTyeMrB8SGz2QHz4ZDT7QnjPGRwOmN+OOP2rXscLWbMFPYPT5k0AxTh9HROVc1BIjVCHTJdNyWFSKIidytm8yltjKSTY0CITeNMpCJ1bQ1lDCARibE/nEWUEE2gTZY+7C3nxKI7Jg4GjIcTruyO2Bpf5fHz57i0tcVXXnuHe0czTpNCgCp3nrRua9bGOrjzLGeIwdJms403KfdUJfZNhooVu8FdQerFTPJTTH2/KaiXivTZLUXaaWvyLMoijqZimTxqziJcP1OSlo0BdwotmzBXs61NVRPay9lv8nu8vu+LlqWaJTOoj/TGpukG7xpzAILxaiU50LIVtE8LTGobTVS3OYLfXO/SWFeixdNu/LJNQzV9THAETW0jMIUTo67jsgKLjpAN4h7UtSdyWuVs0QzRDpgqsri6ZXqaB8e0i5a2DsxRtIaq7ahaZVxFmgpWyeylcVCTNyJHokzyivPdkEoyaT7lJDX8RlXx28MxB4OOc+fOoQdTBrNECkI7PeXxzU0utS1v3X6Lx4cVQ51wZWPMoFsiaUkjQkyKamC+ypyyogoBkZr9o2Nms1OmsxP2j/b59Od/HfIJ28MjHj2a8p2vHTOox0hVU00m7JzfYWP3GuMus2pXVEC7mCPtkmGb6HLLarHHXvuIB8f3efvhXS7dvcb57R0unTvHU5ev8uzTT3Hh8nmGw4YvfePz3Dt5xHiz4fz1TS5dHdEuZhwEeLD3VUIjnDS+GTwAAQAASURBVNvYZqPe5UK9w4ceu8bhwwNaHTCdL6BbkLsTFosTHuw/sGyJYeCl973ABz74Xm7dv8eXX3mFB3sPeLC3x/FyadRDVkIV6bzojWc69H5GTNY+YTQHoTV23w4YXW8MMQTPQrH2WoISo6Mr2RC+KEKSaGta1a2mnXVLakd4TpkQhbZrkSwMQmDVdZYfsliynC05ejSlE4xWzcZ3q1NUCv4esacOSp6EYNOy25w8V0T9mMumCXJtyM5GzdH0kQ2pFCF3HZPWgq+O2xVNlxhUFce1cON0weVmwPXdC0hV0VVLgkAVA0ktpbaRQJMtANCG0EVKq6hFgyFlWzbUxPQTyTpPfxYr32DFKbeEYskIXkIGKzrXLi4XyILdRxez1nVNFSuWqxV+HhuXr2sktWtzr6GJdcVk0BDygueuX+ZL376J5trpQ0OxQhCfl1UEsopQ+bC65FZqK4TqEKl6SL7QERFJmQpInQlqqxAt1baoawW3dIsJ/XOmS8oKXWdPeYJd3y37PpvVUJWcs2kv+mCy0GutzqJMRS/kW6nRKiVwzRGlXrjscfoxtoyqlnS6zyLWHj+vDDY2CNWQUE+YHR8xmx5y+uiQg+kJzahmRM1074i37j9kb9lxkjJ3Hk25cG4CK5hOTyzVOtgapy5nQySHwGLVkgLMU8v8eJ9VWjGa7FANGqPWKvu7hOBoytr+LU47mgPNdBv2XCa6nEjLzCAExvWQYT1iZ3PM5s4Gl6/s8pVX3+abN+4zW3bm9+upXqOhipnEgtl8nXOG7sGF2F4zlgGz2YuOhAlgwxkEqDAAZ199iaLlvcUfL+3zmdSppJLMLXg+WCqpz7H/8yTJ95LiPnRdWdGb/T6v7/uiRYxKswh2z8AwyM8ezuQwnpnT1hyioZvGypdMBgmW/knAvtKTTdVvZj+ltNj1ej4TRCrfvFir8bNSaWJLM202K2odK5pYU5PssBFFNNBlQ3HmdeSwyhzdvMu0W7GoErqCGGpSBYuopC4zlkhCOSbTSceYyHAwol6tqDrjnxmPWNTKFyP88wE8GAzIMmJj+wniyRw9vs1xTmhW7h5PeXpzg3cddAwFwsa2wc3ZHkgNNTkGlgTu7E+ZRZhsCMPqHCFOmGxMuHDxCs89+SRv3LzFq698i5PpHt3pijpFquGKwQhqHjAYHLBaXeBwOUA1sjE+h4bzVFuWWrnqOlbdkkp80Jlk2qMH3D58xL3bY+7vHfLEY49x68Ft2ix86L1/gNPZlLdvvc6D23e58eY9JAdWbWJ7p+KJp4bIdss3br7G0QncYo8XLp1nXAU2wjZNG2louHxtm/Eg0a5OOFwsmZ7OWa0SJ8cnXNzZ4oXnniErfO073+Kr3/kms9NTwIINDZagL0RbXwyV8/4qeEYLoJlWpId6y7C7mD3e3LsSg43FchWCeqaHFTwW+77ekIIfvD6xyGfEBPKqY7Fcssod9WrJ6aJFU8e5zU3uYF1YSSLV/wl+WxCYEIqg3Z6n4OLSkAUl9QLP0mVfv7JDl0+ZtysU5fTkiHMEQqi4s5qxE2qiwqxu+M7qhMvnLzMZj9FOe0tlUwltZ4UGCk22AlBLqqt/5jKNHefy7Y/SmY15rXcrow9sf47EKGRd+c9KvzeU49YO+OBUsx1Q1mRkJhtj10Yk7zbVRNkI2W3RVrza9W2qyAvPXWe6/5DJqOLh0r5HXVVUIrSppaQpZy8kLXJfLQW2TVSh8SAxqKMN2FNAOsvoCI522LFauCWsKxbrdhsJxPGIebsyoTCmA+rdHlKAvwCdCYGRNdsA9C7L3nViV9W790IdSF+8AGgSaqKNdnB3FiKIF40pG4q1ODrhaN5Sj0dGocVIbAYMmpogI7IkUu7oVpmDgynxISwXLfv7R9w/PGWehFkLt/aOeOb6Nk0dWC2XzOdTYm3RGDpwiserpxSEOB6yQjidnTCfn7Cxyow2N6iaBlGogxBCZahYv+ezLli+65kxKs/qm0RanRJSph5MkGrA1d1ttiYTBlEZT4a8duM+jw4O/fPge4StN0P/PLw0OX0nhZLyay9rpK/kR/WShXJmnaVz1Gz9a7OIFfWF6tJ0hl5SQ3I7P2gD+Nw1C1EsabclmDOrOtLo4ZWmMPa5et8bP/R9X7So4vHa0UMBLapZvMuoKTZk22zKPIQgFvDUSaZJ9PB70b9UBAuOysZ15yhoSsTOQpBaNRZ4zWN2iMezpy6hrMg5MMyJbYED7Rhi3WJFIIYiXhSCdrRkUhYeROH43jHze/ssKuU0mCByuMpUEjmVzCNV0iIyHkBsjKaQ0wXbGSaDmirX5DBgGeDVEPnFOnBnVKMo9WDEzYP7XFiuOBeFVVKWWTnNmePTU57e3GC7jkyrSBpvkQ/3SVhgVFMrq8UUmorYRCaTEZcvXuDp69fY3brMyy++l+eefIpR8yavfPttDmcPWZ0aonAwO0JCohrChVN47Iktdne36RYrYj4i5QHLmYmJNVSEeoTEIbEZkrrMcGtoOqCuo5sdcnA/c+ut73Bv7w7HR8ccHJ/QpsRo0HBt63GOj2cMq8xm2OTBWwe8+e0brFJk2cG9vX1ev3iHj73vGk9eOc98NmD/ZEi93ECGFUM6gnYMY0vbzVjMHnF0NOPW3RvMszIZb/DeF97NfLng/v2H3D84sG6jWA01WRiUz39JuhZ12sgZ6VG5EnCmQI4VKh40FqzbCVKs0877u12WoKyCFciNVJYAjK0F1UxuTRi6wArjSGB+csxsfkrXCRsbDcMmMDvtCGLIRasZqpIv5M+XB26ZJMGoo1rXonQbUtpZCq4GJK/Y2d5g0XWEHGhC5OHhERdWM/YXJwwHkQtB2AQaqbirwtPndgjDIWG+RKOnnnaJKlZ0wYrqUesFTTRsp3LqR107EXMytClEmyflRUoMYjk8BrGsdWnBEJWgHjgZbMMOQKUZC/MVO+TEOPviwACFbsmTl7ZJCfb3j2mzCX+zKnVd0ZFNX4TQaeLOwRH5tZandkdshZb9PCCZEIbhpEFXHeY7tCVhRuvMoI5MakEGgS7bjLIuB7Nsu729qq2ozJWScksOQhJvv9Ws9QOEpq6QJrLKHiSG2WvrotZR07CUs1N8JlBBZ1B3pTiVmZ0iD8Ft/Wryj+wTqYMjQZZt1Nr1D6HIZUCg8dC6FAQJAx4eTxnKIcOTIzQEwrBhtDWhHjVIHDAejQldZpYzSRJpvmJ2dMredMHRKlt8gWZunJxw2q7YzQOSKst2hcyOSWlFSgOoGyqJRGpyhjgaoWRW88z06IRlSmx25xmNtqjHyQ/1aOJeRzjERCF+Dtnhn4NYOHNvZ7bDPucVy9NMXSeaSWBz0vDs45c5t7vN5YsTvvzqG9y+d8wqlXlj0ksZitVLMHs4VQS3RveCW/+yIkvXEjLpQumz9mac1o4ifdGfg2vukjVbgptUfH+qsvYFLU4pEqJR1Jptn8OQ51464TR5FoE6EnL3PZ3p3/dFS51t4UsPpWtf9YMgnVrH4jbREgKl2aDW5BVgsZpptnHhmcxCfPCVv6910cHdI0LnVr2cSp6B515k8+03XebabMGGdhxl63IqsUq1drpAVekEhhq5H5TjrqV7NLdiO9QMg5AapVqtiDkisWGZEzNfKA0m5JvnzLBr2R1tsdOMIQq3tOVXcuK1yS5LD6vSoOjWLtP0Ds+MNmnTMQ8U5kSOB0Om2xvkdsVkc8Sl7Q2qo30aCQxEqCYVrbZ0GmjihHOTIc89do6PvPwU21vPsHPuMc5v7/LMYyseu3ieyJSUE0cnJ1wYb3J0MuPR6ZK39+DO8X0Gg32iKJNBw/ntbS7uXuTy7nlSVgaDIUkD02VL14yohue4cvUKTVWxd/8WLYnRIDIaCIsmMx4o0+kUTpXFYkETAoO6os6ZarDDxa3LTOdTOk2crjInRwt++9Nvc+PaHo9dfYrJaMD9RycgY0ajKSfTfdp2ReqEOMi88K4LrNrAN15/i4PDE5Ztx8nJlOF4wrPXr3J58wKhS3zr7RvcPj4y6D57Qi2exuvTkx2PRaJRN2Uiqk1uCL7h+FiBWJQbhgCoZ2BEArVYEmzOnXfpmRgFSUKVYCM2JjKcnfohFEirJaqVWaabCEt7ZztfvJMSn/iLFUUt2SPrM0FaS84FskPaEd+kslFaTVMRRRhUkbqqOXz4EF3MOO06ds/tcunRgm2NaBzw7LldXrxwwbjvlPoO3MoDGxy4yolB6hipZd20FFdCcFGt0xtn+HW75naoB1yQL07DZWxqcvKMEYfiQ1jTT0K2zBAVuih02L5QExg3Ne9513X+4MfeR84tX/rqt3nr5j2my8R4NOBkOuW4q5g7sBaDMh7UnJx2PJQTxkG5PFRCHRk2DTsjIeQBmzubiCeODqra3GOa2d7YoI5KPRiyZMjB0SmL6QJVpWkq2m7FySLRUtElZZEyB9MFrVQ0ITOuhc3xkFVOtKosFp2BgiFQizVpy9zZFqc+u8YPqWJtVj84S3ZILpoJMQ1goRDt7xRpc7kXAmI26UgA7ZwSwwLbnEZVSYS6pqJhenRgsfWzyGS1YnMypmk6YmwYDmsiGwwGwulyybzNhMNj4qAipsSgikznK+arjlhVhLpCQmDZWur2smuRpmEg5mArTrxBqKnqIXOZcjQ9ZtVlNtqWUZow0kRWpdGBaZWqmi511kQ4lVrmXJVGFkznUUTWKdn3z5KphyO2xkO2trZo6ooqKJW8xdu3j9EcrFhWLy5D7GmjMm4A3yPiGXFs8GtfNGdrEsmfpiBol87Qd+JFOP1wToKAJ+EiNqqg5K9UBE8at+9ZingRSCI246zQtD61um9u1IuX7+H1fV+0aF7DW8WWKN7xZKUXKlIepALtgR0qonSKpZs6j5sKih+F1vMd7FE1TUdKqZ+BkrNldgT7hXV/WahbZevwEef3Dtg6v8XtBEImYLkIgxjI2QVcEpgB92lp5wYnr4JAVRNE2RxVbFaBetlx2sH/i70/jbU1S+86wd8a3mnPZz53jjvEmBmRozMzsJM0xiMWRbXdRWMo4w+UWnIDLWGQEBISNggs0S3xyai7WjRDd1GWAQMubIMn0kPamc5MZ2ZEZMwRN+505mHP77SG/rDWPjeSyVACIbnZUg73jPvs/b5rPet5/v/f36JoO4rjNKFMPTuZQucS1Xj6bc1mt8dZAv9ycsJXb17GiJQV6MriKNMedZ5R1RV3Ol3MfEbrLVWqefZ7/wDV+YzT4yXpoIeSMEhSekIji4JlZamso0gERS9HpxqrVDgdiyCevLd3j/tnD1lWNc/efpLrtqWpFxTDLpeSDovWMVvUeJdQVw0LYzFzz8RM6E0bOlnC5vqI9eEabjrF+5pWwpm3FP0BpfG8t/eI47Mx5+OSVGR0BxlbmxuotgFr2LmywfTkEG8sx8uaZVWTZwVZt8OttS4qTWiMo6sHbHYuMehtYr3l4HDM0pyyuZvRWW9RruHhvTGne0fMZzPG9QKnU7TO0U2N1o7j032W0zOevvVBPvyxD9N/cI97D/eQRlCZlgob29GxoI6nnhW3IGgSAiE1lCih2yHjNRrSX2OyryQMOo1Du0B9XTk1pPc4a8KoRoSYh24nJ9MJSbdLtdQkSuOr8HuSTOPnK+eSQEQuhBYas1rqouZORGx96EAG2u7qHgj9a0ikpBCwPRqiJdQ25EHNTk6R3lFbz6bsMGqhm2i6SvJCf431fo6rGzAhJVipIHZMvA7IdeXJTUthw/Mzggv2kvYiOHdcGxcEj1Ixi0f4yF0ScYTzuGAMwCxxIZ5fFSwrYJ6UIQdoNV6WQL+b8a0vfoQbl0b0OpJh4ej3R9y+9hn2D474nVdeRWrJ0UnC0fmS00mFUwotGi6tFxg8Csto1OPJokcny1FZgvc1y9MT0C2zxYKN0RrSNxjbIrUmUykeeHjvPpd3r/DMlXV6/U2ctZydnZOlI9a3tqlay5v3j3hweEYisyCaVopOnjIrS1onqEzo58hEX4w1fduSRHWSVQRdn/U4FUWbEfUfRiNRbCmDiDt0ogjdPYgdnjCOswSSuBYqOKE8OCeQPjCjvA+RElhPqjS9RHF5e41uJSiXc8rlEiOgrhuqeUmnk5NmIRAxkZB3MkSmWJzOKRKN0pAoyJzAGoeQCWiJUOJCLL8SyROFqMYYpEqQQqJlSqfTxzQNy8WCsq0w8xOatsKYNiSH+16wT7uIrI927ouC+X0b84UV2snAGxIh86ptFnjb0pGgteLKaEjn6TsoUur6dfZOxlgbLcPfQMoOAnDtVUR0RIChCNZ5SxT9s4r+CNOFID2xF5qVfxPLIeJ1YJ1DOmJHN95OuOAAIojSJSrY9lWMzBESTxRzE7pDbZw4RI9toEQ78d/GQ6uHEqG8d9GKs+JeqLgaWWsCEl/wuHL1MTFVPR7dhRT2cDG3sRWs3ftskQ7w4cSlRBQcXVQ3XLTfAo3QouqS/P49rqVZaMv6OC/3Fi0hSxMwNmRnecGhNiyto2ktZaqxSqKkJBUwtJCrhE6R0bGO2rSUHlICdRLhcYmiSRWlFUx8w69Ppvx2N2eedeNzDLkswgsqJelsrXN+fsxNXXA777KsaxZAN0mYTKf0R7t0k5xUJ6wnGT0vuX885u3W4YcdklSxqFq++OqbfPGtd7iydp3v/0Pfj9SOX/n8r3EyW+C94+BsQuYVLzzzDL5p2TuahewRV4EQDHcLJosljUiwQlEnksZb/LwJdsZuH+U9MoGT8QHl0X0mZ8dMT085m405mU7QQpB4Qa/o87EPfwjBApVZepvbtPMJl4ddtEwwrSVLCxKhGBQjRhs7PHH1Js/d/CCShPF0xldffZmvv3fK29NTSEqErOjmBXVVUrNk+4pg2SxYzE7pdA1VY+ns9FBuzpff+SzvvHvMen+TDzz9Af7Ax38fb735Dr/8lS8zbuuwicS2uPAeb8KGKmK+TeBE2QsHUdB3yIt58wXIkECrXJ2uVplIQgqsjK40H0aaWifB/aIVSdEh6ZbodolFksSFxwkJ3gYQmPAxhTpC74RAqQjAiqMBLSVGRYcLgA3PTQhP0emw1R9hLOg0R0jB2dkJndaihOcpYxiZiroRuOmCJ1RCX2ZceHWtD0I/oVDCUSiBNR7pLV0fHBY6fqlajSD8KiQ1nvyMRyc6jr2IRPvAbtJCBi6LDyOcRoSlVUTnx0p+6kQQ6QohGPYytPIM85TZ9JR3l4f0Ck8uPakSbGxusnP5Bt/xrZ/k3v13KccHyJ5DNw27V68zm50xPt1DWsG4bXlzfEquYGttRKdb0DrLpY0NbGNBpzTGY+qaJE/pDYYkaYF1jktXryFay/x8Qtk0FGmCFDCbn+FtxRPXrvPUZz7KZDZnb++Q6XTJeLZEd3o8PJ5x/2yKcqCdC5Re6amcASVR1oOzgdArQ8aM9GHduujzeUcjJd6aC4cJUuH9iioCq/gKEUFpDk9LsGOvQm2VN+Gefp9zyuNZ62YMBwXdJMeYAXKRU1uDsw1VVVMulqRJQpprsiwlScJop2nCmF4iyJDUzmJJGPWHCJ2SpRobE09TqUnzAp9mqCQBBEmWo2W4XvppFzUIh6/pbIwxDQt7jvUVXjZYX9Pp9HEuC+M5GfUx8VpcSRDCS7Gyta86G0kUq4O1DeVySo4gzfpsrg159tYlmnrBy294Hh0tKJualcIqmuVC50qCsKHADuM5GUZvYrUfclF06FiEr4jPIuIQQmBrXIx8KKY9IkIqZaQgh/UqrEE6rBMiQFUlMpDD1aopQJyECRKhQ9NghXjwoZj7j9Th/t4vWlZwtwu8AIFiiAidkpWoCeI82rkocootz1VBQri4JCKScgPfYCX0XbWXRRwhATFXxl987WphT1vDcO+A3aNTdm7dRGsVxblhBVVKk+oEKTSlD3Pqad2QeGiEwgqJ0IpMKvq2JW8bvNDMUoVSCi2hZxtoWvrkZHODkI5ekZDnCb8+PeDn8cy2b6CEwsbxV4DhWRprWbu0Q3n/LvOJYSvJ2cFTCsX93/wqk8Zy+9PPIqZjkrphXSZYZzlpK/ZbTyv7nJ9VTM7uo7VkZ3uTJ3ZuMi2P+ce//Dk+++UvsGjBmJaHD87Z3djGqC7f8tGP8gOffp7X33qHN+4/YNEYijRha+SRqeDR4QGN1Iikgyr6pIMRed7BWkeWCJK0gdMz6kRicjg6OqVZjDFCknW6SC/Yf/QWy/mYJE3oDQf0OwN0IjHGYt0SIVuGvZzRMKGTho20qhu63Yz1zREvftNHuHZ5g1ffepU37r3Bed1wwgIlU47Pzjl/6RGDUY61DcNBh85WH9OckHnB1rrnfHJM2ZzzaOz4mV9+QCcd8uStXcbLmtOTGc2yxrRtnHnHALKVVsLHXCLhSaImQ9jghlNx8dEQZjErhDaByRlaxI+dPsYZlgJyDXVbgzSsrw2w3tBpPfWyCrAxsYIwAu/v9axskfH+kfH60SLqGBAXFlukCLZj6egWKVmquH8yozvYpGoq7HQcQXkKMZtQzs9o5wuK1nB1fR2dZggXtCPe2bhAy4sTeuIFeevJzKpXZcM4wdkwLmPFiQjFXaI0rOzckUHv8XE04eLIK3ReEyRtZJmswGCr4kyJgP+iMVjfQqHwrmFzbY3hMGM+PSVRHidaDvbu41vLaGPIxz78AvcfHjDoLXh4sM/55Jy333qLbtbh7t4+Fnjq+i6jm2t0uwXowOSZnp/xxr191jfWULS0VUuWFuzsbJFoT7+Tsj4YBShmOWc8D1bnIktIkoTJbIbQKUXRYXPQZZAobl7ZwgDP3NjlnUfH3DscczwtWSwaKjKckTjfrFYw5Ardr4KGBoium7DeiejADK+VjyfzeAiM7xVxfB7WxvAaXmTueBAyMFqsXXXqgi5qlLV01QKROPJ+H5ImsEyEx9WWyfmYxXzGdNaE0aHWOCcYn81ZljXKgEdSuYZhN2NtNEDlSRA7qxjBohJEolFJEswTMkHqghCIKMmkjmyd8JwXyxlNXQbrsfTUpqW1LZ2iT6ZzRBrGvggubMAXlmIfUrg90UIfgY6rDoc1LeVyFjqGacbmqMOHn7vDsN/j1bcf8cbdPWZLcyHoJo5ApQ/ieOEegxO9j2A5sdIi+W8UBQcg0wV7yUV9yaq7iNSYKGtArKCLoGLvhtVYW3iUVnGa4XDWBXeukFFXE7R94d/iAqIXeFb/rdMCxPGKMSRCxzZ6rEwjuGgFtlm9GSKeaF3UvKyoAy4q8eMoD4+nEUH8KiBqYiJCm6BrWYF6Vi24cDE6utNT1vb32HCOzaKHdKFVHho5Arwi0ylSeVrhWJQLhBCMbEIP6AC1cSTC0bENiXNYraiMwxkbKvwspfGWSngy75GLGonmkW343PSM06eeoe4UgbQY4VWrm8UhMHkHu7XB0eSQJ6TiRpFhjcLut3SffY6dS5cxk0MGVc1Or8+ZMLTLJWfLOePTExKd0+92WB/16fZ7dNd6vPHgbf7Vb/wq7z14RLX0eC/IixSBotUpC59h9AYvPPkczzz7Ac5Ozri3f8542bK0JZu7XZJo7/OJpig6pEmHLO2yud5nOhlzfr5Ayi65qtjsrYMBU9fkzpC6JcPC05UZxlpm8zNOp5Zep0eadelkXVovmFSWtDEMhxrhG47nRyzsAtNazs/HLBcLLu9eZr6c0h5bjieH1O0Zzjf0ugPMoqUsLXv7hzRvHJNrx+XtARtbKR/52FX2Tk+o6/s8OHwX0cLa2oiySblx/YN89Olv5e479/jyS69GTgQRikhsroYAtpVLZtV2ZTWmcC5YI6W/oGiGx0oYG2irNZbWCUZC0BMSKxWJhH6/Qzqek9kkZB9Fy2pgcoiLU9tje39QJwhBEBgH4Q3KB9he0DGsHFCWS5sj8k7Gsp3i65az2TlFuQwn96LLoinxdUnPBSDibn+AUApvalghBKKiRtiQWCtEwMpL5x/jCuB91s/H/391cFhtHBevjguEVuMdKBWQAqtNNC7IwbYKVoQxlLSetfV1bl3ZYHOY09olvU5GbRpefesQhePOjcs82tunSLtsrG/SGosxLWtrawxGG2zu7jKZzvnwRz7OcLjGW++8y7KsubKzwdHpEZPWMJmXODzb/R28OGPv4Jwrl7YhMZwv5hy9+Rq3r1/BtAmT6ZwiL3A2UE7WRmuItmXQ79NfG2KcZTKdUjd1+FtcQ55pOoVm/ckrPH/zEg/OJ9x9cMo7D8eYWUORJBhnaU0g1FpraZ3FRFEmAqwLZgFF0LXYmKLuXOj0iWi7d/E6vLDruqi1kC5C5cCLMPJIpCJQfkL4XyElZnqGdw1CF3S6q806xeRhVIeAchpGR4t5RV21zGYli3nLomqYG4sxnpuX1uj2OpBqnCYeEoFUI9LQYQGPSGIWkrcoL9BaIYWicL2wtwDOGtq2YTqdUjUtrTEYY+h3BoDHK0JCtQuthJVG7d+8Jt//EGHWRlsvca4hLzqkWZetUZciu8bm2pCiKHjljXtMplXQtYTfFgXmKor4HzuHiDEQRJ2JECLEEHjCa+3C4UgJgVMqAOtiLSK9jt1KC9LFjxHtzR6EIwSQitCJlYJkxeuP49rASAJiwaS0xnsTJhgQsZC/++P3fNECHi8cOBvPU4S+QtSpiDRwLWwU4moZLImOIP5SFywNd7FJrERI4GlYzQIBY1BS0qxES/E32qjWxnqkq9k5PeFaVbOpMgZZgvOeyllq7zA+XMQeSNIkyAqXUACzOoxM+qmmiKfbkOwZFvHCWHxraTRUQuGVZukdhfSk0tNqyWG9oOmtkQ3WmEkPNrieZMwL8VEUtXQCvbPL/P4RsyYELV5xknL9Ns98x/+RdjjnZPw5nii6bO9uUtVL+mJJr/W4LCFJM3Z310jTlGXb8sZ7d1nMF9y7t8dismBZO9I8Y70zQAjDbHrGSW/E517+Gq/ee8Dzt5/kw08+we9/4gmaqmHv8JyHp+eMZ0uUgI3dAa13NK1gsztkc32NNEu5t3/I+OSQs2XF1ABZBwDjLUoHe2Kv36PoZGSzM6bVEiuXtESCrBXUNufwdEnVnDHs78Bywmx2SrWcMq+m1FRMpwtER5BkgjQpQsHp5phyRlNWNE0bFoGmxirP3sMpx8cZSTJGZyE9eXI+Y33U42h8wLJ11HYBy0OuD2/ybR9/Dt3r8eWvvsT5rMF4hRESdJgjI0Usct1F/kconiNXJYr7Vl3E1X8r7xDCYZzA7I9Jj95l81qLvLpGdmeTtpuSPDwKbdtM0QhLu7L9SwJQSwQGjCZkIUG4/nXksCCjpZ9VYUUk1kqevHEd5wTGBltluVyS1TOcFHSlp7Os2a0gL1uM0qz1h/E+CiMhpAoboJRBh9AKVkGlgYvhESIJp0Ufx7oydKS8D9/XirC5KiFDOjvhubmoB3Lve81q78Jiv+q+Ei3e1tHNUzqpp991bG1kbK/t4Lyhblo21rdo64b9wyPyrM+sbGlOzhjVHbTWJElCqhLSosO8rFgsaroy4dazz/KlL3+JBydnPNw/5O2792mFpmpaFqfHrG8OGfR63L13yLCXsbbWY1nByemYE2d5uHeEUCmba0NuXd0kzxOELmiN5a1797FGMuj38K6lqVrSBDpFQZL16HcKEtNwUw3Y7vZIpWAwTUFqytry6PicmqDTaL2nHs+xJnS0tLNB0xEZOSsKr4n211RIWhe0finE7JkwggjjDQ8uCpxljCTwAAGQZp1jNl0y8ydI5VEF6MyTZBqRKLQIuWJSOtJMoWea+WzJsnVh9O0FDZ7aQ6rgmduXQ5tRRnqtVMhE4pTCr9gy1qC8wVsI6EKNa0HrDK00edGldY6sabBCYuqSer7ANw2irZGuxfsWpAWfI1QSnGoiaE2kiuGaLmhOLhLF4yNwb1pcXSEJKIK0GDDq5ORZAVLQ7yW8/Pp9Do5mQS8kfBCYx86sVKGjYWQIchUyQv1WN214JqGwkBEg6FdWfh+ufTzOtxf72ePRX1RyrnSjUXYh42uqCKnwUgR+jYwHf9SKbxaNLJH+rP6Nwu3f9/i9X7R4SxJzmb0P+hN7MaeTeBNmtlKox6McsequeIQJ1WOMIolYb1gJV4V5HKftXch9QHrauFq7COwxWIQwbEynDE/HdLxnlOakSlLVDaW1WBE218a0eONxykGa4gV0vWCRaabakktHTyZkXrJMFPNIpezasLg7IdFWxGA50MpSJGkE6mnanS2qPEcFI0LQHeAw0SmQIlnUlplKyYuU8+WCdfoUoxE8+QSf+N5PMJvs87m/P+HKcIDe2qBj+hTjI0ZJgh700FkGrkWioKkYHx8wmS6Q0tPp52QDTVbkpB2F1IJEJ7imYjo+YO/wEXcf7vGVN97jqSdu8sFbV7l+bYdbN9YZj5fMlwonEqZ2Cd5zZ3sNkWnG0zNyV9OVnrmUJFkHIzzL+QxXlSyrioWzZFlGohP63Q5P3LhN1U6RvuTKtZxOJ8H4Amc64Po0ImdjsIW0noVIaaqS8eSU6fSMsi1xzOgMDW7pSJSmk3Q5FQ21bxDGIZSntiW2WSBnAqEFXjp07GIcHDVY52mlYbmcsKmnTGdv05wrRH+Hz3zok3SHl3n9zXd5+f5DSginIBds06FYCWMNKWUkbr6PUeL9BcBO+nA/KOfJxzXNq2+j37nHMH+d5aBL/09+D8k3f4QkycAaUpmQKh0ENN6+rwwPbe0gwAW/sgx7Ai3WB4bEahwl4uA6VZo7T9ygqi1SaQa9Ds3RfYbVkrbboZaOznKJmszJvScZDkg6RXDfuXBSDOGF0aGQaDSWsmnxCLRSSCVQPmbDCHFhDcfbC72AEuE0qS9EhyLaPW3UwBCKGAT2fQLji4Ng3Ax6wx5bGwOUFtRNQ7lc4nyJs55MpRhbAoaD4zOcazFNTZKkIQxRSbK8y2htm9oYHu095Dd+69d5/gPP0kxOmCxKpLRsjLq89uY9qtoz6na4++Z9mralKAq2NkbU1QLvIe8mbG2v01YC01ZUTc36epdkWVMJw/TNN4OAv3KgEgbrG9y5dYM0FRweHmKNY3Nzk36/z87ODsdH5+xudnGJo20k+UaPfqGxxiAQvHd4xAlhc3MhmxypFJYYk0AsOvxq3Y0jcAlmldMkuHAJ4QW1D1Zz5UMmkvYyQA6RaJUwKxfMmgYpDHrhSLqKtEjIeh6V5RS5JlF96kKT5WnonjiFWDqaOuh0EmB7s8+1azvIPMVbg3ee2jR4JEokCANWWJRSOGNCB11AayWyNXSK0C1J0pTMdoKLMAkbv1kuacuSuWsDL8ZZPI6uCH1SJ+I9oVblQvi+VXadjftF2H9cCG3EUlehs2WsJc0HpHmXK9sjEgWJh1f8Q47Op+GAIUQQksugexRCIJME4R3GRzQAYQqhPAipHmsuXXhPghRSBg6Xd1gfpgg+7o1CyjDasjYUOF7gVChiLpx6DiCQkoVzQStGXLMiuHU1yQidpv8GlwO4EC8670PiM2Bo0SqEqSkELqKSlQjpml6KixaWXFWjIvA0gjLMPNYHRAuk9z4Aw4gZRSsMtwjzQeENo2rJ1qN93PmEBY7+KMMaS13WlNbSEjDjxlva1kIiqVxoubuOxLUtWmlSD8qGnCQrQ3BZ5izSQaXAqHCK6WYpqRD0vCRFceYaToqM+WBEKXXMZiEswiJCtny4mCWScZKzMegxO1+w1+lwvjXADGvefPAK8u13uJ2EFuSkW4AquLq2xqXW8Y6UWGNwiSTPEkbdgsrWaJ2QqpxlYkmFRJiWxdzjnML6GsQE7yRFr8fR6X2Oxqc8ODnmzYcPuLK2xY31DZ5+YpM7t7oo6ThfFAjrGeQSIzwpis21ddYHBV/6aokDlkphB56lP2e6nDE/mdHpWrpFl1ldcjR5k81ewc7mOtNzjRI5w3VFp6MpF5Z5OaE2m2yPtlnb3GKwtc0TtuHR4SO+/ubXODw+4XS6T2OX5ElKkmZ0hh2SXKLOW86nFa71eN8Qkn8lQoaTS6ozvBAo5UlTgc4Ex4tzntxKeHY94WByxM/+s5+ku/U03/r7v5Mnn36GL33ta9w9OqSRIvqIgnA06rij7Ti61qIoV4hgJfXOBY2H8FTzKUk9Ji0c3i8Z7M+Z/oN/jnh0wNqVSxykCukU2snIgSFuQJH9IMP9oOOiJFcEYB+tk6vOCAAeJTXrvQ43r99g/+g46rYkR3v3oVzgdkdsHI5ZPzhjzQuk0vTX1lCd7DFNVYSuCvFvEGI1tw/taRF1NwiBVME1JCCME+P3r+y4iZIRRR9cWN4FoXGLu7Bquuh+en84HHDB2zibT3GuQaoek7NTFqM+w1GOMZZCSJZty5de+h0m8zlV0+KQHB+fUjeG2rYomZAnOd1OwebmiCzXfO2rL3FyfI6TCbVbIlVKs5hyfjrnpGxCx1Yp6mXN9HyCEIJEa1oM7z08BufI85yskOydndFPOnSyhCu7Wzx59TLDtQFWJLz22lv89D//Oa49cY3PfOwFRr2Gd999lzzP2dzZoVt0uLI9QimHFimHR6dcWit49+ExphX0u2sUasm8NYFpI2RIfA5zcC7GEtFp4iVBzxFHhsY7tBMx+y10vS4WoPj9JmqoHJ7GWs6dp9MmZLahWMzIjMKbDJwl6zZIrVFSkCcaWWSI1kLlcUVNWxvKtEI7z0efusbW5gY6K7BNhTct1hp8E0Z3Ng3hgkIprIgOHw/eCaSqAUe3OyTRCWlqyIoc7wRCOGrvqKslZVNTz+xFBpRQigyPVilOhRFvIBZH3s/7XKvW2osAz1U2mXMe1zRY5zDWUHhHIjU7a324dYkiS/n66w+5f3ASuDdKIkToGoVuS6BTS29DQe74Bhs2+G+wOXscrTBRlxJdXIROvBKrCidwj1YCWhcUtahYcLY+HOiVkGEMxEoXqgLcUsjw/kbR6AVt/nd5/J4vWhzQ4FGrkymhsgxd3whAkjKwBKQg2oBi6nNc9VyASTkczngELnZlQKqALSdWyupCfxBm+saB94pRW7O9f4w8OgosE6lJlKStG6qmoYk8GGsdVdsybZekVUblPZ28w4EtSaQiLyuc1CxTTdIYtPcMkSTe0aQKg4VUoYwnbz1DKekkCTbRHNo5e70uVZaBlxjCKdKLALiK7ajQUfKSmVNk2zuo2vFge8RdGvT4Aepnfo7vu7zJ9kafqRXYzTWkbbjS7bHNIW9XYJTEJIrFfEnbtNTOcjYtMY1g2bYoIUhUivUtra2oWk/VWKyBurXoLGG+OObEG2ozYe/8Pm8frHH39A4fL29x+9KITgqdbkgyTqxje23Eor7MO2+/FkYn1iKc4+bVq5yqhLq/xtn4FN8Ial9jM0eSJRxNaiZ2zNrCcmmecN1tItdyOlkHEJye7nF2foxMNVI5JJrzcYNw62yvP49gnaPDBxwcHzBrjgBLp5MwGvVI04TZ+ZKm0iyrlmXTIBMVNk1TIaVB6QThFc545t7y1QcPMHLI5fUr3Ok2fO3NL/A/v/xVit6IF3/fp/nEM89w9+Ah48kcYT1W+osiHMJpbXXtSymxrb1Q6DfRfTRKFANhQxhnK7Gywe0fIH76F8mfu8POJz7CQ2eCZsYHXYGQKkDUVDwdevGY3QBhXEPkxojgHrrgISHZHA0Y9vs8OjimyDIQjsV7d8nOxiSp4Pr9U3aXTQjsKwo6gx5e6QCdirN4pALpLtx2CIXWiiQC75RMwmjKxFcgCtFWxYnzMfdpxcSJ921Y2CVChDGSjPevYEX6jQtqdGw5HK1xLBYlBwcllzYH3L1/F/duRbc/wDs4ncx55a27nJzPMV4xXdaUyyXdTgdjLZd2BhyenLK7vcHdd97j+OyM1kHdNDz35FVuX96k3+ny1LUNvvbSO7zzxkNcGk67zoTuk0wTEJBKHbQlMoAe5wvL+ekJykmSXPPoZEqadthCo7Xl+Q89z72HB3z5d16mnk749IsfQwnP5miNpq65fu06Crh9dYfpZIp2Q1555z40S+7cuENrHHt7j1iWJnRrXShUVyO51SPA8Dwm2ttXYwnlIYUo+gyaB+Ui/DAMQ2gjlC7Qx6ESCWdkrLkFXWfwiwCkC8MW8JkKEE7jsbXFtw3WNAh84Eg5T7+b8txTt0g6HYTS6CSMhoQz1HVFU5bIOlxrIbG6ihlRGttKlA66DqVTsryDFJI0y0PQLgEHIJWkrOY465hPJyFiQ4ciP886SK3xTqF0xBysOqIiEMZDAQErqrMQKyqSw7kGazzVEnRaoHTG5novMJa8oGoNJ+dTWm9RUgSziQAlY3SMlHgT7tmA04ijZRHNKhf3FXjpw4HAhqI0cJ5k0Ko5H1PjxUUuUUA0iLh3hv2V2OVdFUJBLhFSu+2K+E7U48n/1mkB4prlfLR6vW925kI7aqVyXoVf+RhP7whfYl1oVyrC7JYLFHK4GEysihECrXQEhjmUCIItowydquHa0Sm9R48wbUtHaoYyp9AJ1oQZuHMO6RPwQRy1qCpmTcsiUVSFxhUpd3yf03bMoZRYrSmsCOMtK2idxKQy6FOER2aa1EoyFMXagH23YGIT2sGANtUoPImLWPFohw2JoKu8EyhFzl53iLqdcTZfIEdD+q3gEzdvMGzH5InibGeD7PIu5dtvcq3I+fRan/fmFScEYdd8uqDB0VjHdF6ikgwhBLW1VNig8MfTupaqbrDGUTUNg+EIW1nG9RnLtqHf7bEsAgMlPehy6izrqebWToedbooUlp21lF73Em+++TJpokhFC67l1s4Wy5NTepng5u4TvPHeEVm3h9IglMaUc8pZS6Y9x/MafzBBJX021nfZWl/DesNkMeHw9C6qWNJimdqaSlQcnB9xcHyIawRdvY1WXcpmwmwy43x8grU1qZDQGLROkd7SLGtaD146klwgZYNeelItIUtYeM18OkPIkp1ejzubjpcenrKcnfLLv/QIVMELH/sEv/+jH+Xtt+9yNJ+FYlXq2DULS5x3YVNYmVJbF65tZT27WztsFoLsK++QKUWbNizOZ2xkCerzXyUvegx31jA+uATQcX4tYvie16F7E46gwUESVtgLvUvQKkTEAJInrlxFqQSvE3xbsXfwiMneQ3anFTfaKU+MG2gMUmiKNEX3Ckg0tC2sHBhKhdO7jf9RGiUViQ3QOy0SWtFGqnAcDUmBjkjyRAV9w2ohtSKc+FaNaoHHSQciCRrC+DfhI6tFhPSyRAqEM2yO+gy7kqP9e8xmUzAOcTrh0ekpjx6dMplMMFIyXzQh3BGY2Rlppjg7OSDLMh7u7THIckxrWdYNg4119g/G3Lt3wM7ONjvbAz74oQ/QW1vn5PycprXMZ8sg+mxbrIA01RSdHIBysYS6RRgPSuAsTOYVbz14SOsatMpQWvA9f/DT3H3wgK+//Sa/+dLL3Lx8iUF/SE9pFuWSK1euMJvNUEKyPiz4+AtPMF4aXr+7R914bt6+zsmr72CbwMC5sO7GUZyz4QVUqBhT4TAiQDuFCfq9kDQd3ockVJUhvkIGrcMqH0cgKL2ilxTsdre4rmqEaajahnZW05YtPhVUtqE1HlMb6tKwWLRMFosAkvOSJ25cYm1nG5EXQNiUhVJILbFKMF/OsYvyotshYyGupMZLTZ6nYGtUmuGUiJZuSBDotEOuc9I0IVlmNHWFaRuWizleeBrr8H2H0joI1p1AaPUNgnAXYW3OGaw1aBXGkjLyUPAh0dk6hzENed4jzzqsDzpwYxMp4ZVX73N8MsYR0r4Jt2gofnzoZjlrwzrxvns2fH24C/BcID6EEGgZIkCiveuxkH0Vj2FdMJ+sDCtSoAmwUucd2NDBUQRWTzgiQIu5GL+W/3GNlv8/KFqsJ41slvdDc1YalpBQSzjESYF3ERvtXUjrtIEd4G2oEp3zF8puFem3q/lheK/9RcZDJTzCNdxajrnx6BFmUdIqQeYUHaFJogvDmHDT65iNZJFMq5Yq88wzSephg4SJbyg6OZu1pxUKnQrGSRJDISU6kaRLi6o9uqsRxtEZ9tnaWKch4frSc7cY0nqFNy7Iv1GsQrDwGm9jEaMCdvzIKrKpIR0NUIOUq/0Ozw5y8q8fMusUqDs3ODo7ojebMMgU37y5y28s7zHzkso4lnVF6SxNbUKMuzAhMM6EE8WqDRqQ156qTfBleA2t9SyrmqItEdaiVUa5XHJ0sk9dlVSXtuktCzq5YDoz3Hs4ocVyNF1w5foTJKli2O3y4P67GN8yrQ2dYZ+rWz2effpJvvz1N6i9I0lzBIqmCZtVmvbRukens0YnX8M4Q2MEo67ldPaAw8k9lvWc8WzJ0fl90q5HdjWLiUPXAuE0XdWnbWuWxlObEmsrkBVJoRkNu4xUl6RxLI/PkHXFUOXkSUZPCtanFRtLydScUhWadSm4liUc1y3TxYLGl7zxr38Z/aUv88InPsX3fNcf5HNvvMEbdx9e6DacW2W7rublDrAo79ns9/nOb36R7ckxb7y9zyke2evQHGgap+gtat783G/R+eZPkOCwXqEseCUvdAorjZeXoY0u8dEaHf435isH+iaQKcGda9dpasvpdIHKUhbHx4wfHXG5bbjUKopFTdsGgqhOE0QehNOxWcMqTG+VJh1T4NBaoS+aKvHUKiVO+jjqFBfRBx5xkewuCGJgEcejoT0HCEErgtg51Dzywt2hpGBt2A/MGizDYcGVtS7z2T6PXjvC1YZWePanU87Ol2R5hsPSti29oseyrNBas74+wts2dK9MxnhScj6eotKMgwcn2KpFSsXRwT2+6k3oLqWSLE1xraVpbMCmR3GwWRqqZYX3jjxP2dzZ4PRkjBSS1jZ4n2FbT9OU3Li5xfnBfdbznGefeorf/OKXee+9h8wmFZ6U2zdgslzyzjtv8eTt2xRpTlnOQTuGquW7v/kjfPXNPb7yKy8hXRaxuHVkbXi0V4GM6gXGxWRtwMUUWOHBanmhodCxmxV0MSEJPIz/ZNygPMJ6jFL0iw53Nre5pg2uWjCdTJjNZ0wXJctFOOzNy4a6MSyrhmVtmE1L2sbTz1Nu3bxBUiRoIYL7ScYgSi1JiwCnG49nzOdzjDE491gm0O0WDAZdXJWjdB5CQ7M86mIatM6QqSZJByQ6p6pLqmpJWc5ZLBa0jQ2hlVKR5gKRZmiZXRwqQlZdQBoE8vLqXg6uUx87MN7aC1BpTdAM6bRge3NAliQUWvHK1+9xcDKlQSC8xsbxjJSKhnjtRG3LygnovQsiWjzELDwjHOgAqvNeRbZMGPsGwW3sTIogvF3FBuDjnim5WAf0ShUnfBQjh8OM8iDdql/2uz9+zxctCeLCCimkuFhQvXdB9CTVRS5Ga+3jCG4PorWkBEy5i2yW0PKOb1AsYLyQOGPDKVDISIX0eG+40hg+cHROZ77kSEoyIBeCQZqFkEYhgtMEEASrX+tgaQwT6TFGMhDQCkmVCa4PN+guWhamJZOQV4aZbUjylApHIR2+aZHzllGvy9r2Or6fsGZyek4xTRJcvOzCoEtcWNsiYAMEaJ1QuJL29IjOqIPa7pM8fMTts4au+yJZLpk+cQ3f68F79+lPK1Sm2e4N2HZgbCTZeod1Pma1qPB640PCrJC0bfjbZdTXlOUC27Z4Y7EubFKuSairikVVMqnm5GfHJCqhrJecLBtqa3h4dMC7907YPz7g/sMDmmqBbysSYRn1E/pbm9THR2xs73BvUXJ3/4gkDTSRPC9wArp5h/Vul63hiFtXrnJ1cxutM6q2QYoKb3MSu852rqBT4pZv8/xzl5mW57z2xiPO5jXD3jpb/SHVtGJy6uiqgrToYl1DWc0xvqGuJkzUlCuiwwubWyTHFX7ccOPGHXY21qjefIcRirXrTzFPPS/de4tlohgVCfPKcXw44ZaAj0xndL/6FSZbHa7tbtPr3OT+/X3G8yXCQ0PUYfiAQBcyANcu9Tq899M/y/FLX6e/UVCvdxkNu3RmNcu9cwZak56dUr/8Ov1bt5kmCayw4UIgvA0AQBmdNYT7YVUgaRE3JCVwCryXpEnC1d1LTGdzFouSraKHO5uQ7J1yCUG/KXGmRSmNyhLI0vATy/p9ThIQKthgL9hKMri+VmAt4YPjz682o5h54mIndZXavFpcL8SBgov2tRQi2rRDK5xYH4VDjmA2q9BSkGnJeNqi3Zy94wlOSoxQLOuKWdXQOI+tGqrFPCQme0fWTZEeDvePkDrchbZxNPMS7zxmucRbj1cer2JCuAs6HddaykWDkCqIkpV4rEtwDls3SCmpyoqj40MG/SF11aC8pFwsuX9/n7ptuXztGrefe5q2cnz966+wvbbBZLrk+HzKL/za57i2u8VT168w6mk2NgdcuXwD5Xp4pbCipJ2e85Gb26hv+zBfeHuPt/YOWJSecVWHAioyV4KLLBQtIhaaSSxaHESoZ8jICUVhcA6t1ENyhZt3DqlDQvJOkXJtY8hulmHLmkKekNrQSaNpmDQhhmBWNSzKhkVZUZYWjOfOlR02ttbCeu+CdiZcF6HAEkpT9AZMz8aMZ3MmsznWEYIjnWe926Ve1Az6HRKZo5VG9oJl15kGnUuEkugkRcmcNO+Q5Bkq1SwWU9qmZjo+RwlFp+eg00ULjxMapcK+4YW/GNsIFVxUSqlYvPvH2pIoY7AidFO0kORpweagj7wWRjr+tQfsnczDoRADwuF96KVIpcIeGGnGzsXoBR/GOEEPJrBEvpFYZR2FO11Gjtlq3CcEIQKAeECKhGnlo/AdaJ2/YC2tiiQdRhwXhdJ/zOP3fNGi2pUYUUVltENikVphvA95L4SFbQWfgijg9Q4jHwv2Lj5OnI3H3JKgltcxJyPaPPEUbcPT8ym3pmeUGBohqIUkldBVYaFPtKYywYKaqECHHFcNk7ZkkXeQ3jIw4J2il3QojEAWKQkJ1nq6tiJXinkCaWtIEyhbS0enrF3ZQq7nqFThF5KTVDPX4aJz+JA1FNXqAQkd7OFaS/K6gvMjhtsbqK0hzd4hHxk3/L7rBWuypdy6wujm01S2pm8dedXgWku31+HJPONXz89ZJAneeqR1F7NSYwxKKBSBOBqshTa8P54winOeajHHekVvMKTbG1D0uihh8XWJsz0sNW3dcHR2wt3FnPsHDzk4OODdd99lsZjhfAwxM4YHRw2Kll6W8cZ7+9SVwSiDVxnXdnegbVFas7m5zfraNkXSZWe4zlp3AMKjlcC4EU1rOZ9MODltUVqQJlc5Pg9z5KduXKIxS7766n3OTcawK+nvKJq6AxaqiaGQAzIl8LZETxdsO03/bMxWMaJeG7C3v0d9OiE7r9FJSv3SGzjhWTM1C1uRDDqMXIrXHWTdsmYaksRwfPoOx8uH1C7nm27c4rTu8fpbe0ycxPnwXq+YQVoqPnjnNn0M5buvMuh00ZOSq63i7uE540WN6OR0soTmvfsUWztMNpLQ+SLYKQObKASOBn2Lu8g8UT6KfmUggHprcCJj1BuxtbPL/uEBZd3QNA3mwQOemC25k3ZJvMUJRZLmyDyBLAelWY1tgpU2yq7iOEFGpa31jsZ5hHWkhPFVi7sYNZgYhQHRESgfh6IKQs6N05EILeKmKR5bnxMdhJnGhEyesmkQzrLV7ZIpzdn5mMlszun8nOOTBRZYVC2JTqiXS2xrg/atLCOWPtiDdScn0yltVYa1BYnz7QVDwwuQicba9uIU6oVAJAqkJIldykDnlZCFqIy8yNnaWmdZLqnqGoRCCk/TWg4Oz/mpf/qLXL22y7AoyJTkvUcHrG/tcPfdB2gd9BOT8ZTnbl1iOLhLrzNgc2uX8WTGr3z2szzz1B0uX7oENJyen+CQwRElgpvLS3A2jAWUA68DQ0QR0oCVEOSokErsLV7ocICTK/tr7LTiSLxC2pDDJpH0VUKBIFEJeVcjbY2wS4pMopdLFrZl2rQ0QmGcpDYWmQiKLIyGkizkL4kmWHill3jlsDZ0ErxKyEdd/KFkctTQlC2utSgE1dIyXVaMBgVNa9gShq4fonUWNRkhRyrTIWYiS3NUKlGpQicJ9bzEtjWL6RisRTlDKiUqLeIYJkRxeCLrJmpa1CrXw/lg91+NdIQHG5SJpqqwMgi31wYD2muCqrU4Djg8Pac2QURPCGkgiHsDf+ZxzyNkCa2cx96H+z3wi1Zj3njUFWGvSyMN++IgQNBU4aOgXQicdRciXYG4mDA4dzG3wgmix/d3f/xnL1p+9Ed/lB/7sR/7ho89/fTTvP766wBUVcWf//N/np/8yZ+krmu+67u+i7/9t/82Ozs7F19///59fviHf5h//a//Nb1ejx/6oR/ix3/8x9H6P/3peu9RUgUEtw9Vv4tWYKXCKdFZGxYKHjsOhBC0PiyInsezPfzKfaAvXviQc+LBW6QPG4X3ig1T87H5gstCsK81WRwD5UAnCeRaqSRL14Y3TWha4MTWNJ2UOoNEOuZOMBSQVZaso0i7CSezOYflktSGjWjiWpKlQVUGITTd3W3KbkbqYXZyzkPrea3IqGLh5mU4DbtVm1+EFl0uJe1kStZavv0P/x945eQ+b738Ch96+wHfff0m13oDmkEPfecJFr2M5HxC7lpUlnIymXK1KPjmrW1+czHji8RFyIYTcabTMA6zjta1gYYoIxrdi4CIV2Gu7yzINGdRLRDjUxprWFvfRIsQk1CVC07PjplMNVVVcX56xOnJQx49ejPSXGUYMyQa6R2JlNSt46zcp1tkTGpDPy8oG+gXHW7feIJ5WaGLnI3RBt1uNzhiCATVPEkRUtFaj3GC/b0jjo6PaUxN1umwNx6zudvnuQ/cpmoqJsfnzMcls3oGSFwuSERBWYO3Hfr9AWVZYwct9axBL2o25jMuFx63qDmfHyESTRdBgeWFbs6gsUgcTWVRKkHvrLE3yFnOpuipw0xLDl99g5u377AhU95LMt6tliwI+S7eeoZS0/WCj3zXd/BrX/kK+nBCd1Fi9ILp2ZS9usIpR29rk/57D2kPDqn6PcZpGqmyxG7iCi4XfnZACASyciKCc0AQ8oZSlXFzd5dep8N4UYaPL0/ZfettPjRYY6OxgQ/US0BrfKIQnZC0631gHAnXXiTMQgx9sy66rxRShjZ1SJ4NJ8AQQulCHlIsWsJQSETAXliAlZCoAHRBrvjBETePEngdkAhJEk7Eg0QgfM1GkZDolpPxCfPplLIOoLNlucQ0hl6/wKuExpR462ldEzYbrcB5zGRJ65bhY/iLzKawaYUOqLOh+F6dQVd6HGsMtQmfU2kamCdOxIMYnJ9PWS4WoZusU4SAJM/odQNmYT0fcDYdU/QGNF7x1pvv4qzi7HTM6eScwaCPTlP66xuYV15ne/2Iq1ev8pnPfIavv/w17r7zDi987FNcHnbYOz6ibkF4hXRh5mN4vJ5aIsBMqZgGDcJapCR04nBBAxV985LoTJPqIvHe+MCHaZynXCwx3qKzjDRN6PYHZFmGyrtMGsPhrKLXCUVdqhV5UrPRK9ja3URIF0NBw5qk1EomEESu4EiShMFgAOqcWbXANi1SSGaNZd4aJsuGZVWzbEt26006gxEiSWhsQxYTr7Osg04kmcrQKiHTHap0SbWY0dYV88UUqSQ6SUi9Q+kEpTRBDB7EyStdqrUWXAhfvICgRt6Adx5rW/CSajlBJzlpZ8DasODGtd3QBU0FDw/OaYxD2tABabHBiCFCPpd3gU7spLwokIUUj685IkE3diLxjzVMYR90F4WpltE16N1F1zKMkeIY1ofO0Go/tXH/Eatg2N/l8V+k0/KBD3yAX/qlX3r8S95XbPy5P/fn+Nmf/Vn+0T/6RwyHQ/7Mn/kzfN/3fR+f+9zngPAGfe/3fi+7u7v85m/+Jvv7+/zJP/knSZKEv/E3/sb/rucjRLDPSSCNBL8Y2RIV06ymihciRukJLgZCQKL10ZoV9R8mguTe/zKHCUsQsxZOcNPUPNUYpFIo7wLxT0j6SUKuFGkSFqgyjkgUisYLlsKjuhm+KxFOMqs8+7ai3zrc+JQn0x120hzVWMZ1zaGvqBc1wyWUzpNc2+FokNCfLXEHJ8xdzYP+Gu/0QvsaF2aadtVBUqGlX1iJPpnzxKXLbD59g7PMsTza5/bhKT/0xE2e3NrE9LrIJ28x7wjOjx8wGp+jli0VkjcWU3rDIdc6CR8teryxqAIXQCmSKBCVgNAah0T5sNEIodBpjkpUSMD2DplkZEVOv99nOBiC0kEjMpsylgJvGuaTMUppqrrhYP+Aw8MDltMJ5XIRW5ihXVvolDwraEUgqFZLTafbhTTh3umEflEwNffZ2dxhXRZsrG/Q6/UuThypUuQ6IdEpedFF6ZTKaSaloymXlMdnJInk7Dijs75Fliy49WSXupxy7z3JbNFyPp3SUKGUJstzSuWohjmzZMTDe4fUe+dct5718RnPbG5Cr+Dg5BylEzp5Ti/LQKfYQYFMFPL6JfZyePOtN0jbDkWmGCLJE4W+f5dL5GzdfJKd9TW+dHDGpDEk3tNdlKijQ5adDt18wCwZ01MC3zrSrIMWjjdPjukuFux0CtzBEVy6ynItoyaCouCiYJGrhvEKHw6wYk3IUBQrJXn2yTsoYLpc0s1ztg73uLxs2CzC6EkkKcKnkATYI4kGpUMkhvBI5WIsRkD1B9aFvIi+EFE168M/L0SBK8ijWAlpfejAuCjQlSIkWsuojzE+aAiS8E9aHMbVF2O2QoeRUbcj8KbmdDxh79E96rphOptSVlDXFcLCfDLDNm2IFLA26t1CV1fEaAPpI6VUhMMTK8eHX5FMV1kwYZHyxuJaG/kmQYcjVu39aBmtypqqLHHWBupo3eKsZVw2NO2ArfUBMpFcvXad337pdbqdgm5vyKP7h0ilEa2nmja88e4ep+fnfOKFZxlvnDOZnLO9e4nnn3+B8dkJ85NH/P5nL3Frd5tffuU+905nVL5FeXGBhfc+eEW0etyVVhejhlXXIBBzpVwRyEO2jxM+gt8IB0PlOFgueeDmdDoJYjhAaI2UmiJXeDRdnaMcFFlKpjW5TsmU4ub1XfJuStM2IcXbOGQSkPxOgtAEZ44NqPoiz5FaUVmLc55UgjM1S2tom4TStMzblrKq2N5Y0h30yQddQiNthSDw5HmXNO2Q6Jw0ycjSlOV8QrWYsFzOUEpS4MjSLk6BSsQFXyX4SYncE02gVfrgYl2FkVqHxuFlg/EmBKJqhdQZG2s9dHaFvNNFiwccnU2YLJsQQUEQQof0ZnVxDYo4vnu/5Tr8Le7xGDUWLEAIapUSrVTs6PqYIhKEvavDzarY8YTzPS44dBsZikftHVa833f273/8FylatNbs7u7+Wx+fTCb8nb/zd/iH//Af8m3f9m0A/N2/+3d59tln+fznP8+nPvUpfuEXfoFXX32VX/qlX2JnZ4cPf/jD/LW/9tf4i3/xL/KjP/qjpGn67/yddV1T1/XFv6fTKRBuDOtcyNeRQVOxcgSsUptdtPkqpSO8CryzKBHotsKDjIFeRkQRX3RLyFX4kAR8grCeVlm6zvKRtmE7kcwjgkBK0N7T1YpUglaCtm5om5DMKfBMWodNEnpaAsG6nHpJ7T2yqjhyLd0zwVY2gMZwaucsW0M+Mwgk5tImB2sFhW1wdcVkPqZNNA9UwiRJ8daD1BjpsULS0ZK+cCRLy3a2wbf9D9/Hh7/9Be4d3OO3v/AbbJiab1rf4undS+FivX2Dk7UhJ/unlNqwnIxJywkjmfIegmb/jM9cHvDRosfPn52zlyQYJ8ikQqQ6tOodwV2FQOk0nJR1QmsMVVmBUGQ6nIaXVRkFYpp+z9PIFD0a4UzLeHJO0xiMgdPTIxazCTpqGhbLBdYEgbLLC4xpaUwoiIwSmLLCW2jKkrIIn0+zgu35HNM2wSnm5UUbtpMqtgddFsM1jg6Pg+VUwqSpWcwbMuk5P1+i9hRprtg/v8dwI+P2rW2q+49IpcY7S+tKrFiG9nexRpsn2FHG+SLH9QX9sSWfTbhyaYftFz7KoilppjNOlzCtWja/7ZPsfPO3cHKy4Cs/9VMkZDQOfF3T6fToyYS12jJpKvbefh2/tsZHr97gtfEC13o+9cIHuXlti9f+6c9RlC3V2oi5m9CbtXSyhKvFEK8Uj+ZLKlPTdwv85Jxs0McpjfBRYuthleyMd8HIIxQCHcS53qODb5MiTbhyeZe6WuJty3UEl19/l7V5BY1D6ASRhnGQ1w7RWLzScUxCGOtKhdASZ0zY7FaK4FTiXYJuK6wKNlkjg2giRN3bMBKWIfINGYqEIPyOi4WUGO/jgSPozLyMSfDOo1UAoKVacnVrQFdZTvYfcP9sD2ctVdPy8OCc+bQNTkAb1o5lXV/Ywv1K7Q+xiHGh6CISUL0Po2XvkF5FR2Nk3riVHkfjVej+ChkOPCrVkckTGRsyQPZA0RiHqdrHbXo8i8mM5XzO/vEZo40+89mC85MTkiQLQDWdkmaK9Y0BUkBbNrzxzn36ax/g/N3Xefe9d7lx7Sqb62tcuXSJxWLBZmH4+J1N9k6OWKLAq6h5cCCC/DJm/YKUxDitWJ7IyGqRWMKpXAl1kfEUrPaR7+Lg0HsezBrWpxOEbcgHA6RPEKlCaUPPQa+xJEU3UGzVklw7Ntb64MEZETRzqkU0MrhfkovpIXVV4psKaR0SR+sczktoDVJCIzy1daS1w0xrbOsoF5a1tYqNsqZfO8zQhbGdDU4glWtSrUl1QaYTtFQI6WmrJcvFJOhKuo4s74Txi1JxsxBBF8ZqbBnGpUFpYhBuhd4w0MbdTjVUTNBZRqe7Tr4+Qqsc7S2dvZS37h8xmVVh7C1CV271bghCwKISIbNJ+FXOlwAXi+eoAVsZnkI32l9cwzY+Jyni30BkmXkdYxr8Ra6RjTA6RJBwSP8fV478Fyla3nrrLS5fvkye57z44ov8+I//ONevX+fLX/4ybdvy7d/+7Rdf+8wzz3D9+nV+67d+i0996lP81m/9Fs8///w3jIu+67u+ix/+4R/m61//Oh/5yEf+nb/zx3/8x/+tsdTqIR3h4vRhwUhkeHO8DFCyFenWxapRRBFZ6zyt5MJp4wUXJ03ngsvBXJB1TKh4fSCFXmorPuAlI6GoonspkRJNQk+ldJKMRAY8deVDCmkFnHtD4hP6PmX7zlMcP3xAdXBMH00lAu5fVwsOmpY9U9G0jv7cMPCatScu8+VLayzKOVeOz2mdQ2jNeVKwl+eUXuGUJ3OObRQf/sAH2MgTZkcHbF59gmc+9Cme/dgH0cpweH5KrzOkqQ1dLVCuxXdy5pc2ee2Vr9P3is6z15iMhkzWTpGl4RPPPMs/+PpX2b8/49Nbm/zBo5xXzqZMVs4ArcNpEhn1PwalVQwNi9oWKQOsz1iauqbb65HgyfIOtq2p65KTkyOEkrTeoTy0Vc1icRbEbm1LJytYTGeYusGKkEvTti1SSpIkZGo0pqFeLkKruG3oFgUAvV6PNM/CWFDwDa3S9X6XdmuT/f1HrHe7LDpdbN0nR7KYzlnMpnhbkicwKLZYnrZMhxmDQRfvJVoJ9k/2g/A5yTmozjgtJ1zNe3zyiRs8Oh7zTtJgZoK6NtxIErqjHrLXI20tm4M+jx7sUb30JsnaJXp5TqezSd5Lacsy4NWTjHnT0JqGydkx4wf7nH3pFapiyO7NOzBd8rWf+SWK33mJIsvpXlvHbHdo7BRXO3S3z7PXr7IrW77ypZfJyxbOzujv7GJSHZx0REx7bPtLr/BS4pBxUVol2QoSkbHZH3F1c4vGNGxVFTuf/xrFF75KOlnilIEswcugpBUIXGsuWsWPM44I2hkUwsRWtSO4b2QMg4vHQBujCkJFpYgWhvDzYg6YEOJiBBMO+yvbcxgpGePj2CbwmfI8w3vPeDpmWc8QeE4nC2bzJeOzGWfn48cbtA9RIMEGKi9+X/h7XDidxqA8vwpglEEHJPxKwxO6WpiwJiHlxagIH+izq7GR0hpiDo6UEq015XIZrtz3OUQg5OQ44zHO0bQV3obxiG0W4AInqVKK4+mUrVGX5z/wDNOzc954+XVGowF5WjGanlEkjod1xe1btxmORlxtLVoJ/uUXXuNk2WBROBnjH2LHMk4VojAp8Hykf+zqVD6+dkR+SPxaj8DqsA7PneCBday1JWIG63lCmoAnwePJEsXmKKd3aY2qaamXksXC0+8kQdxvLK01tCI6aJRE6rC/CimwdQt1g6taqG1w6sgU613k+Sh03gmdnERhtWJmBc35jKYN3Ze+qenZHgobRlxSI7OCJMlQMmL8hWUpJMvFjLpexhFnvN5cGGsLryK0TkQBrn+f8Dq8hj4AxCKFWiG9jUA8i9UZWSdlc9gluXmVwWiE1gkvv/Eey8bivA6gS2tJROysCBHlM/7i+gp5UREDgo/dy9V7GiUTzj3uivlwLSMi3l8SCjMXGElKhd+BDM2AFQ+tvXDB/Icf/9mLlk9+8pP8vb/393j66afZ39/nx37sx/j0pz/NK6+8wsHBAWmaMhqNvuF7dnZ2ODg4AODg4OAbCpbV51ef+/c9/tJf+kv8yI/8yMW/p9Mp165dCzeJ86hwJFzdLxeBiMTFa5WTsmqL4bkY/zjhaOKJKKQ8+4uTjkWiFEhvMRiElyQWbjrHTSHItMKIQCeVXlAozSjv0E0zijxnXpZUzmCRzD3MJWTW0PiMZ7/7j3Cn4/jC//q/MHnpLbZ8QKo/Mg0lNbpyDErLts65+dEPcm9tyPH5lNvTmmy2wGlFnWpOsh7TRLFja4apZpQm7BY56/MzZLHJlRc/ye7NZ9m5dIlOkXJyNuZkseSsrJkLxaui4ePAelvz1m9+jtKVdLM11KRhNNpF3FSoh++xIQV//GMf4mc/93n+P1/bYzdf4+Mq4cvAvJtgU4WpG9rGBoaIzuj3+9R1HRxUEe2sAdc2SCFoq5IaR1PVMAijpqYp8d6TZxleOGbllGVZUtVLZrM5wgfSsfRc2M/rug6MDhS9UZ9+r0euQ3x9nmoSnYD3jMfnnJ4Puby2Rp6l6Lh4CgTWwvl0gc66rG3tYBPFrJqzqJaILCFxHRbzOcvFgrSuyRLF0d1jBiPFWrdDkoOS2xydnTBKFOtZij0tyU/HiEnDx6/d4O7pKfeXp6xnguUXXyN/4WnMZof08Jh66SmylM75Efn8hG/peeaThnv3x5zMl1x5+jq7zz1Nkw3ZzPp87e/8faaTM04xPBqf8fDue9hf/xzXlOV2LSnyIVtbKdNhRrnuEadLRk6Q1Jamq7mzcwl7dMxeuaDjDFMfHXRCYaM9clU8eBFm04pVoRG0I4ksePLGLUaDPuMH77L7219g9Oufp7dowuKtwmnXR22V9B5vLEguROJ4LoTwYRMOXcmwdgbHglIBISCJriFWG7VEogjup/A7rA4HE+OCxdbGRGwRW/p2VUgQ3BptYzG2Yquf0pUOlWkODs84my4Yzyumk0U4DUuBNRZaw+rphfXGX2gopFIgYrjdKmdmVdDEsdFFXIH3cROPBYcPWh4R161V8GOapiyXy0gqFlFg6UmSBNsGIenq9dBJgkoCG8k2Bq1SPB6tBWgZ1zxPM2sphePu2w/4yLNPsLbe5Z29Y37nK+9yfDrnuTtXuXF1h1//wm/wwgsv0Bts8uHbl5Ei49dfusuD4zEtIYcoXCcBhe+tv9iktJDgwmZldDAmEFOBw9hCkvqgZwlGQkUtFYdOsm8da01Nx9RYJbEWvDForbnyxA30zhbj2Zwky3FSkOQ55aKlrWpq01BhLkbkYIJlV8VAXWup6pbGBL1T4wJhVhYZSadPkndI85QiySHRtEri24aTsqU6rzFmFkalIsQC6GirV0qH6zRJKfJOiNYA6raibsrIeQvvmxApXgR+jJQqBBPGZGQRnXs+mFQvmENBjeLAGWzrqOZTpEhIuyM21gbhfbh9mbYpefe9feZLS7vqeolYoLggpPBiNQci6k6icF0qRBxDrlxrKz1LWBtWoargCUWQMyZMJ+LPsDZqRF1co+OeLf1/pfHQ93zP91z8/xdeeIFPfvKT3Lhxg5/6qZ+iiKfZ/xKPLMvIsuzf/kSMoHcuhHYp6S5w/MI7pA9tLymDKHdFJnREcZB9fEGsTo8r8aqSAcXmnA+qeBRJfPNve08Hi5UWE4phlFd0lKKbJaSZpkgyZuUC7xy1kkytxSJpbMu0POPX/+nP8E0/8D/w7f+X/ysv/ZN/wuS1t+iNhjx67y26raVTwxDBnadu0ly6zJfPpoyu3KQYdTmQFdO6odGak15CN9MMc01HQG0bHtWOg3mCFBoxf5PhwylXd+7w5I0bdIeCtaKLmS/YyjqcW8n/Nj7idlGg5AgvPUenDzk/mrH1yecZ7e6QFBne1WydnPDdzz/Fg0cn7B+MeSZP6edd7haad/yCeRSCSYKYc7koEVKTxmBD2zbhfdMyRKgbS1U16MzjREu5nKLQaJmwtAavYTyf0s4qFtMpztUXULUVFwBhA9ZaSbyB+dmCalbT6XYY9vtkSUbbNCznc07HZ8wW65TGkDWWPNEIAm3VecfB9JRXH93ndDxhsZgilGZ3e4tyOePegwlprnCyR13VtI2nNCWzsaGfaZKOIN/o8fE72+wquFYIhtuS2VFLMzEcn88YCslGplizFdJp+kXG/juP0I3l7HRB/uEPcXQyJqek6ywfeuIGxUuvcV7NOb5/yHlpee77/xjFzac5+Yf/mMPqESeZZqIdI1fTdZLMaXDQSxKGTcv03hnHiwWqadjdXidFIM9rNgZDxknC9GRB2tZ4uiivooBPogmnfSliw1p6pLekoUUFaJTwXLm8hXeOya/+Nr1f/22Gy3lodyc62lpl4E5IcHVYNKUKI1pEgvcrcWAgbqIFQgS3nnBtcBEpSe7Ba0lOQoPEylWh4yMqnaDAkSK4+70P6buEjdESil0lJMJ5DI4s1Yx6Pba31sloseUpX/7K1ygXS3xrsbUl7xQoZ1lMyzgSiTqaAP7EWUAK0k7QbRnT0jZtsPfGMDOhJPjQGXVmxeEIWT0iujJE1AmlqUZpgWkdiUpIdEKep6HTZkMXRSkVRqMxZDNYvCUySUIJZMIBS4igj8iKlGEno1dodjZHdDs5pvYkScbe4RHCDnj62g5FIjk9GzNfLJgsSq5cvcp79+7y7NM9HCmn+/uM+l32JyVtG2Y64XzowHoyJIkI3TBkgnSQEd5rFzVQ8c+M/I8Q/qcj6MxqTy0kC6+Z2pa+WVAkCm8kWoLoplza2WJRpNRYSDR96cnSnNlsQeVrKtNS1hWldzgvoG7DOE45lPJkQrKoDGUbCDMSS1Gsk2xu0ukPEDpFZh1arUNBoQPqvlosQVqSxlPMGoSehfdQEdKZpKNT9BBCkqQJiG7oKNYlTbmkacv4enWijMEjRbLyh4d2UAgQw9tg+1dS4lWsLWTQALk4tjWmYj47Y6A1Iu9RFCmXL2+hUkWnk/PuwzOOjqc0tYmarqg3ES5CKYmH94DuXwU6OrFC/YecofC8QojoatokHAG8h8dLjbUeLWXowmKDJXp1jcf6CPFfcTz0/sdoNOKpp57i7bff5ju+4ztomobxePwN3ZbDw8MLDczu7i6//du//Q0/4/Dw8OJz/6kPd9FJC1a6kN2xGvPEBUOE2ZoQj/E2q6pXxnlriryg/en4fdILrAhW0McTa8/AWm7g6UtFJRSm9RgX5rrdVNNJNHmakKSaujUsPBxai5ECLTXrt55g7fKIo7tv8gv/j7/DJ//of8+H/8SfYDY5Yf+1V5H33mHXSDpScGljgOlnvLz3gOrmDZbPPUXd/SBf+mLK6ckpy8WCVnikLdnJ++xur9Ht9+gUGVKmJLKgnw+5tHmJ67tXoLF88Qsvs3/4BpPX3yJ58IjMWQ4SSXP1Op/5I9/LyCz54s/+PNlshnnzNUx1hXlTc3o+5ng+p0RTrg/IttcZ6ITnP/ghTKfHL3z1t/j6gwfMlg3GxpMuCi00tXMgFLYxmLC+BWiY0HSLDl45TNPis5CmKoUk9R3ssqEazzCVoa5KjGlicGCw74U5tg9EV2mDXVcIhIT5vEQKjZIJOks4TyTdPOV8Mubh0QF+R9HzBThLt8hYtoYWj5fBvTQ5P2M8Hgf9jLPkRY8kbTk6OwqCSecw2pE6WCxb0pmgu1RkZckLH3qau29+hadu3qHqOfYnx5xUNa5seDrL2TltyWYlk994iXWtyNM+da/Psr/D8//jH+Thr/wLyt/4Mu+ejRleXefTV9c53dzkdG2N7lrCr/zKP+H18R5tJ0fmks7hmEsUeCMwrSHLcnKtsOWSozfeY9paMi25e7iPVAmgOJ4teWlyQq8zJGkaNIJGgEtlnHm7oJ9YWe58EEx6IYOGQ3usdqyv9Zm+e5f2n/0zNs8mCK2QiYqnsbgZx0WxbmqkztEqQ4jAPfLOgZfvc0wQVlcDXgRmiZKQrgSE0pN4hYp3s5eCVkTyKRIZOUpIiY0WU+HDx72EOtZRCEkvz5CJ5nhyTkc0nNx/k/HpCcPegBZHLgy1t5RlFZxqQmDq5mKtcIILYrYgbLxK68jJ8Ji2jVkfIHUo4oQmdGzwIMJmrJRCa43Wim63wLoGhcI0hjxPcbmisYZ5WWOED2nx0qPSMB4TQpCmKaaNjAzr8Ri0Cl0rZ1qUKJA2+Kd2d/vsbG7grKJcVCjh6HU7XN0c8PyTN9jf3+f0dMLZ8RlrwwHHB3tcvXGTFz/6NL/5ynsc9RIenZfxBL/iY4WDXZzrYW3oaCmhcLiL8RCswhY9TTyKpya8jtI7jFfUiaZ0S5Z1CToLG2eiSdb6JIMeppojkhTnJVpp2jSjxlNXDXXZsCxL5qalNQ7fOpqmRGlJkgb327wyLBc1WmjSXo/e5hXE+iYyK2idoE5zVm6OrtB0C4VMa5ANUlqSTGKqkqWYhwOaCRoXgCwt0FqTphqpkpAwTewqt028phUpIeRW6pDvoxAXAYYrJ52QInTv4kPFwsIbh3ctzsByfELSbci6A/prA9IsOCF7/RFfqt7gsJ3QehNy7xBI61FCYcTqpg7EWhmt7S2eVrhYP63cQ7FLGLs+qwgBG8eWiNXIaVXTu4tRk4tmDfdfazz0bz7m8znvvPMOP/iDP8jHPvYxkiThl3/5l/n+7/9+AN544w3u37/Piy++CMCLL77IX//rf52joyO2t7cB+MVf/EUGgwHPPffcf/LvfwyZepw7Iry4sDT6CBdiZd+K3ydg1YQOc2YRNDDOhU6NVDJqXEIfJnRvPAjFyFRc9oZECeZKUjtwQqGVpFdkdBNNkaUI4anbhjmCIyHQStJ1jisf/jDf+sf+O7782X/FF3/2F/ns/+vv0/zA/4lrT9/gKz//WfTpFCMyuhu7lB+5xa+en/LA5BwWGWeHj5hMp4znDfPWsTAN1jtyAUmlyeqCRkq87lB0EopuRtbr0t8ecOVWn41+l+3b8N79DnvXhuy9/S7zwxNUWTGua376Fz/Lrec/yAt/9Ad48MqXOHj3LvtfeYnLW5s423A6P+OoaZnrlM7WkDt3nuLS8x/h2tYVOrsjnnrnFR4enjNdGkg0m8MNnrh0g1k55Xw8wTeSuvEImbAsl5xPJ5zP5ixrQ2U8pgKMDXwdaanKJVVd0SxqbBPU81Z4rBARQx3HDlKQpIo8DcLfTr+HcQalLUK0NE1FXZd4LPPFnIPTE2rn6ec9OnnGmu9zNp4wns1o2xrblFTlgkVZMZ0vqaol88WMZVniXHBjWWOoFzULAoxN4BmUFlvVvDo8wbU5n/3ae0zmhuOTcxbzGtt4jvOUG43kcgM3hxtAy2KwyZU/8cc52h3x03/vHyMP72Lee8T17TUur8FJPWa/zbny1Id55bWv8mj/HnPlyTeG3Ll0hbf2z/FJzhTHVgJpniEzxbSas2xbcp8ikSzmJWPmlHjOjOeesawB84hUlwhSG6SVBo+RBMhZHKcKKeO4KGC8dxc13V/8dZp773L18BShH5NPiR0SpEAkOnQahCDp9XEkSKnCkU0QNFAudCT8KuhFCZwMgQGKYNcXSuGkQ7oVxTOQVRPxOHUWGfKarABrfHRTCFAK623g0RBa31VTY02DEp5+T3L86CGZkKRC0O/mzOsZXinW0iHj8yVV1YQuRqJZQbeEirqqpsTWILR+bLWN7XEpJSoNSAAL6HRF7oY0UWRJilSSNNF0swQhNYVOKOfLYMVOcpZ1YBflWuOiPdu7IEw3rYnGg9A1TIuMTOf0h31mizmTxYL902NG3QGdboeT4zn9TkGuEm7dusrXXn6Z6XTCsF+Abbl5+w57B/uYxmJtw+n5jO0rLVcub/Hda+uY33qVR7/9Olb4YIknDTZX68LrHhpmFxoNEQW6woHX4uJacC6EU7YScGGEbLykSVPKtmU2M6i8g/QakWjSPKfCUTVLXJLhpcMn0OrA3DKVpV42VGUdui21oa4bnLdoGaM0vKBqPcaAyHPSjS3U5iWapEcjFVZKmvjcpBS0TqFEwk6vYCOH7VTQkw22nmDMkno+x7mW1jQIIej1PFnaJUlStJJkmUdGZEBZl7TWQFPHjlOIpvDexjGhje68IDR3KhzAVuNI6UKqu7UO7yVKOZp2gZsF/o9Oc7JUs7u1RifNMHXJl15+g5OJoTVcjEQdIW/PR8xB623g/knABZ5YQmCrrIoNFwnDUgqIWqULDY53sMpEW2m8osBppbkS/7WKlr/wF/4Cf/gP/2Fu3LjB3t4ef+Wv/BWUUvzAD/wAw+GQP/Wn/hQ/8iM/wvr6OoPBgD/7Z/8sL774Ip/61KcA+M7v/E6ee+45fvAHf5C/+Tf/JgcHB/zlv/yX+dN/+k//u8c/v8tDxbTl0DFRrILT3i8murATimCFDiFPoQXdOodQIsKTIOQuxHGSC0FyQQsTUpNb5xji2CRB0YCz1LZGeEeuUtY7XTppEnUbhrJ1nAtHhWagUxIBv/3ZX2Nw8yYf+Y4/wnD7El/4Bz9Ne3TMyw/vcvzyG2wZmCUhX2jr9g0efemc2c4u4ySnaiuWzZRls8RIi8gU0sRk39YwWTRI1WEoNdYJrFcsKsv5vOJoPKcyLVJpZNEhu7zDpa0R49mSDMOo6CKdxgvN4WJJeuUJtEuYVK8z9bB+9QovbG9ydP8RM9dyWjWc7j3kq0rQ3Bmzd/91yvGErLWsSUdZzZi3hkOrGAy63LhylY2Ny2yv7bK9vkmuFbPljIOzc05PFpyN57x17yGHRzNkoqj8hLffeQ1RNfimwdrwekutAm1ThvdWS4nWSTipZilaKfIsJc86dDodOkVBt9Ol189JpaVtaibjU/CGNltQdfos65rFsuRkPGY8ntC0NfPFjHI5p1oGXUvVttjW0tqWytiw6eIuCmbjPcdNyazVXD6aQrnkweEJ1mgWyzJwOrzg7tmYt5uUgYG6l1AOc5r+kLWnnmBjY4PnPvkJXv4Hr1C1nrvTks4nP8Rc7jDaXOfWzSepbc6r7xzycDoDKo5Ppnzkm76Jz3zXH+LkvTcxr32BLz6c8vXFMdfwkGhSIel3FHNjMOMGV6T4tmWnyDB5isoKWjwqtnm9fJ+I1QU9gECSeo0XBoHlet3yvaen7P7OK/TrGm1DMakyfdHV9FLGPCEBtcE1BlFovLDAYwuskKG4CC6b4K5RcXzgpASfxKIFbCKQTXACqdj5cT5cDyF5OLwXjlBktS72SoWgZcWtAC9S2sZhMXRUw/j4HJ0mlFVFoiXT0zGb/QGnpeHRo1PqebBGCx06RAF+59E6wQobXyuLlIEtY10oBL0lJAq74Hbr5hndbk7T1NR1Q7/okgqB1hLjLakORXhrK9Y3+6RpRlVVpCoDm5F2C8oqOFu6nS65cChrmTs4mMwQWjDMcwqVsFiUuMogW4FXmqqtOZ/O2FjrsX//mG/6yPNgHJu9IdPJBGMcJ2dT5g/22NkacePZpxEyYX/vkFdefY0Pf7SgKT15phkNuiyrOvxdYfaOUKB8GCsIFXk/3qF86HwH4rKIsM/wnhjvwrUnAnsHCTrTmMoxWzYk5RyZabKkh1WKRV3inKKpDcY5rDWkiUJ5izUNTVlTLiqWVUnZWlrTXoBE29ZivQsOoTxBbm7AxmWqok9rNVgwkrgfJLTekQpBN8sYZZr1jmajm9BNLKZJWM7HNO2SdlmBF8zivFD2LFoOQCQoUkRKuN6FpjUNxhqqVoLUeNmgpEG7YBsXQoCOM6Foh1+54b5xUuBwsdDDWcrFhNZBp79OL8vIt0NoqZCC33n1PQ7OppR1DQQn10q/LuK+533MEXKCVAqct7Qy6oBiB0Wt9Flq9bxcLECDzkUATkiUDcWRleJC82Mfb8n/wcd/9qLl4cOH/MAP/ACnp6dsbW3xLd/yLXz+859na2sLgL/1t/4WUkq+//u//xvgcquHUop/8S/+BT/8wz/Miy++SLfb5Yd+6If4q3/1r/7vej7Wu8hSCS/4yvoX3t6gY7EinG6Ms1HAKYKlUkWh3gqqI8MM/wK6E4VIgaPgyDxoB7vWU0iB8AFT35hAX+xnKf1ORpZnaKWC2twazr2nBVKd821/9A9zdLjPr/1//1fmxyd87Pu+h+/e2OHXfvqfsvf1NzDO0grFkXDMmor7v/klZiJh0evREJTgzhistVjjcUZiW6jKBu8UReEpCofWAeffGMewl7M2HJBlmsVySrdI6KQpiVIYK7m52cf7hrsPTrE+Jc+6dDo9ti/d5OZzHyX7zj+En4+Z1xXLxRJ5dZ90/wA/PefI1MzLGpWl3LnzNF995V/y8GhMKyFPcgZrGpISmWgOD+9z/+13sT5FZgMGg21Gww0u7WzxoQ++wO7WGk1VUbdBkf7ym2/yK7+2xqtvvMq7j+5xOj+7iG8PDIjHd50xBmpCqzlNwyKvu7RNy8KG1y3Lk3A6bxpoanxdszChG8ZsQtka0iSlWi45OTlBelhOZyEHqanC11kTdQ0EKi+EVi6C1hqsC+4F0zq++cmb7O8fcXg+ZyUo7SUFPZWgpUDlCXbU51HhMYszDv/Vz1CvXyb/7Ge5eXLMW03N4d4U9eoDbn/7p3n+2/4AR5Mzfup/+5f8/C/+KrlKef4D1/jgh5/n+s3neXR+Qjl5xFldc7CV0r005PB0zFZVs75sGaQbpB5aP8UsGhKhuLa7gU+6bGUdTtqWhQInPaskEY0MreO4wgnnEAou1S1/6HzJxx+dkNZLpAziTxId3UIRsqaCWJPGYpcNjbUU0RkDDmddJG0KiGJ4IUNb3rcBCR4WS0lqLbmH2kuUkFEfEUYzq+cXcPogUaROUrvgWLPWhp1IBTH4KjrASCjwDFOJm9ZI52iNYVFWjDZ3eHRwwoP9I9o2dHWlDh0WbwMiPUkVSkKeZiGrJkz5UTKlahqqpo6iX0eSaFKdkEVxeJYohr0uWihS72PKbkKvyFiWc4a9HoOiG8ZM3rJ7ZZviJHSuqkRSdHponUK9ZHvY52Q6x5mKLE8jM8WRaEGaqrDJYxHCgm+oywWtSnnvvYekeUEn11y7tsu9B4+wxtDJC/Iko65qtnbXaKxjOV9wsndA0R1RLWZU5QIrFFbI6AiKHRYZBNsqFimaOGoUCT6e4p0MeURKCKSFFAkiOr+iyLtsLcJUpPMFpAqfSBJT0xiPN1DVNQ0e6w1tJhGJwaqa0kxp2pamrqmNDWML4THGBqu7BJGkZKMd5Po16mKDxms8Ag2RHBvWlUzARpay3S3YyCXDQtLPUwaZhCKnybvMZqecTU5olnXIunOh6+CRJFn3QqCbZZ0wEq2hbkqMrWisxbWaROUIlUZhs8T74CgLE0cf9ivvowsuPCSEbnN49bFVSdMaFNDpjcIavrlB3ViWjYF39nh4cBYwH1FUKyAUkRG9v4IzqpXLLc57BLExEE0tIetsVVe9L0ndA7hI5Q3QRgdYLXD+340z+Tcf/9mLlp/8yZ/8D34+z3N+4id+gp/4iZ/4937NjRs3+Lmf+7n/LM/HqVi++fgC8/iFZDXeiXNAJRVKKrDR4uXD1ym1qjL9xc8S0cYc8hdEFI0JlPBcbiyFDrTH1lls/D0b3Q69IiHVSWQrOCa2YULgExjA5AN+///4bezc/jzvvv4GZ+++R68/4jv++B/lf/m//d+px4KOyHlkGm7vbNLfWGO/hmmeYr2nqmqqqqJtaqqqxZhgSw02Wx0SetOCNj7vQiUM+13WBl3SRNJJC7pFgvI1J+eK6dLQGwzp5B2++sZ9HI5Z2aBnCw7PztBFj2G3R6Y9k0WDMJ5bN59mcPNp7mQFiVZMlxN2t7dQruEDT98l75ywd3bOuK1olxZ12HA0Pqe70ef6czdY7w0osoxyPuds+oCvvnWXV996k35nA60U167u8MHnbvGR5z7A7WuXODw54J9/9lf4+jtvsP/wAdPJNOhMYoaHUisdi4x2VsNiscTULZ1Oh26nIE00pm0pq5K2U7Oo5jS2QemMvNsjyQqmy5rJ2VnAs1vD/ukRpIp2aanrJpzYmvYiHwQCs0gIgTWG1TnIOc/n3tzDt47L165xMn6bWeVACbAW7WHgJf3BiJPegP1r2yS0yOWM6/5dtq6l3B1cxfzqK+S1wb33FntvrMHGiFt3nuTqepf//rt+H08+9wF2r9ygqjz1fManPvAkX5vu0XjDx29cwi9OSU8nPPH7PsbZm4/4V2/ts54WcZGSuDTnZDxDU9GfzOgPc2qtsS6IN0VMfraEOAykQEm40tR87/mED+0fkZXzqIHxoASqVwS2igAngxtBmlAoTidTXDePQyj52DodHQi4IBAMjrAwP/e2BdsivCXBEdQ4CiE1zlv8ynEhHrergz9G0rpQEFlc7JyGro5bQelk6NSsdXM6Ys5SOPqDPpWxtF5Sl5b9kykmMixkN2y63lik0igl6HRzskShtUIpBVGo773E+uAaFNaRaE2apfQ73YC5zzSJDtTtIs/IPCE/yku6nZxRN6fX66IcLJZLRoMu/U6KGPawxiC6BY2H8+mEQZ7RKRQ38yG7/ZTpeMakqhkvSgol6fY6iG6P2rUURUoqHG05Qw+3qZqa+3sPKbKEq1d22dra4uHDh/S6XU5PJiyqiryb00ly5u2Eqiy5dedpbp40fPH1R1RNIK1K6eKoQwX+BzEPLmoClQgBgKuMG0QoWiAUpN7acDIXFi1giUJTUFcVdtxQ+Tll69H5PLzOtWVZNphEQ6owNqHB0UofUufbhrZpQ3JxjAyQUmLi+54Mhrj1S7hsHUsKPgIJAWk9WiVYIehJxeUiYyuVDBMYJIKuEnRlglIFIuuSS01bN5wvz2l8LFpwYcTnPXleIGWCkilaewJa39KaiqZpwvXrQ0q1iPwi5x9nZq10Jbxv3QkaIhc1JSrqLlsUjnp+ireGgdJkOmV7Y8gLzzzB+qjPl15+k7t7x5RWkAh14XCz0dYcFjAR4hcUoYu2UpzHe2w1hRCIeE+5yEyKXZvoLhJC4hBxRCoii/p3f/zezx6Kbamg3fMoggDbiyA2isHKZCJcsNY/FuGyEtnGG0j6YLa0ETgHgE4IsyWPdwbtWy7jSXw4cdemoUEipGez1yeTOljU4s+cWUcFZF7QKwq+9q9/lePZjI9/57dy88Vv4uXP/iq/8/O/wQc+/CGa4wXrTuEzzdTWXLpxjXtHJ5SDdRYygNvapqWsWpra4YxFOE+RKbqdYWCeqIxOUQQuAJp+b0S/P2RtMGStXwSLt2nodQZoleCspmygakPiqaVBCQ1C47yjWi5YliV4mMwXJMayWeS88eA9xo3j6sYlklRzWp1zdXOLT3zLf8fHli1vvv0ur919Eynh5hOXkJlksmhQdY+TBrKOp9/b4sraFZ7p99noDekIwdnRAtsWjA9b3rx/l4f77+CwdDsjPvj8h7h19Rratzza3+fg6ITT8ZhFWVJXDd442qYJynzAFhneG7RyOJeRF4FYWTY1xjvyIkeqmslyRrc/pDUeR8uynLKoFjTeMZnNYox9aPt6gggu6BFk4PZoTetM0DrEG79qWz778gKEY5h16HShMTXWNXS0Yst1KJ68TfXxT/DJP/AZXv/Vn2P/X/4cs/0x3Wtb9K9vkAlLLhTbVy8z945HB2dceSLjj/3J/zP/9F/9DO8dHXE+rehXUwZ+wXvmDDMcsH1lSC8H+TuPkK7L3v4Zg1GfenPCbz0849k0wdaSd6olomx5TnbofuU1PnnrBq9c3ea9vg7tYidphSP3Aq8DvvtaZfjOyTkv3j9isKyCfsNIrHOoQQeRJfg05vx4D8bjTUPTlpwtZmxtrl/oyGSSh9O1d2GxNg34FUsietCEwFuLNBZtgwDV4pEyIv9lcKtpLwNhlTACrq3DqhgGF0+rPtowvRC00mOxZCKg1eeLJePJhPliRl23HJ6f0ukU6DRB1ZZi0KFuG4y3qFyhfIIzbRgFCE3bWCpjEBqyTJIlmmLYIcvXkFJgmgZM6JikiaYrLUWSoJUm66SMhgPG0wmusqQC1rbWmIzPMa2lX3TJi4ReP6etlmRFjlSCslyysT1ko9vF+opbT9xACM/p8RmPDo+ZV2H0K1TC+WwOjcUtl8g8Z200wjnP/uEBUknOJjOE0Ay7HZ58+g6z+QLjPG3juP/uQz70/Av0b9/i3fv3GOy9xzO3r3H7zV1evX9C1RqkC7wWTRDfr9bk0LAQgfgagzYTIWNhHDdHiIh5kEIhnWNuJY3qkImGuoJSglxO0Ymnl2fYsqJsGlSnR9HPaTNJU1U0jaU1AmvCRhks7iGKxUVRts4K1NoWbrCBkylehC6L9Y5aejInkM4ghGSY5YxyzSBV9BNBR0EmQyci8T5wqPpr1E3NsimZ1YsLLo2Qp3hCxylNYodHOLRWOJ/gfIhrMK1HOBNEslGfKbwMHdxV3AThGnbGhG5NLBgEkRkUCI3gLa0PHV8PdIdbDHsd0jSh18mRyqESydv3j2itX7VrQso7PsLmwsFLrLiIwoeiRKwapFGH5h0uxnk4SbhfYwyFv2AviWgPFwj9Hzcf+j1ftKxgTSq6JY13aK3DadgF65WL1bX3biVBiFX1qrgAonCutUE17VdqaRfneDZU4uuuZbcxeNlis4DoLxtDJ83p5XmACxHdSlKwtMESePnSDt/zP/1PXLp9iftvvsHP/j//3+hewVsvfYXq8IyHjx6yZltuDofcKxe4LGH8aI+TSYm9cp1GywhfqyirKpBnvSfNFKNRhzzPEXhGvYRRP8FhUTKj1+nS6w/RKiFRCThHtzfifHoWqY6W2XzG2WQSPPqxolZao1RC2Rr+f+z9R6yta3rfif3e9IWVdjz75HvuubmKLLKKqiKlohgktVLDDbUsdzdsQ4YHlg1P3BPPPfCkAXtkwEYDHmjSDbVho23JkqgGWyIlUiSLrMxKt27dfE/ecaUvvMmD5137lCaiAI+6oFUo3LzPOmt93/c+zz9eLFcMQQ6Xg0nLDz/9mBfLJWM2fPfDn7AJHmUr9md7PLh9wucfPORLX/01fv0v/ybb9ZbLq1PWyy235lA1LWMYmM1b5ospp1eXPH52xbDWvHb3hHsP55wc3qBtHA8e1vzkQ823vvNdfviTn3C2Ocf6nuP5Hg9uH3N0si8DStZ89tkTTq8uOb26YBxH6Z+y0okh0stA7TTttKKtpnjv2W629GHE2opYgpHGfsO01dw5OaLbbOi14WrYMgwjwUdBVGJR1Cvwg2ccvKB848syslDcG1przuLA8WLK8f4Ut9nyNjP2795l7+/+LWZf+hWaGyecDp7p6w/Zhvc5agxvDYqb9+7yjc0LnsUN48UL8rOf8Pf/wQ+YT1pWp4+ZMZI++wCDw50csByvCC6Rny3JH1/yzvSAfHfKzCpumJpNSnzrcsnX1iMPcuZOU7Pa9qzVQAin3P9w4Je7JScPX+G9+ZznbYPJFjCoBLe2kb90teJXHr2gveqIWly9wQfUpMLMGpLTpd0Xsk+olBj6LZvQczX23JtNReSuAZ1Q2qESpDjIwzBHlBH3jTIZeSRK3odVUlSnjWZXlii3vQJ2GhpFnz3JCkoqzwWNYB5IU60S9wNa0efEqvdwekY1jOw1Uz76+GNCGNk/3md5sWIxn2CcJoyeqnZkpRn6gapS7O+3QjVFTa5EijCb1rR1TYiRbhyJKdJOapw1pDFglRJ0p67JIVIZjfaecb1mUdcc708JY4/Lkf3jA/YWB3TjwNnFFcvNlomyHE5b2tZy7/YNDmd7ZMlW58bNG9y7dYtX7l3x+PFTLi6XXK22nOydsO1HxjGy7QbOnp1STxqmiwnbTc9qtRJKMGWePHnM3Xv3uBgHQhyZTA+5Wl9wfHKL/f1DNuuBxWHm3smcj5/L/aaSKo4pea6+7K8pyLecatcCZaHgc6EaSi8OCNqgNNscWbsZbqJY4VHDgIuJtjK0PuM3nqwydezYy4mcRtYXV/jVltgPDDnhESdo3g2zKeHaFrN/Ez27y6AWRC3kSkaRkypyAhEWtFozd5qZ1QVd0Uy0AKYpRrHQ24rKVewtDln2a9YvBvwQ0TrQbzcYU6O0YQIYU2GtCNqttgQrQYRh9Cgrn9kONY4xChWr1HVkB3CdWBvLMKOvDQlyHqQk1GhiZLu+QGnD1BzT1g1aaV5/5T6umjIO3+STp5fS1ZfljCsrWdHniewiQ0mcl/gQ0bZojGwe+KK3NeU+1EpTTICUN3z93v8dS55/9oeW3Ze406EYra8LAtlVo+tyQyhJ9Ay6fFFlmFHsCqWyDDdFw0IJ2Eo5YIz0ZL4SI7e8hBf5nLkaBvoYuDudUFlVWqZFD+BDZBOFVnr9tVd58pMP+Ojxpzz8hTd47fOv8g//q/8Hfe8BhcuBudXUTvPZ1cCdwwPaxYQULZumJWaP9+KACXFkjCNaK9qmJpLohoHZdM5i/4DpbE7KiraaUFUVzlVUdUNKin4z0NYT+uCxTtPWijF4IplmMqHrR2yBKDO5/DNxczRY/DiyHEd6YIgDw6YjekB7Vlje++wJn74458Z8n9fvntC4KcdHt3n74ZxFW9NWjuVmzWdPHrNaXeHHLbduzLh1coMbB4c8fnSOTmtOjmZcXq5pJ7d49W3FJ5slJ+MRqxfP8MOG1fqUmCPBB5yp+Lk37tKF22xjkEFss2G93rLZdOSQ2HMzDu2MKltiCPK5VBX96QtOT894/vwMZw2uqgSaTZH96YRxvWV1uZI8hVITl9IuzEsaxHOUGzwVinGXtyG0YiYnxemyIwbFn7v7Jl/6xS9z5y/8EqcPT3j08QfMP/2E2cE+b771m/zgs0/Zv33Cu+en3HjlBFaB2YObnHWe5eOPONaJxQXcs4bLGBlvnKBv3uJKR2YHjul2if/kGfWjgQ+7K774lS8yawz//F/9Af/yvY94/2rDjWT5jaNDXpvUfITi6RB4HOGx2qA/+AnTFxf8wjtv8NmdIz5oJ3gz4SSM/LXVhr/45AmHF0tyVmRjCCWYyy6mqEY4a5UzJOkyiX1HGAcutx3eGFzbkI0cTLutTe02TFT57LM4coxCWSdZJFq2YQlWU6VDTIoSlbbF4ivpttlI0qxN0ijuU5S/vxPbk9FJKKgIeCIn04ppO+VHnz7DGM3+/ACU6NLu3t5nu9pipzXKVKw3I0YrqsriKoMOEiBmdGY+mWGMYTuMrLuOGD1He3tMnZPlAk1rHU4lhm3HdDZhfzHnybNnfP7BbV5/9T4pRJ49O8XPJ6ANtTOcPr8i9Vv2tWZhNK8cHXB8c8HB8R4xZGaTlqHfMm0mTKdzDub73NxfsFyuefT0GY8ePUcPEV8rZk3LxdVIJLK+WFJPJkyqKTlmkhGq88Xjp6ScOTg44OpqyXYcqZoZ68szcsos1kse3rvFd957zLIUIeZQCvlUFNG5siWATV/Td7tgvASEHGVgKFlbBllAIpmsHNlN6UzFNnm0D2gfRHPiPTYbnAbte4YOupjYXHhWK8/GZ7oozT5GJiFJznYN9d4N9NE9xnaPUCoYLJkYPCpXGLQc2FoxNZZ9q1kYmKlMmwNVUuCTuBcx5Oxw1jKZzNjfu8HZcs1meUlQI9pkRtujjUErRV0ljHIyNKOkFNQ5ocZiJITwMh0ahXPu2vF6jd5c0zCqmEnk/yZr0YeZnasuQoqMwwazrZjOKpqq4WAPQoh84c1XiBEen18x5lJ8uYuQKGdn2gmA4ZrKlUgRGUBjjOXXpxSpml3SwL/hLBKNzm60+bNfP/NDy+5LjLlwqlm2sKQVnoxV6tphhCkplNddQoVPR55lpsifs6J4kHblVTJNTkPmlRCZ9D0d8nA963sCsGhbuVCyAZshJIbg2QZPMoZBJb7+jX/Naw/f4Le+/V3+/K9/mWZ/zvrJGRZDnT1vzg447zuWJN7RhveePCLefoNgLWrsCUOH9x05hCKMQgRmY2A6bZnOF4xJc7UeOJhNWExaFtMpi8mUSVVTG41qEsPYs96u6ceeFAfqpiFvNvTDQPCy8xijICZG70kZKqU4mS4Ygud8u5XjW2m0k0ssKU1InoaabRx5ujxj1W1QWJqm5eT4gAe3b7OoJiymNc3iFtoecFxpPnrxmKvNyMEi0LaB+dxQ15L38MEnP+Ff/skf89Gzx7ROM20m5FZzY29CHnsWs5rNeslmc0oMYLNlMT/k1Ru3MXXLbL5PheH2YsHB3j598Dw5e8EQRq6Wa/wYUBnW6yWjLy4TK3zxtLW0jaapNdshlBvSYpzCj2OxW0fJJIhiq9eq5JMUka5SEnSGqRjThMmNV/n1//x/h9eeH3z9a5yePeVv/tqv8uqrB7z33/y/uLNMTOo9vvv8I7757Bmrh4c8++wRnz67oJlPuXE048rNifUe9eEeB/fuk1TAhgueP3rC4VZz//gNPvjg26w+fcHvPjnj2bjm8Wbkj5cbXng4qDLOWYLVvPnFnyf1A49//B6v3jji8bNT/vTiMx5++5K3L9/g/sNXeTaHr3Qdv/nkOYvNEioNRYMcUqSeStYJCqFVoyQnpdEzdtL6/PzqkrrdK4OcuGlEopkKAip/zCEW7YPw+9nVUNWSS+EMZd9EoQu0ra+1TOUfYbMi5Z3Vcpd0bRiUDC/k0kKrNSZFdA7MJhXdakRXlpOjBcs+8uTFJZN2gjUGaxTT6YKuD+TUSdJyXaOzIDA6ZtpanEfbPoDSVLVlMZtRG1g0jvt7C3SMVBoqBdPjfW6e3OBqdcm0vcWrr71JpeHixXPunRxyud2itKFbb9ivLUf1lHnjeOPBqxzfPJF0XLLQnGTsfI5PMGsm1DayaCfsLTpme3sc7c95+vw5T15cMHhPc2OOcTXnyw3r7UhbWUJMvHhxQV3dwOC5uFoDhvlsyvnZJc/mT6icYr25gBCYNRMmkwalliLWLDSAKQcZqWRn6cSYMk4Z0WCUc9kAZE1Gy/CrxLGCUoKIocmqIhsnKIAVnZRJnqQ9nkRMW4YcWfaeyITRwrauUC6hUyKIz1fQttkCc3ATU+8xZgUqoKLCIu60VDJk5OzNVDYzc4rWQK0zlVbirMuZlCNxdzhnqLRl3i442Dtmu9kyjmuUU4RqIAyGUVsZVHIqkf6aShtx8RhLSCMhSIq0VtKjJ3qVXHKRMlpJ9MaunZ6cSaUJXfRmZmcFkiVAQw4Dw/oKnQ3t7JDGVezNp7zx6j20aTA/fJ/HZ0tGlXFakPhcdJopZsg7HFNd61gy4HMiaUGydJazNeVU3HxCJUeyvKe8uw//PT0krzLNZU2RIpWId/K1KEjgLXmgSjmVlHjFIlxRRl8H4ez4752KO8WEF4KJWYq8ksClAEmxCYGzzuNcw6Jpi17asAsBHWIQmDMGfu/rf8KimvKVv/Dn8RbCGOiSokeRs+dh4zhxFd9eXWK04aCdcEVN31b0fiCGgXHoCWEgh4xRGmeNuCqso6lqrNEoElrJ5nWwN+dwseBwtsfEVhitiGag71eoPIogLAVx5Iwepx3VRG4MnwZS1Ayj0CLTuoWc6L3H1A34QDeM1M2E4CJjTBijJePEZ+p2Qu8Hqgp6v+GTZwNPzy442jvGR8+6FydCbWDQnmwUD+7c5e1XHmCqAVe1aKv5hZ97k48+/YDV9ooXpy84PV3jx473cqZtp7z+2l1yMsxPblKT0WNAx5G0PWMca5g0vPPOF/mLv/Rlmsqx2Wx49OgZz89f8Eff+wYXF9LhhNGMfccYPMN6pN9uMUqxd7BgO45sSt8PueQBaQMxCfS8y9tO6vrA3YmiBAqvmLiGv/lrv8p/9rf+Y/rQc7485fHZEy4vL/ng2RNutA3f+MOv88ZmxfDkCauzS7J2bI1lqRT1K6+SnOGyqlhvpMfljXs3ODya0W8+44ff/x7vnLzN/+zv/T1+75/+Fs8/+8fsk3hiB07HwKyt2d+seOYTQ7b4mDAB8sWav/nXf5OpqViPK/bdIZefPWesMtunn/Ln+si9e/e4u+mYbEQemVUim8wYRd9hJw5lBaGUB5ugn2HdQUp4rTnddPzc7YdoVxWbZ+lnlg1BJHpKhLHyuRWdS1WhK7Fn91YcFUYb0q62VkPMsTj98rXGLSsJCYxZvcyAKYiq1pqsEikpnI7MpxVVcHx8es7eZJ/KjATfsYlyXaxWG44OD/j40TO6bUDrxPF8jk6RJisGPNPFhIvNhi4kVNRUNmNjRPWButLstxW1gWnbsDedsFjMmM/nsk2ryO3pPicndxi2a9J0i2ta9g/3eP78GVWrmeiaG0cHHB/uc/PkDq6dEoLQlU3dUNWlJRg54Nq6QkWYTmZYp5k6zfHhPvfvrbi4XLHZdPgUmdaOj568wFaGEBXPL9Z88Nkpt2/to5Xi4uqSEEa+9EtfxDlL13dkAmenp6j5PZabHmUdIBqIXbN7SqJPyQXe2oFcAlSEoj/U6GwISYTeSZUI+2KW0Tt3YBl8MqCNkYJD12AypNzSpZEhjtA4AlPCJArqkDKESMgJjMPs7RPnC7JpMMqRlFihszJS9UAmpoCKiVnj2Js5ZhNH2zga57C62LSFTCqgnaARzjhaV7M/3+dsesnVeiD5hPE9ajTSrq00pISzDlc5oUkRdiBpRQiStWKMQXt97dZJpOvARTGVlGoL1PXAIpPFTpBOud4TEAhxwyYmco642T7TtuLWyRHT6YT5rOVPf/Q+7z06ZTtEjFLkUta4M6Bclwzz0ikkB6f8mtrownAoGSp5ubxJo3QZouJL59O/7fUzP7Rc90tkZErVuohQReditGRFCGW00zDvXAaQjWRSkCLSXLMzXmbh0Qt0qVHsxci9IaJSwIfMmR8584qTwwMmtsKWUjYV5QYLJLpis+67niYYLs43fP4Xf5Hvv/sDnp+dE2JipjOfm884HwY+9ZmDpiaGSK9qutrR+5EhdnR9zxhKx0cJ1fLeY7Rl249Um4HjPcfNg31euX2Lg8UBTW2prLg+lEpUlSFjMEpCjKbtjE03EJNC20pU7aNn04+kZAQqzVBbRyARlKR5DkMgxcx2HFBSaU1UmdoYdJCfESxlYk9oXTGbKFbdBavLFf1qxXZ9wdnQkXxiDJ4ff/89fqdqubWY89rdm9y6sY9HcTEO7M1arNpHqQV933GxXNENnvfe/xilMvP5jNvHR9y/ecLRYorVgnakGEm+5/T0kqODPZqq4Y2Hr/HW669x4+SY3/n6H/Cj93/M2cUFOWeGceRqtWToB3JIhNNz5osFN28dkx4/Z7vZFsonvdzki2Ve7YIMy5B7Dd06y6986Yv8H/73/zm3To4xznB++RkffvAj6mrCxbrnt/7Rf8f42TNaG7l4+ohVY0l1RWpaFvMJ3SayGgKXm4HKNrz+4Cav3JvSN0958Z1v8HOPen71z7/Fb/3X/xVn//QPuTFbcDrNPD27RM/2+fMHN6hD4MnT52ilWAZPnx12ueXZt9/lf/K//l/S68jv/X/+IUe9pu+3zOLInlrzoDunHgruqyTjKBf9SdVW0pPyU86GrBSp61EhUjUVL9Zb1hn2jg/BOvKu5LA8a3caM2000Wd0EhpOChSzJFzXDYMxRG3IWZOyJK3KvZzJJRU2JXFU7FI8k5Iwupj9NWQNlOwmscH6fiAqz3w+53BvjzEmVpvPaGpDH8Uyq7TkIGEUd/bmTCvDet2TRsts3rJabtgOQTZnP6IxtE3NtDIctQ37leXG3pT9xT4HB4fs7x0wnU45PT3lcO+Iw8Ob1PUUHRNm/5B2OicCtTFcnr9g3ra8cu8hs8U+2loyFu890SVM0zKZT8vnkOg323KgR3IMzKsWN8u0k5bZ3oIbRwPL5ZLL1RXTWcu269h0A03tGGeOF13HR59sOdnfR09bqv2GTz75jK9+9as8efqURWPRVvG9H3/AdutxhdJQBSHRSl+bHXLJbKmUERpkB9Kl4nhMUf76mpLfhZXlshz8mwfdTv+irUXFTE4V2IpoEtnN8dOASlnopFzKOQkYW0E7ZXQGssLohMoRpaRUdxdv7zS0ruLmbMLNxjFzisoaauuodBGgkq/TfncvpTTW1sybOQezQ666Ld6vGfsR52p5ThuPsUZEws4UilLuG60tSgn1KeivnGOq1M9coyfI52qMEaKg/HF33+UsuTgEYRt2QvcYR7bK41LHZHbErGmpKiPBkTbiY+L9T85JObALhlMKyT7S6aeKP+XXMEqVcEh1Xf6ZdoMTJXRRqZItWWjf8jv5s14/80NLpNwUidJjoYt7h2vERWKsKG6DnUhIZv+yr8nUv/trJa2V0udBKTLLHKrMfWuojWUTBk77nqvK8ebxAU4pTDbC9Sc5vLoQ8Vm6N0ARQs9v/5Pf4nf++T9nHXriELHA59sp943lT7aXbBO8oh1diPRNS2gaUvD4YSgpsWLtlU6kiI8RpRy1g7ZumTQte7MZe9OWxaRhXtdMKgt4QpR23JgCXTeSxsz9Ow/5+ve+zdOzM6gn6AzD6OkGjzaS9UKEbT8ShoHlMDDGSD+OhJCx1kIJJFMomqoGHcnaEKIc4EZDTB6tSz4Bnj4NRCu1C2O3YdNt6XOkVZ5Pnp7z6OnHzOuW+WKfbAKv3r3B/sEecZS02mntgERMI66q2WxG1quBH2yecXLzFg8f3OdzrxwzM45X7rzF3nyPEBOfvThnvemwRrEaej735jvcu3OHR08f8+HHH/Lp40eMmzVJKS67Du89m22Hqypunhxxfqbotj2+HwmjF0Go0dLCm3NJJQXQVFpzUDm+9Ku/wn/6d/4TDg6PWPvEhz/6IY8/fY+vfuEX+cn7H/Heuz/hB9//MV9oJrRzx9XE8LzKVLMp1dEebjLjw9PHXFxtuTGd8s4793jn84es8qes/tk3ef2Hl/z1X/4LXH33O+x98pi13fDBiyXvPlpjHrzBnf0btOeXvKYd97WlUZqL4Lki4NqWo7bGTKesTi/4xd/8q/zF/+Bv8Hv/97/PG+uOn58f03hNdBobFWQ5FHJO6FoK367VlkUTpjrPcLXEWUdymmfLFe7ggHZ/QSot6qRM3iGdFEGhKRUBMaLiLm5AEqqzUmy0FUeKEit1KtunoDRloy8wurynJEgL6afoCtEsljeBItNYTa0sJweHTOqK0+WatqmZ+Ejc9kyaiuA9TmUOD2ecTCpxVbUV09mUre/ovKfWWg5gZ5nVlnljuHM85ca04vbhjKP9GfPFPkcHJ0zrKd1mTYWjmtVMJzOMa9Ap0WiFqxtiUrgDy8Fsn/2DPRaLY7Ky0tsUE9bVjN6jjMO4ptQgQJM1cduhTCZEQZ7r2mIwVPWU2I4s9ue0VxOqsytez4qzi0tCStQTR7Vu6EdPionNpmccRrz3PH3+HK0de3s3ULahj5+JS7PQc0YpMJad7SRmQb6MklybnahUFZdKphyKxc5rKH8z707M4v5SL0We1zlaSnSMlrLhJ0XUGqpKqEQTiSh089IQHJW0z0ufXxQHmxZk2RkFOdEYzX5bc7OpOXKaRW2Y1JbKWmoFQjAmtC5wRt4dJVLqWZuKw+keV9uO5WUgDh1jNaCNxbqG0UeshRATtly2pgS4GWNFJ4JE+Ycixt2hi8IA/BQCpWUBF4pU9CKpFBzqnUVaichBZAQbYvIYZWmnFuNq2qbi5HCPNx7c4vlpR9+tMcrikNA/pXX5jo3cQxms0ehUclusLh1aCocqrsGXpYqal7rT0mr8Z75+5ocWGUzAFg4PEgZTFMzy5acsMdpZGylZK9OypvjhsyAk7JxEWQYDFARygds8xymyZxJWWbZxzQsfiIeHzOtavrAoqI0vyM9VN+Kt461XbvPi9JzVak1OPeN6W2y5ij2V+OXFghR7ngR5YC1sjXI1ajHHWwNxIA0RFdJ1a6YxBmM1Fsu8bdlfzJjNW1zZDPZnU44WE+aTCZXRpBQIwYNKXC7PWPUdxjnEWSdbdDcMDF0vHRQJhjGx7UfImrO0ofcjpnLiyCqfqc8BpyVSPHhP162xpsJkDSHjw4ipNE07obZy8/u+R2uIQyT3kdl0QTWdoTYrTm6ccP74MaREO53zq1/5Mv/qX/8ef/Kt79NOpxxMZ3zp7YfcPLnNkCPrzZJ+u6apeipXkbVFq8DVi+c8spaD6T5vPJwxm01IKWENXFSZn3zyHqfL56z6kU0nGoVX7t3i5vEejx4/5qNPH2EUnJ5fsu09/TBKLsekQuXItmglvPfkEEr4kylbRmYfxV+pK37j1dfZf+11vvcv/jnLd99nZRSVCTy8e4Afe+7cv8Mf/sm3sXHg7c+/Qe23bPorrlxNNooDZ/ns8XOulhumVctrr9zljTcOWG8+ZPs73+Xhecvrd96iubHP9GAfd3zMjz74hGfziv0vfJllc8R4vkbnwDR7XtGKtVP40XPz7Z/nN/9Xfxc728OHgUeffgjbSH7ygi/VBzyo9sTZkkrDrIWcLXipUnDTRrYsClqpQIWAXy1luLGW0Qc+Xi6ZvvMmxllUFkdRTplcuH0y6BxLDYeC4FFDKCLEXeR45tIdErK09MrWZgU91YpYtlTRVqSiDZDY81DuR0MW3YISeoiccFrjtEKlhAkR21qurjouNgPrTcf9wwO01lx0G072FxzuzbAm44cerTSbzRWjDzg3IfQ9rTPMJo7bB1Pms4rj/Tn3bx5x88YBrmnYnx8wm+wxjgPL5QU3jk4YB0/lKlxdYVJAOVcckAk9m4oz0Egb8HXLdmuJWWFSLcFgVv5ao6ibKd3QQzEBoA0mN4I8qkRbT8gkmmbG3uKY2f4F87NTLlcr8otzlAlsxsimH5i1M7RRLBYTQgyMYyBfXDFpNZtuxDorqIPW4iACci49MypdH+jZULbwjIsyUCR0caukonZQ1+hF1FqCQ3ep5ErhcmmGSAnlEwGRTxlTWqgSsjygKOVSL8NFc8nb8lGEsUmhVU1MCnIk6UwNzCvDjYnlhk0srGZuNa1ROGcwxZcTcyRlpDE5l767LOLxymr2Jw03Zwty17Pue/x2wBhNbxuMtlhtyPGlMFz9FBWmVCwC8cQQA05ZNKnIGij3Wn6J7lIsxlEoa8213AydIKVIVhmtDGGMEAd6swYs1d4+jdEcTCbcv3PIaxdrNh8OdJ3MO6Z8B0EgZWEvSrmilkqwkgpdEJUkAuVKC1QgCIsuupbMdQTvn/H6mR9adMzYco2qVCZDLUPJDrAWxKRwf+xg+8IlKq5bKLMIWtD55ceWS7BLHeB2VjQZtlrU6o/bCdXBDWYYnIIxR1R4yTt224E8BlQ/8PbdO5wvl5yen7Pue6zKWODnJxPeaif88HLJRQrMlObIGpIzdK0hWI0eFSEWnlZpcg6kDK21TBvLfFpTmURtYVoZJs5hjUMZoXQ2fYfKo/CplSYGTwyeROa77/6AZ1fnjCkyjjKl7wSlKYmiHQwJjQ/hehHKSl8XvHnvpexMayDRdWtShEkzKS4t6ZmJMRJANvCU8aNnuxlxdooPIymWn2VK6FEa+cH3vkMYNtQKhn7D082K319dYq2lnU44OD7i8PiAk/0Z49Cz3XbCSU+n7LVT3nzwkMZVDIMkk07aCZNJS6Dj/d//Ac+WL0BJSJwfJBp9Mav4/JsPuHXriB+9/wmPT8/ZdB3bbcd6u6WpaoxzDD7i6oqkBR0gG1ROzCctv/7O6/yHmxXte+/z6XsfsfEd7988YfK5N7j7xZ+nbe9yvL/P9//wm6Tv/oi3bx9z9OY9Lr/3PciJpbY09RRvW86Wz5nVLQ8f3OTuK3t8+L2vsfetD/jFgzc4un9E/uQRF7/7LdZW84+fPOa7U0f6wi9yMdYM3nGSoW1bZvfvcWe14VMC+25Ku/E8/Z0/YY1mjIn7n3+d2cEe+0Tyv/hXuJ98UgruiuZEGBXpTqktqrZCz2r5hypE0nJLHD3KGiJwtd7y2Fm+fOc+OkUBREKUzbuuwYglVfkSNRATdFvY9OADCYN2ME4nnJnMqBI2W0SgKC2+IYq9NeeCmypB+OI1bbQ7OzVaZVL2MtigUSmyaBvSJrHxHpMUV9sBYx1tbTnamzL0PVnXrMik6BmVpm4aae0FeZ9RHtLTxnL3aM6tgxkH+1Nu3zrh+OgQqzX7swX78zkqe4buisoqGuskZj9krIOkRctgrcU5g9KGqqmJIZBDYHe8Z2Oo64aoNB4JPHTWEb3oq7TW0q0jMJZoHEo3kDIGY0QDV03nuGZ2XYS5XW/wScKDVXLoHIkpkHzg5PCYIShc7ZjMJGE7pV1wX9plil2DbirLsziQCxUoT2RnLDqDT/maMMi5TCRFSBoRh6dTglzvfkZGEWNGX4MNPy3C3sXNi1soFVuwOJUkcj4iwnmTNSolEZIaICVqpVgYxYHNzJvEvLVMXUNjKozRhboSu6/KZUje3R05YVXxQzvHrWmL2k55NrQMQ0dyI9FsidaQnMYH+fcKmSKfj4IdWphSIhNFo5WRHq6UpHTTlms6yUBvSxGnuHQUyjkICZVU8Rlnycw1gpCGYUuXM9pkjJvQ1BU39vd488EJ3dDx3qdPS+q4Kd+roGkqiatK54K86JcWbXJGVxYV4/V5uwuO1FlEvfrfIy3yiioTiijKlRt6dwPtoL9cxECkTONM8aPLpFjKHjBZXVu4Yt6l/kVps8zgYuZmBpfB58xlTJweHXNnWrHYbknKyY0RKPOvBAHtk3j+9CmXZ5c8uHeb22+8wWXX8fizR8z7yJcOD6h05Ok4sMmJV5zjcNJyvpjQtRV9CngvOhZtDTH58hCOGJWZ1o5JY5nNJkwnDdo6ugiPTtd03nHjsEWzwWoJjRvGjDYwDCOr7Zar1RqVkJAtFRktpKzwITJ6T/CBlCNJG+q2QaV8XZyVQygPQMM4jkwnE7SG0Y/EKHXuGIdPmbpppB4+a1LOuN2NZjQ+jPjQ023XvAgdLsuYNHZrTscNOY9o1WO1PGDado8YErEfWJ2esjrXXF3MuHP3Hm++8w4H8yn4nlpn7t89YTFtyBhCCIQYWW07Xpz3LPYfsBoTpxeP2XRP0DbSNC2qEmWT0T1HRzMimcsLw7lPdP3Atu9QSkrxVNZMZy0pDhyfLPjCz32Odx4+5F4z49G/+D0YPsTFyL4BfXoB731Md3SD2a/8ef7lP/qHfPhPf5d52/DV//ivkasRnzxNyCwOJrzy8CE+SEHewX7Lg9cWPPrBH3PnT8/45TvvUPUjh9//iMOcuGwV/+TyCV9/eEI6eIUXa0UeHRWSUlpVNffvnvBzqxX5sydM25qnH77Pw9k+X/p7/xkfPHnMi4/fZ/m7nzLdJBZ+IFtdQq6yDBPlms4a6r0Z2ebiUpCU6XG7YXtxRV1rbC2R5B+vrxhvnHDY7qGGJYR0TRWUPVgGilTUlzGRQyYNgdQPckhXidWsZV0SraVkLxMljotEFlqWEqKf5eEd004oLYV1ChHfqxxLjkjh2VPAVpr54QHdtieHkVlVcefGXV5cLjE+U1UVRvX4GFDGSZAgcthOa4cjMJ/POFzU3D5acPd4j5Obh+wfHlLVDRrNZDIneI8fN5A906aBkGiMwWZIg8QYxBDIKVMrhXFGFp/ihMkZqrohJvA+oq2CGMkx0vuObA0qeVShy5PShQ+TYULiDHYJp1qGswns7x3gvWd9dYmyNa4bGZxniIHJtKXrek5fvODV195icbjPauNZLOZYdyGllAhdoI1YYXURRIRctF4lTE4BY05C0ey0DkVrGBHkeyf+1GSCQtKZM4QYsMaW7K1dqvnLSPmslUT95CRITnHiyABUCvuSLItZJwLFbZoFk6ltxcIZ9ivFrK5oLVQmonOEZKVDSyE9WjmhdSSnTIwRU0oOrQaMonWG/XlD38+5WHviMBJNx1aXjiyE5tJaqB2lJBsrI4FzktosWiypjpCFVQbCLMGi5mV+i+Kn9TWKkGQJSCliirNH75LjoieOiWGdsU2imR8xbRru3dyn6weeX1wyxkQKYJ1GKdHtOSeIiVUl/bmgP5V18mzXGnMtsSglmTta9lqW8We/fuaHFhEoaQJSDFUrgaayQrz5RbCnjHDbWYsupMRCYI10I+SUS8FXsV7ubqacMCnidOJW8hAyo/c804bt3pxXQ8J0A1sk+2MHaTtXMX/lNg/mlvD0lFRXPHz9Ad//7rsc3b7N7LWW8b0f8858ztBf8FnvCcBxW7NXVZzXU5KpCSmy8T2DSsToGcYRbSJ7swkHk5a2qXCVA+24XA1Eu8U/f8bZ2nN7VFTtlFklA0NVK2IKhDAwDFuulmsJNsJilFj8dIQhQZ8TMUj1gdaOummYTKeolLi4OL+upI8+oHSNrRw5eEI2+JjwIZEIUCmUtXRdR06J2WSCHwOQ6IathEqpTFIerT06iCakqmrGfmQ0EhLXTiYYIpVSEAMqZKzV1EoRiUQ/cH72gnEMHBwcc+/2be7evo2tpmJ/1QrrHDEm1us1y9UVq/WS1XLLODhi3MePPc+enJLshnai2N+bc6i8uE+CAdWy6Szr7cDQR+bVnC++8Tnu397n7sNj1mnFsyef8u53fp/lEJnjGY4N8WlHHmFuHSdGsRgT7/3zP+A7v/0vyXHk7V/5FV793Ft841/+9xjnqLcDk6yZ7c3plktmteX2cYs5f86bZ54vvPV5micvuLPsWTLw347n/KGB4XNvsLRHDEtXYFkrW6pW9CHShsRrR8e86AZuYvj5do87UZMeX/HgK7/CzeMTqnWg+slH0FoMsrHlMaKyhxAk9Ox4Tp4aKC3DKkEeEt3ZkhgielKRlSaExIe9x7x1n5nKqDGBMmCtIKI5o7wccDknCSBLSTQzWkoUc4iEABfOsUZElCXVQCirUGLgi0Ymk0lK40Mkp0go1Xy2PCtSVqhsXyYeaI1zGpvFKZOTwVmLcjVTV7OMkXZvjxdn5zhXM4wB5SObYUvtKgzy7y9aOJ613D6ac/f2EQcHc/YXe1hXo5WmshVKixsPP0IKEjUwdGiVyX5L9gaMw2lTOmUiGCv3h4+oLIgrMaCtI4SRsN2gvJfQQyW6D1WEklmbkiWUJWdqJ+RE9CCq/HHUmtl0RgiBvtuSz64AQ8wZaypZ1rVUhDx5/pSAxsfMMA5IIbcqzhhEX1HQDZEQlmetsMXihkcO/5SkCyinjM6FQlA7zmQXAIrQW0phUxlulVCwu6FFaX0tA5ASRgMxluBRQRpUljdlckltTTLkxmzQEdrGMG0qZgYWlWFaaSojQ4IuUgKtJG9FaYGitMqS7Jvkd2tUyQ1ShqQNc+dIkxY9zLhSK4ZhJCotBa8F9aO00guzKXlE2u6WXk9AFdenDDu2nPzaFAXmTlPDy1yUmEBXSuCyHARlAZSyctEHSXwP3qNNjwo9zrTMJ3NeuZMZfeLb73/GZy/OiBH5vJS+vn5En2LIOhXziQwrKWe0NaK3LMNijRFySxu09f9OJ/rP/NCStUzsO8VzSqnk+FP6hopwjYSxCnQW8SAUoVcJzdn1KSiNMVqQgpQKNWrY855bWaiZZe/5aDqhdpaDzZY8erwSmDQD1hqUrXj4K1/l3s/d41t/9DX+4A//kO//8MdcnS8xxlC1DQeV4+5szg/WF1yFTKs0DxsRRr5fGwaNXHgxQRS1u86JunZMTMPBrEHXhi4ljNaMIdFdblh2mTs3J5wosFYcHzlHKtuw3gwi/iLSD1s8XuzhOVJZjbGaofOMQ2ToReSqnaNpW6qqIo4jzlhCDALBKkFctLFUTc3QDeQQr1OlJ7bCOks/9CJm1IaLiwuGcY0ymjAERj+KHsBYcoyMXY/NGWdkuxnCgPOWxtXQD4S4ASUPqtUqSshZNlz1p8xDZN2P+BCJIbJaddxYzFks5rSuKqmTlsrUHM324WTgsyePWF1dsNp0xNQwjnBxccrTp1fUjaKaGg5yZjJtubwAqzKDUbxz/03+y//i/8jHn7zH/+n/9n9mrZfc2ptwd6GZZ41fD+T7e3TbSHvlyVnxvB/IH3/G5icfMrcNw+GEX/rrv8H8zgHdZs2BqnBNQ3O1ZFyt8Dkyv7FgOtO4Hz7hK3ffgvcecXi24WtqyT+NZzy+dxP94G3GlcFf1IzUWIIEyZpEdoqQIz5FXv3c57n3d/8O7/4//yF3l8B6ybu//Tu8GkbC736NxWpFbiqMq4U3T56oOqxShMFjJg1mMSHXBdnw4lBZX17Qh55JJWV9OiVWIfJ8MqXe36NJEbQVdEO9bCHJCNSOFmuyMppk1HXZoo6Q0Vxow8ZK8FdI8hDcORoSmQCYlNEZIh5drP8qqeJOyaVlu4g6c3GvKEFpQsygLZWraeqG9eC5vDjncNYSq0zv1xzNj9lsO8m0qGqshr22xdrMraM9jqYND+/e5PBoj3rSAgaTDZWxWKUJ44AfelwEFSNJe6KyQGAcFWCoTMbUtWjrUiKNgazjdQFijBEdI3kU+6/VWgYFYwVhSFIMKQd5lsJKV3JTisBV5UKfGy0LSVWTomE6yRwcDFyutvj1FVZnjNNYa5i0LX3X4eqW9XbNfLbApCjpsFqhoqC/qTi/rNKkJBEUKWehVHbf+S4oDVWk0AlUoMDeaC2ImaFQIkULo3TpdtrRPimhUhlHr4fZdE1Z7WgWpUEl6ejZWcLl1xc0vq00N2eWG7XmuDW0laF2Dqu0oAoFCcm5lAIqKTTUJYBtJ37NBc2joCatsihlCVqjVMtp3OI3G7xWDFYay5W1hXaRoc0oJd9lgqTitSMupUQ2RnRO2hRdYZEzlPe26wUyZRG3xpA0EmuRpIwy63LvkMhxZOy3aO2wTaS1NceLBeaBSCW2w8D51Uo+w/J7+2naZ9fsDJQuJK4pOq3US0p599npfx8uB8jEiRE0xSCNoTL05wK9FcGQQQRMSvznyoiqPVEqtNnxo0VcVR4ASkNWlgMUi5TYxp5nw8CLG/vc0Y6j4LFKY0pxnlGaWTthawJ/+I9/i+bTL/L2b3yZt7/8Jf749/8V/+q3/hVJRTbrNXeNwtVCO2yyYmEcbyz2OJnPiJVhtIoUAzGIM8UZjakdzmnqicFOLX1URG3J2tD1HpMVs1ZRW0VKIykFjHZoDc+unvHZo+fkFDi92rBZDwXiFqppNm1YbjeEEFivt4QQaVpD3TTUVUUMga4fikNDEXKWm0iVbQlNDAGrDa5y9P1AHMfrzXg6b0k5UzU1gRGfJEA7xyhx2xn6vkOlyNhvoZmgjWbbD/RjJLcTmgRtXQsOaw3L3rPZdNhhQNWGrQJjajbbDSF5XmwuOO+XTC/nHM33mdcNzWTOz33u59msl/zpj77DZrVCMfD8InJ2sWaz2rAdFd5r5ns12vWstitsUiz2HHVTsV4mfL/kv/nH/19+/K0/onv6mMOF5T/8y3+ZH3zz61w+v8ARiLWmfe0Y/WwkzY+5ypG740DXrVDzCQ9ef5U7D19h2FxicoaomLqKV7zi6vSC6ckxt2ZTDj77hC+qPfJ7H+OeX/D/dkt+t+oIr77GtH2Vy/OG5Ct52OcoLasSkkBWNZ2t2E4m1PtHHN5/jf033yC/95x42dH96fcIKXKQM7oCrGxRRKFhjLXkYSTmiDvYJzhJGlU5o0NmXG6JQ4+tTekKEv3AWdfRH55wOJ0xXfWy3eYCeRuDMgLNZwTaV0aBszKwWAPOYDEMWnNqDCsl/TBirSwJ1lmGEZtVSVIVG60QfJlqZ2klY7LGFmhdagBE/tJ1g0DcaHxIIhgeA+PoWcymXF5csVdNaKxm7LdM5wu0hkltWUxr5pXl3vExBwczpvtzJrM9atuW55NCF72OH3pBbsu1nmMiGaHIun5L5WpCcbioymKN/PfKSo2CRuLjr+k1JQdUnppCf5VnWIiy5HhPRoLCQikxBLCuUGwKQvQSd2CKg0tZ5vMZV6sLvPekkGlmk0K7ZbquI56fcnhwyLxtJb24HGRKq+t4+ZgTGItNhSJQEbLGGkVIos/LWUIplaKENHK9bO4C1BTqWk8Ri+1LqIkiWC3Ig9h9BVHQWl+XqQqiJKLr6/OinLRWK6Yuceug5dWZ47C2HDiYt5bGOFwRn4p7iZe/z4LQ6aTFRZSRQNMoyIM2Rv7vLDiDs4rJYFnoiovQ44cOVWm0MxhbkVVA6Xw91CltxKhR3FKUzz7GCFYVXVaSa1jiZwvSKE47VZLgU94t0jJ0JYXcC1aVDzqSs2fs18Q00s6OmNZT4nzB63cDl6s133yvpxtDQecEbVFFPG/KfacQAGdXq/HTQ+luCE3XiNSf/fqZH1pqq6msQI27siYwWGMwReQn06WWunQlXRMpJ4LaxQwrfJBNL2NQOQARbQVWdBFOoqdJkc4HnuhMnLQ89AP1NkuoWAFEm9rhJhWLV1/hl359jz/8gz/it/8v3+DO66/x6tt3+Oj+bT54/zOICdNOyCqz2npGFJ9rpjw83CNOJqzaGk+mj4ExJ8Ys3RkVoK0mm8SyT6w2I/sHLZU1ZFcuHmA6nVPpBqsNTePo+46z82ecL6+4uNry4nxFSJFZ1dCPIxr4/Nuv883vfo/1dkCQfAvG0rYtbdOw7TtW3ZoQApW1ECWDJutMayrGbcdm2+PqFtBM2kZgXSUwf391ha9GLldLQhgI2wGSJ/hE6jtBZrDkFNjEAKbHD6Fk0yTOM0wqy8prVLJslhtCiGhtcEoEYjl3nLkrJrMJLy5fsBhmKGu4NGvOl2dUtkLrFt+PqJSY7d/ll75ym9XqBZ9+/D4ff/RjGqd4dqm4GJdcPF8KzG1agtqyzZeYiebBwwOOU+Q7f/JPWa56JkcHtKsVH/2LP+b+Kzd4ETIXp1eM7ZS1NjzbLLmbPL96MOXX6in/cHXK3Tff5Kt/86/Rzud88OMfcqgs52dP+NPPHnF84wbT9T72FYM+X3NyuuX+yT0uP3nGN9yS37ttmd7+Il3c5/yyJiXhlXWhCCQOX6GTwmAYFbSLKZeffMLwu5mPv/8eb02OmTrPW0d77HdblBNOXRDfIq7Tkp/hhw69qFCNQoWfKjXsevrVmhQVKmawYJ0jOHjuI/7uPfYI2KwF1SzivawghSjIxw4t0MjA1FTk4NGjBh0Yajh1FSMlej8nGapUhgApieU+KbHSmh11ZFTRVxRxfk4S666Rex9IWC77TNWY4rTR2MqxyJmmmoKCvvMc7c+4Wg0CfMZMWwSI9XRK00hXUmMdra2xyuCMpa4aMoqQBqL3KBSVEqddAqkHyUKlpCSIEkbqCvBCrxojUQwpFUoiCvqVlMJaVf7bVDrPxF1inSYZjwfIGpXF0SG6A4rT5aUOQiLfcwney6W9eoLKhqQV1lUoaxhjQMVAHTIvzpbUzYxaW4ad2DMrVDly5PKRZ6IuNEZG8nNiFsohFVGrzoqgSnVIEgG1zNyp0PqlZwfRG6Yci+NI3EohySCrlCYXxCMj10Ms+iVlnZR65iThFiJO4XDWcG/acmtaczDJtFozdYY2G5QSqlrMZwXP2133lE4gpJNHhyR5JlqjnEXHCmyNrlusrsjbU2yVqJLCdyOj02hToXWFyRnlJDFXaSvfg0q4MgTuiiZ/OiBxZyu/jsoPHnIkOwNpRxNFCeLLMoyK+STId14GMZMS0a/ANISxodYNjYXZZMKb929zte754NEZXYwy7Kgd5SehelrJdZdSLgyH5OiYrDEpF9eTQhuLVuO/05n+Mz+02KxwWUkFPKCsTNeCRCWMziiVBImxRvIltJaIY7Xj6CRsaBdSl7Oku0rHTKBOkXthRKWRq43n0aSldpb7m4GZ4F/XQUhVI2FbV2drmq/8En/9V36Js3f/lO/+43/B7/3Xf8K3uzXmYI/5pkchW8cyjpiceDibcDSb8p7SrNsJKAhpYAzSN1RbS20sVSU33WazJWcjD8ckKntrLbWtST7T1i05BsZ+S7/ZUKGZVo7TsSs2xUzlMvcWC55cXPDdH36Pq06C5cbi4ll3W6q2wTrLOI7sCs5G7yVICqhdhbOw2qywRhPDgB8HYoKmaTEJXMo4q1C+x3cr+m6DVZnKGcZuwIeBmbXMVeJSB0LKjENkjEEeSLVis70ibzJNO6OtGwiRFAKzyZTGGqx1tE1DGgaG7ZaxWzDkniFKsNikaSBmLtc9Gald7/sBP3omkymfe/0rfPkrv86zxx/y3e/9Ce/+5Ac8e3HKpvcsNwPrPpJ1hR0yOZyzd+x552CPd9cD7196qr0D+nqfdXNA9cYtTvUn1Gcb3jnv+erxEb907wa3th2rT6+4vBp58PAdvvIf/HU+ePc7xKdX3O0yP3n8nKdh5Mnjz3jHKvamiunpKV989U1ynbistnxvL3LU3uZqPGa1lvaUVNwyqSxRdudEUBCSJ61WZOOo9yNzC13SPE2ZO7Vlr25LEmkqkfiip9glRMd+JGmo9meyvaZCVwbP6uKcbuyIQGUc2mlybfA+8Ggywe8tOE6Sk6KsLp7VnXhQ0AZVIGUJXLKo1KB8RPkkh37b8ERnhlwOCGAs6KPOovALFGcdkI1UeCSyQPzaFFdc0Vpk0cGkJGmpy9Gz0BFrFH0YqWqL77dkNKvlGms1m03H6fmlJE+HTHZQO0ttoXXS4qu06CVqY3FtjTZONBQJsI4YPMREZZygHlFiz1P0ZalyhbqVN5oLErmLZBfPqejvcoyEKEJki8bsBI85lkM9QBbNBSBIjN75dyiwvZGgNqWJJCrnJETNWpyxrPWI0ZruaoWbZqytCTmRtObZ+RmPTn2JiLj+qdeW5bRDYbUuFJAEVUZksE6qPHcRalAXGgmdC4lTfkaK0tGzc4CmVNZD2eJzGcRyoQJVfjmMlVuhWJLLIJuFKrfGMDWWA6M4dobjyrJXaZxR1FbjksQCcG1FLj+t/F53mscdsnhNReWix7IV2nm0qzHtBNDkiw2mFkty2Ax40zEYQ0WNUTVR69KInIU2UqUctISb7migHf117YoFaci2OwfnS+pLWhFK9xNJTNv535RUAETv6fMaa1qsNsxqx82DA770DigMP/7sCYkSMZJVofYyUWW0jhgM5FKYqUJB71VxfL3UiP47nen/Tv/W/4BfAbE8mx3EoFThGj3alJA5LWImhehZstqV2omAT4qqdiFVCoyI0EA2oDrCg+TQ45ZPfeDZ8SG33IQ7emBSa7JyBCV9C0ZrLPDZ977Pt77+LW78+S/zxl/5DX7hP13wvU//r4SrwPL5C1xWmL0DBu/pQmCuFPemDcrCCx9YtS1Fc1esi1LMVTlD01ia2nJ2saRq5ihl6LsRpQzOVDhb07qWg8Ue09bhDFTasJjMMKbi7PyMT5/01K0l55FXX32V082SZ5cjp1c9vU+M44AymjEGslZsNxvGcaT3Y3noq510CJstq6sNfe+pnJUI5xhwxqGSJ3QDum7Yn09pnWFvXnN1ec7V+Sl12WxNrjHeM9jMKiY2STEOm+KasuwphbUV3RiwEdLgUUphKws50LoJzkmJ2mza0jpHCplu3TOmQEqesO1JIdIPA1HB4EfSKMF9fn3B98eei1dvc7x/zG/8lb/Nr/7aX+WjH3+fr3/ra/zow/eZbTR9NzAMmYt14v1lwEzX7BnDDbXl/Nkp44PX+XN/4a/wz37nv2fsE4t+w5vHh9y8eYxfb3j06JKPlytCMyHFwNX5Fdp7/MU500HqFDY+shp6bjx9ys8fzpmhuPnaAx4/fo8PjjKROVEdc7mUdGNUKtu0Edh4d4YoEUG2PjG/2NCmmrf/x3+DH/zxNzE3jrkIMmCakuAsbppd/YUI+dLoGVYb6sOW2Fi0z4KojIHtxYphO9LHhDbgWkfViG7oxTjw+MYxsa456jrZmJUBq1DGFBTHkMZxJ7UQDQ4aZSuU82BHUohsTcVTpwmAThGdQJlCD5VXQq5JkwAyodyHpsDWMsBJuKLSWXIljMLHTDSGqp2g0yXJj+y6ZYL3jOOIsZlu1dNohwfGGKhxGK2oTaYyCWuR/hWr8TnRJEGsUopYZzFZoeqWOHoRbFonAXFZkcMg0QoYcszEHGRQKXH4Zd4ieU8cRPyqTCXt2GSiFe1XTgkV5b1rI+WHuyLZ3aOt/NlOhYw1Fp89WimqqqapKmpbiVA0JuHVneSK+HGkS5FmMidoyzaMEhmxO7B3KIQqLi61030mYqLES4jtOipxe/oU6VXajSCCXmSuywB3OsFU6C8ptKUEeBZnUvmfRhdUJBfnTKHMCjqxo0xQ4JShIlLrwKxSLGrDwlqqSu6nHOQ6idGTjCWXGIxMvs5UiaXoMEcRtVqjUMkIqmEcxlWYqsFMJqjZlP7iAu8DRjfSPl8NjFqhtWS8aGPRWsk1KzXo8hnkXKzFP6XH2TmPdnoWo8vika+1XuRd63MZdvJPDfZxRzGJzpOYSXlksz6nbhfM2jnW1GgVWN094vnFGZfdICgOoqFCZ5IK8jOjLndh0ZKpnZal6HXIYhv/d3j9zA8t1jlpBzXSNaKSbBjaiMIcxbUVTWtJNFRQQtV84VkNA5JbgtECAQckSlkpZtmzPwws+8gjBc/3T/iqgkWuUNbTec8YItrW5DFB23L/r36Zy48/5bPvfJ2PWoW9NeX55RJNZi9JAVfWsB1H+uBZWMudWUsImc+UYZsTQ1KEPqGjomlrcgroylI5x6SuuETyYHzfSwS/NmBg2k65c3LCw9u3aNWAVh7dtPj1mpAzTdNwfLDHL33hc3z/O9/g97/5PU43A6drz7aP1M6wJtD3ocCVkdE6yU7ZCay0ASO2374b6ILHtjVdDFRZPvtJLWm5uXIoZ5lMp7RGAppao6lz5PT5C7quYzv20muiFclqkh+JMWKbCpNhu9qilKHSlqqy2MrhnCP6ULbMSOMavB8xWYY0P3b0KcmhkRLD6BnHgZwjIWT6bsBamDjLMPQYNTJu13y6vCJFaOqGG3c/z99+7QucnT7mBz/8Dt/73rfYLC+5Wm55dLHhxXnPSc7cmBoWNSzf+wn61wb+F//Jf8S//hf/jB/+7iOe15bXf+kX6ZeXfPvJ71G/9TbttkPPDZeX55zcvs/lZIKvGy6yYRNg8srrPK8tw6rn9QcnVPt7XL234vHMcLad82xsyLlQGlkVeqRsQDnJ4ZAzNkOdPHtKMZxfsH1xiR1GDq6WvO4agbWVhRJpLsBFJlt5BPmNJKva+UxcVHFAjSP9ZsvZcskmBlplOJzNqJsabQ0hB55Hy9XhEfMAB1qjTCQr0QBcb346krMciErvgsXksEPQe1JWXGrNhbHoWJAXvUvLhbJay89LStCDHLFJtsJEkOTc4mhAGywSjihbdEKngHUWW7XMlGO72rDXTDEpM7iKbd9hraWpDJfrjpB3tRgwjAHdVlhlqGsHWuymMQbRumWNMa7A+BlbV6issHWDTaBDBFeh0KQEkYiyuuRNFfTYywNfDsOIrorLJEkVh2hJBJGwRjQRkbyb2IqeIKKzxigrVnBdhLAJUizEksnYqqZyNZVTWKfpQmCIonfr+x7lLKHvoGkYh4D3oi1BlUC5Ig7NSsS5FMpel2CxkKLkpqhMDCNJJUJxMulYygCLXf1aQ5JEoBqUoGgqSRFuTkWLCOXPR3H07joZy3cck/QcmQSVsnLN5ITKmhTlbDBOBNON0kSlGHUmpETOAZ8COkq8QSaBkQFLQKZEwhOTx4ZEQkTH2llibTGxwqYac7TAXs7wz89pXESZhN8K+uWt1FFY66iqTDaWhDh9NFo0IWQRkxtTEoHVtUh3V0lDLsgHEjaXUoSor92TxihB+5BrNyN2cp01SUVSFjpea42ra6x2zBrH7cMpb9+/yY8/fc66D2JLL8iYSrqgdUEyYpR8fzpDMoqkA5qMTeanAbl/+5n+/9dE8D+Al0yipcSp8JrkUsilFVbvlPMRspLk1sKHyqVXPO9Ktp6U5KEZKTdEzhynSBtHzrqRT/f3mTSW2+sONQau+p51P2CABkP0gTwkopnzc//zv8ur45Kzi0v+yX/7j/hkO3KVM4cobAabFOttz5hh6hyzuuLce86aVhpEvSclQYEUEecENWqqGmcrtLUkFOveM51NUEnjqpo7N2/yzv373JrPUNT4sKXr1lxuB64uzum7jqauePHijG0fxKKcMpfdhrHLMhw4w3bb7U4ORvoSeOVQWppt28pSK8U2BrEvpsR0ukfY9JAzVTPFKku2jtmsYT5pZRgZA6HQPls/8GJ5wbpsbTaAU7UsgykxjiM6ZBrXMpnWNE3Fwf4CP3p50DU15IRximHYUtUNYRzYbjb0Q08cxO2048YBoY+GUYaeENG2EneMHxm6vgTRZVQeefRkzaNHT/Ehcvfe2/zNN36e08ef8sPvfIvxRz8gbAf2Jvvcf3CHt46PefHu+3zjH/wD/uLf+Rv86m/+RfZy4upHj/joow9psPTNgt/83/5v+Jzu6LsrVusVt44OafaOOB8/IKSMU448P8Dfus13hytuHRxz8fQpKzvg7ZTIAT7Vkl9xrUsoqZ9KlVI52fStgjqOKJ0ZLLjZAfObN/hcTLziR0lytkY0KkqT2UH3QDfQXV0yu3UMzhbYLxLGwOn5Jd0wYivD/mJGW9doI66G4DMf7c3pplNeCZGm9PfsAsHIYpfPKBEilsAvSklbipHsA8p7Qs48t5ptluJTpXdDTtm07U4Y+dKhUlgUoQ4KqpqLYDfHfC2qTFmi002hirMydNsNV1drKqMwZPpRNFfOGKGUc6K2TrRxxaEWRo8tNmWNIFQ5RBIBpWVgscaSCTLEaFcOEXGg5DQI/J81zjRkrYVCMyLY1ZRDJ2dITvKPtBV6NhUVyY5W0lrSc4sIFQUpenKS7zjGQh8lhXaGnHQZIgWha5spe3sHXC5foFgxdB1j0pz2Z9y4eZN2VwxrxGmVcyff5Y6KUvk6oLLcxOQswtyUX1qhScWenhFb/U7gCYXSyi+RIQ1JeBP57nLJXTGSFSt9RHkXiA6oMpQqUvBF+SIRGLoc8Du2R4S/L3NscsrXp6YEvCV88qigwIiWo4xE16gHZFIKxOBRGFAWynfrqoo6TJhM5+zfPCb0ntFvqakYsiKOnjD4a41J1KYMPhJboArigtbXCE8qAmFZyF++F8nFknvYaNDaic4rFiwqiYYFxHm2C4VMuxRhBRAJY8fYrXCTOZO24XBvwZv3JUrg3Y8fsx2jvMfdUMnugy96G0RyY7UmKlM+k5fv/896/cwPLUCBwUtXQkrURqZKdOHSFRgjOpdAEgGbStdwYioP0aQBJRN5VJpUCttuhIAZOz40mU/2j7gTA+1mxXK15GrYyqZiBS5MIRCGLX/wD/8JZ3/4dezPPeTdRx/wx9/7ER/7iEdswgul0NZx4UeWKXFc19TO8GkMnDtDn5LwQjlSVZamddg8ig7EVri64cbN25wvO6w1tM4yrSc8uHGHz7/6OndPjqhsRmEZguHZ2YpPPn0CoWccOrrtlh+fn3N+saRPcHq5Zewybd0QUsRpERN6HyVbotBu1jqauiGFxKit2JUVzOZznLE0ObF/uE/TtkwmMxrbCH1Qy4NxEwb67ZroPV30bLKnJ11bG5NSomPJ0mvky0YzbSbUVjOfNeTk8V6GqGlbAxmfRglUUqDqFp0j/bJjGAaatqFtmwKXJmIUx4a2mjFGghEtx8XVJT5JwqRRcPr0GcMwyCEbIx+/u0I5g5m3vPPLv8Yrn/88Tz79CLrAWz//Fvfv3uPul7+A7jZUN46JZsrn/9yf45NgeP7snLhJPNt0bLPCezg8vMEPf/gBDBHdzrlUhsFBtx1pBk+yUz7Vht/+8af88N1z2rcO6KtjLtMMT4MqeUS7A6JU+QiEXbZBTWaSA1VKXLw4I8bAnTv3mR7tYU/XYG3RmMj2rqwha432ifXZJdmCmbdyKMRE9J6L8yuW64G2rdmfT6isbF4oSap9ljKfHR0SteNIJdqUUMqQETHqzp2H1qQoYvdd/wwFrU5JIOusDY+MZsASlYgz7XUHjTwEtdYYla8Rt1x0E8Km7+yWGrVrW9AScZCzHK4xQzcE8qbjcrlh8JGI5mp5gVWVPHSdONKapqF2mjiMUGlyiFTakotrLoeiJ6mLsNW+jP1SCKSvy/MKo8WdlWxBJHQZfGRLVqkc9lajsilFlVHedxHBSyWBUOM7C7Oy5poOCN7LZ5+tBDKmgA+9uG58ICuDtRXWWpRypAh11XJ4eEyIisE/ZXV2Cdaw2WxQ1nDjxk2Cc/S9aMN2zhClFWMRz+oEYecsVCW1gYxE8SRsSblNZGyU72T3KZmdrYtd7IR02+ScRTuBtAkro9AxoYu2Qla7LINzTuQo6JPOIuDNWoZZszuglcKHcN2tFLUh7xJoy7kSQyLpgZ17yqimIHq7qaf8qIJw6p3LJyqMcVhbUdUzFvOEmO8Tm9WSVGu09mx8RxgEcZKXwZIZxw5MwmonA+/uGv6pIeWaCisUWjEaiVAdGea11WirrktEKWhs1ju3bBJRc3zptMqhZ+hleWlnB+xNJ/JsyTCst3z87IIh65cOJvPSUSRaGXCIANwoJ8wFGv9TdO6/7fUzP7ToHMEV/3cWf/zu29OF0zemCG+vs1p2DzJ1ra62xuJ9iQUHUBmrMi5HjuNAHCI/mTouJy1f6Neo9YqLfkvIgUobWlPROE02AXXzkKnf59n5cz77g6d8cnHB1XZgyJBQLBHYeZi2nA8jA7BfGWxV0W0DfVUTYiLEEj3ftNTOkGMgkxnDSOwMSlum0wnH8z3unhxzcnjMvbuvc+v4iMY5FBrvR86vLvjss0+4uLjAGUW36Xj8+CkpJK76ng2KEaicxVUWFSAGgzOK7SgJvDEEohcBWPADSlt6EvN2yo3FlDcf3OPu/QeQJKxOWc28rnnr9h2Udnz47Cnf//G7rFdLhs1GLIwplVJFcNYyDiNjiYHWRqOsJfrA1NY4q7HGYZSjHwdSTtTO4HRiDJm2mVBRBjoj4kQHRGOISbINZrMZwzCw3awhjSQy621Pp0ZyjoyDF5hdaXzv2azWGKuoTGJWaap2Tq/h+ekLHj0/pRt7Dg5vc+twRppO6XJF1C0TOq6eL7l9cEynG+L+MbPZAd/5o6/j7t5gfnjEfnOLvUXDv/79bzLpE8ezKReuIk+mbK4ucAqChY2b8lGe88fvv8fEbzi48ybrpIGIpURtI3RQLAiiUaUDyWhMShxVDXWKXDx6wvJf/xH6+RmHyxFVV2Tl5OgwglYoLSLcsFqzuTrn4O5JsT/LQL5ebrm8uqKtKxbTiTywtUVVTrRVJB5Zw9lsD5PgJAzgA9oospPvwhSURKfyAFWy4SrZIKTPyBqhWirNM2UZbEBlyy7wseyT0vScs+SRZC3UVtFS5CyajxwTVRb6TJdN1u4Oeww6JVxtWCXPaujIUeFzZPBF9xQ9OmYmTYVVCR08fe6pbINKcr4ajAwtKaGt9OFUtsJqJ5x/QYlQFrTFA3XJrUELF5djKsndSZC/MYgLpxSdJol7laXYZrFmlyMzGkVQcoibpBjHEVvVKC1HQMqKEAKj7+nHLWMYpEzROOp2ymS2wFQ1uq7RMbKY3yQmy/lmw7PLSyb7+1jrsNrS9QFlNevNKFoViqmhuGpyVEUTWNwvUPRHGRVlKPUq4xX4jHSjZXBaXQ8MudCdGMOugcokpIZAybWRowhLMxLsFrO4amKKMkTx8nCn6DmSMkQUrgw2fch0Q6T3nt5pTHBY5UrIYRSRdNJ4LV/diPSnaVNOcV0cUxmyEvedIpJSqQmoHA5Fw1QWZaOYdHN8GOjiwHgRCMMopgtxhzBGhUuBVGeM9rgkWkWjixhXyTqSiFzDl0X0qqIM4knCUqREOGvJa1GCtlzb/ZEwuGK9IqQo909KpEGRlCEYS121LNoaP5/wys1jVtuRF6sOn2SQIwjtKoG7oh2NptC3O/SUyPX0/me8fuaHFqH0BWzWpkCzpVQq6YSzFrODDq8zAdR1jHdKXNdtF0CzoJoZmzPTnDiOkctk+GR2gFKak+0Wtluyyky0YX8y4WhvQV05QgisouEsZt741a/gPvkJw9kFXYZ9KyLRh/fu8Ppr93lnWvPs975NynBQWXzKvAiZVWWQzFhKGmMGEnVVUVUVPgSpVTeKw+mU/dmMSdMwm86YNC2LaUvlLJnEqlvy9Pkj1stzuu2SK++5Wq646jrGwbMcRpJW16m3IFtwzommrrncrglB4HpKYFNgoGkMs0nDwwf3uLE3gxw5P32KwmLrORjwved0smK52vBsveTg+Ihu2HD2+FNm0ymNs1LIp0tT6A4V00pi/o2hsZYKjXOipF8t1yiVqa3moJ3IQGXAakttFZNmSttMC0+gqJzBxyDwbQoMYw8kiSzfrMgj2MqhiJiciONACJEUPJWLaJ0wRlE1DbpS9OPAGAa0rZhOplSTCatx5GJ5xdnqgv12gjq9oLn4MT/89p+w/9pbzG/fRw9XnHzxTZ4/XfHo8Qcc3bjN/bt3CTGwfP6YSTgW+Nq1tM2MveMjqCtBfk7uc3sx58mTT9C+JqpIJBQrqZTJqXKNB5VJRg6GKkOVFdWQ8R62wxXq/Y9oh4ArQnRK/D1qF7UtHUIXL05xbYWbtuQY0SEyrLeMyzWHU9GvZJUxVgYHlYV+2yjFp/OWlTVMU+CGoMaokja4EwWSy5DCS1g++iCbsdZko0nW0FWOi2LnNTt4WaWful6KSLEsKsVkuZNWUGlDUCWfIpfPKZcgLiWbZkRxNXqsrZg4wyaMjGNCiv8iMUcqZbDG4pQsD01VkWKgLgWi/TAQRk/T1LiqwhoHu7h8ii0ZsTqTEspHUgXVpJUaElUOgCSfqdhUuY6r32l9tDFY58hGtDM5ZayyYpEeRyKaQQXirg6g0KxBJfoU2A4Dq81K+nCy6DZMtaJaLjk6PqFtp0L9VBMWe5nF4oy2PSvNwYraVbSTCduydEiMvnwtu8/82qGpBH0u717+mApCoOTfs0X/IJyekjO4/Du71OSd+FULQ0MsP08s0MX6q7UkvZZrOZdrQIZiQeUs+rpUEAVJG4YEyyHQjZ7eGZzVggzlQnlHSVbOKopWyRiSlWFbm3IPRVV+XVOaynefhyBJxlkq1YAGWxna6ZQw9kxiIGrN0xePST6gVCnojfL7iiHRNDU5GbE7553UgetIgmzk89kFvWkjNnUAI8as8v0IOpRVvH5vGaSvr+gU5TMWF6pWGT90ZKWoYsJVEw73F7yKYRMym/c+ZtUJdqKKBMOosoyUcxkkGymVsZN/n9Mir53CfNforI08mLAZYzUhR8k0UKBLfP9O3Z5SCSBSXJdrKaXQSRduPXGzi9zcRD5sHZ+2LbfDwN3VilY79uct+7MJ1ii2/cDZck03esaqZnL/FmHq+P5Hn3G17Wi042Ta8vDV2+zfukE7m+CUx5dApOPaMYTAmavYWBGI5ZipigVP7G7SKlxVFSEnGqVwaPw4MgwjfReptWNvMiHnSOc3XKxOyWng8++8xh9+/etcrK5Ydj0+JkIElLTc1rVDa0VIu+1EtpfGVaz7Nan0HxljqeqGeyc3uHGwj0k94xYm7YyTgz3+5Ft/CmbC4nDBtK65uFjRDVtJZfUjfdfxzufe5unjRwybDU6pAk0rhqHHKiXx/I1jUtUSEa/BVQZrNV03okoPUoiR6bQlZ4M1YldUStFOWlJSdP2Ac8LvjsMWP/aMQy83cgg0tkVrEQSGOEBKDCuP1Zq2rmhLKd7gPavtgEqedRzAyjDU1jV57IkKtMt8fP4J3eERmMw4mVKZkcvlM15dOMLykqlz/Pqvf5UPf/Id9hctYxrJRJ784Pu4vSN0yjCb8gtv/wb67i1W2dEPHp81b33+z6GmhyzPVziuACSNePdAEOWDDOUxyoatFJpMlQI6Z/Z9YG+1oqrnoEPh/wvn75GAExRp1dOtN5w8uFWeeom4HYibjr29GUaX7TcnSd8sGoZUKU4TfDJpiTkzy5EDDMqWpvUSrZJJ7OL4cxIKVolFhJwiqio0VWW4qhxnzmKjiIQTmaTk13WoEnAlQ1EsD2KTZfDZtQcbrfEibYSiX8hKmoG11pAc684zp2La1BhjubxcYrWk76JhOm0w2uC7LTolcciFDMmTiLiqiMLbCQojAuMirM3F/QEQQiD6iM2KTbfFdZ2455SWh7rW4irSGl0E5xLcBiqJWyUZjbGSPOyHgX67InQDYz9IzktlCU4TvQGlGMeBQGK7XbNcX5KCZxh6Ukr0Q8/l1RKi4s033uHo5k3mkymmbNiz2YLpZMZytSFpx+BHlstLmqN5cVxm0QHuXEM/5R6KJQQPZHRLxfqeEUeM23XhFD2Wfrk2Xme77MiXa/1IQdFScab8tA14l4aLEhca5YCPKeNKT5jNqoSPinV6yIp1DKy3AzOjqWpBeXZhdCCUpMoCKaU0kJLCmEZ0GkZJ5k0WPWUu9AsUoWsxhVhToZzGeEesPHEcaACc42J5znZYoU1NHCPZSvifrhRelQh/J/oWOcMybWMl/ViVa1jlEkinBG2Rw/F6bjbaEHdieyXZRTvGYWclN1m+I5JljCPaaRg1WluqqsVqxaRx3DqYcX6wIPnMauzFAEPEogV5hBJUKPq0a4F9/PdDS3mZol4XJ8BOpY+WhECtQBmJk9YJtDYiFip2sbRziJZNJ+1EY17RxMxbQ2DPe75W12wtvLXZcLuuuLt/hFPQ9VvOL1Zs+nDd+mus4tW3XuUHH7/L8Uyhb0yw28BssY+qpozK4YYMQ8/gPVorJrZhFRLnlWJIiZRGrJEvcGINzdTQd5ExZIJOaJ0YVMCEgTo7KlfjTM3BYoG10I1blutLVusV55eXrDZX9H3HMPSMwyC9NFqcM9ZJFkCIQg1QuGafwnUAmLaiqm+ahls3DjneXwiKZRQ/9+brfO1r3+RL77zNfNbglQYVWa7X4q5QiVt3jgkDNNUhnz15xJ279wj9FqUzfYystwPTSUsiYq2hrmpmTrQz2jnm0xanNb7fSjz46BmsJm4SVT2hqidY56QfZhgZQ6AfO7R2NG3DOCa26zU5eaxTmBTxoySGqpRYbjZoa9ifzTBIOdiw6ei2K4JSBBNISXE+dvSjYV4n7Nww399jHDtiGFh3HZOwJC49Wjec9huebbc8WW3Zc/C3/ur/iDfe+AKXFxf048ijJ5/S+zXx9CnL0zM2zQTXTjl58zX6xtFf9qSqxofE02dnzPeO6LYep5YQs/RRaRClYiq6CHESiZNAk7UISmfW8PbxPRazGTkacXaEUM6Iog+JYr/dnJ2xv7eHmzQkEiok4ranaRtUbaTROibS6EW34CzKWQaXeOIty3oPlzUHOdIqKwdQSqRYkjWVPOBJAcjlb2gJqkqZHJL0EzUVp1pxaVXR7mQRHysZVnRBccrtKwnXWYLmBIEoxXrlgCwxZeWpIc3lsWRIZI0gWwpWq44weiaVpc+JlA3TpuXiaik5K1qQEIoouLaOSdtKLkUWkWpWubRQZ8YxoYyTuHQtzdgDpeOs6+jXaxTgKitR7VEKEpWBZjqjmc7EgWSs5OaAhJFFWF09w2+uGL1QpmpU+KDpVKLzitPliovLJav1htEPjH1HPalwxrBdrgl9R6Xh+PCY8xdPiDqSDm6xP99DGUfTLsjK0LY1MQU2qyU3Tm4ybxsOpzXj2NNn8Enjk/ye4KfQ67LF78S1ZJkHstpRRomsRYNVvNxFk6QRekkmXbUbVijoSZZYesmAUozk0imn8TEVJE+jk6DqBhGG5lx6iJToX3oi26DovGfVa2q5Yq71HvIOS2aRkidjzMUhROkMMi+LDLUq1wYykJNTsVlLsrTSBmPEnJCUQlWGw6NbrD5ZE7y0TqcU2FUxoURHOJZyUG1kYYo5YqLMzZSoDYUMxbuBYfd7FORDlYBsfe3i2S0cMvTlf8NOHWNJjsYTVM9g1ijbsJg03D05ou9HqbS4HBlLAraiDN1Ymb+VoCvXCfPDvw+Xk5fSXM/oencRKdipzVUi5yJCsgZfxEgCJsv2k/JusFYluEnhUby6Hfm51ZpA5MlkSqM1X65b7i8cqd+y3A4i1EyaSe2Y1I6qcqy2V3z6wbtUuuPmrTnbfqRXe9THR0RXE1GEOJK89HRMjaFyDecx0U/q0lqdCg0BR/sN833Hjz9c4UNFyApbZ5wCpzVNVTFpWtq2YjZr6H3HMPYsV0vWqyU5J66uVoyjuKqmbcOYFEM/0iCQb0hKAuPKBUjOdH3P6EesNaSsydpw89YJx/sLUopcrtbkBONoODg44vvvvkc7mbOYTNibLNA5c3Z+QT2bsdpuaJzj8uIMW9V88vgZv/C5t3jt/m3cN77J93/yPiiDNjVGa5w15NRjTQPJMG2m6AxWO9lCMhhlmLTTIg6uGYee7WaDcxPIimEYZaNXlSBpWpfUY2jamhbNuN3gyei6pmorlDNk7+k3a7rlCnTGzadcbbZsxsTZZgupQk0yyQc8wgJIeVimHrZwObKygclkwtnFuWhAbh3x/R98G/KU+6++wbxVdEPH/Vdf4eO5Y/F8xZNHn+Fv3qWd7XPj5jGRp6yHzLYfGHygGzpMZainDd3VWg7gWILDssJoS0zIYalBZwshomPgcK/lzq0TUE6m9PwyCl1sRhZSwl8tif3A/N4dmSd8hM0oSEDtRPOSdjZaGWYlOVmTQuaZrulsjTGaG0njdMl1yTsYeyfay+zah8ki+sMVLU6KJAWxqnkaA1urxeoKKCsDi/IJZQ1JZ0aVcIVWMkUrg5bBKJEkVDK9dDdc96dk0YFEwCvDqGtONwOrYUseI5PZlJwzQ/A8Pb8gjZ62dihjxAG3C3RUEo2QyYQYJONIZYL3Qo0ZB8Yxxh1drSCkEgaXSeMIOVAlC0qTgvSB7YLnwthjbYN1NcY5bCuC2fXFGWN/wXp9wWq7IeWMj5HR1Hz04oJ3P37CJ8+fs113IoJUmVlbs+cse5XhcD5l2hoODxbs7TcY47l4+hk5KlzbUFc1VTOhnc0Yusykbck5Y43maNbwN375ixzfepVHZ0v+0T//PT49PXuZlFzaDnNx+lw797J8RrkcqrlEUJgsOVd5d/hloMTPi/NFWqJToQV1CZLLZndACxKlAlRpV8+SSFpcX0llPIImkEuvUY5EZdn6yNU4UhuoskcpVwIJS12JkYTppCiNzNLMLCeGiHeTyticilC25KkUuiSm8HII2g05SvRMztUc7N/gxYvn9MP62lWlnSLFTFSGFHbCoQSF3lFaU5VhRYYOCVtUZbDbyR9yykSVIKQCmsZrRCwW/SCAsealSUGnMqSp8t8EQuiprYMcmU9a7tw84uLqiu124HI9lDwgRdAZZWRQylEMDEIThmuX1p/1+tkfWpDpUVG6NMyO7yzqeSIKJb7+nSiLlwVTO7teSooYMiSDyYojP/KF5RUP+5HHjeNp43iQM68YqEhsg3C8bdWQc8RacM6KgLRVHDSKgCEf7XPgE6GfYvf38OOIGUfoPNs04lNkz1Y4bXmqFF3lilOjTL9as7c3JfieTT9K8asOaGeuw4XqusU5R9MaUhoY/YD3HavtEsXIolF8Gj3OOdq2pR8Dnffix3cOgybEiEqCsEQyg/coLchKGEYaazg+mHP/5Ig+JK7WW3KQ++j3//jrvP76Qzl0QuJqOxLChjtHxxzMEj/85D2enp5y6/AYlGJxsEfXBR598oJf/Etf5XixYH11weOLJRaHRlObSjJ1VKJyitXVUh4M2hAZaZqalGAcA1VVCwRvDV3XE3xXELRI0zQ450DXoBQXZxuuNgOTqsIpRR4HBsBVjiprDJrZ0T5WK4bY42qLnrWsV1f0SVy/s9bR9RvqRmPygM2Jyo2EmDmOEZ8DNHt4Y7h144TV+XMe3Jxgh0d87bf/Pr+fLIujh/yFv/g3+eqXfpn+3e+x9+0f8XDoeXr+HJ0Se/s3uDFC04+8uLxi7DtUEGh4aFvyZssQvQSqCV5OzMVlkRAkMSZczLRxZK9tpOIei+zqXuYWLcWEyhjoPdvLJZO9OcpJQGBYb4nbEdfU5JiIPuB7odK0tqUETaDms2R4tGgZK43LkZvRYgnXejGgbLr5JRfuhR4iR0E7rIVs0EkzGMejnBisEhSlCDGNthhbKOACf+/uBQUlIqAI70uY1i7tekdXZDLZSH5J0pkxKLajJmaDMo4xBdb9wHrbE4ZANKC8Z9JUpJQIPmCmFW3bMpvNXv7cHBmGDZdXZ6SccW1LQrPpBsYQcXUNQLfu2PY9rnLM6waCF0S1aUjRY4o2Z+p7FmmCSgqrG+p2RhsXJDLD5pJx3LDaXnF+uSYryyfPnvJ8OfLeo3POup71ds1+3TD1A7O24qiuaa3itVdu0zSGqrFUdcW0bei6Dkdi6M+5Wu1xfHhCXdcsFgueb5dMJhPm8zltU8HqAp5eELZrfuWLv8Kt/+nf5r/4L/8+V2O4/ixelgiKZMWTiRrRXGQZZndLZs4S8mmUxuodHbQTuip2wWpZyX/vsjQeBwV+VxCtizZLFV2LEo1TUDJc27RLnBWpgCnW8B44Hzw1iTpbrINGRdiF9Kmi0dAyNEUFUQnteG1PVSIgv47cVy8pK11KHVHiUJUZqxzoKTGpG/bnCx6vL8V1ZLUkTgPZe3KM+BggVUB1ff1G52iNQgcFSfRXxhh5H9fBc4mUiu5La3bV2T+dprtDxIwRUXuOstyqIlRJGVKu8EOHrQ1NXXHjYI9X795ktezpu+cMQShgZQ0xjsJ8xF2vXxaX5g7i+TNeP/NDS0yhhCblkhkkAtycxTJsnCp8nxbecedQUFLhnXImhkzMmhxL6VbKvLpd8+byisbVPKsqeqt4PQVmVoPVTJuKWBmBO3PCWo220q5ZzxzNvKXyBu9rjm5b+svI2nf49YaoJfXSW0sGJloirremoncS/hRzlAdqVKzXI9tNT/Sa48Mpbz+8zUefnjFtWpQ1WGvRBXHJZEYvCImPnrqx5MGyWW1xVUNTa/pxhfceskCmzjhyNoQoArQYEkOQQ0npQFU53rl3g//oL32FH33wKT96vES2VkkNdZM5XiXOztf85L2f8NmLFyz29rh/fMKb9+9ycmMPawKtNezvH/Hs9IwXz065f3Sb28e3+eKbb/BHf/wNlv0H2KwKIqTox8xkZjEN5NEz+pHGVahoCvyrIEWiH+liJEaFVTXGKXrfkQjYSs7lwUe2244YM2LNNTRGswor1qOndg1Yx3oYWOctBzdmHL1xj+26YxM825TYbD0pRuLY029XXBCYzywPjzXkNefnW/J0RrVoOV91jGFD8ltOblgO5pm9aLj76gylLuiGH/CnXzsnpSmXy3NCA0Enji0MV+eMY6StW0YNe3HKOiZ8gkormulAta3YdkG0AEkeQnH3/FRaWm2TpgqJPdsyd1ZQllgSM3dttaY87FPGrzdSRTFvAaF/hvUWgyAVeQjEKLZl61wZdiSNNRH5pLI8nbYEpalz4kApVEjFLikPLNnsiigziugX78lJqKrkLMpaslJsgueRyYRyQGizs6MKLWa1wpZt2GhxBkkbbQlci1FoJCXN0Ymy9SeBqzUKp2UQyhlIicbVbLpT5k1LGnxBROSQqCpXRN0Jq6F2hr3FlLZpJBfKKEIMbFcdfdcTYqQ7O6PzsN4OxDHQD57OR5bbns6PxJSYVo5J5ZhVFcezKU2lmU1q6rZingaSGjA5YbBM/Zxhe0HSkq/R9wPrrmfdeT549BnPzy54sdxw2Xlyjjw4nHF3MeOodSymDY1z2MbSzFvqukYpjXM1ztZMDibgDENKKN/J51E3zKcT1M2b4rpyFbHbkntPu7qEEDj7fs3szgPeevUBf/SDH/8bQYHC5+wEz4kogI98j+Xw3w2wWpUY+l1fFGXJVAqNEqpSyYKKLtlcpbDPZU1IgqJHk8nKoKLQglkpdCiWeLJY/HXRNSrwSrFKibkPTDS4AbJWFAMb1opmJKpcXDASmZBLUJ2hiFjNS41OMU8VpKW4mfTLdnOxtokrz6KYTWc47Yh5FIRw1wflfUEKA1qDN6r0/SiMVfgwoFIi2ao0LUtibU6pfPQvCxyVQJXlPixCYiAHiZgwZdjRWkTxQkFIejRpJGXwg8ZVDbO64tU7txmGzGrT8eTZuaDaOZOzxI/oJIOMKO70T8uE/q2vn/mhJatMyJ6UXyrPExIrbpSGLGruMUnQVs66fBcCw8VdmFyKoCpIcNj3fO5szYMOaCyPrCEbuOsTTaixtXy55loZj9SJq5JBcGOf6t4e7XJFHiLj0NFcPmO9XlEZQzaB7XZNF4RBnVkLtcNPWkYlsGRI8sD0ceTJ6SXOKpyRLIDDowPW24FuCNSuoakddWWpKyeCPyVcsB8DxiqWmw2r7ZobswVZwSQ0XG46YhyLQC5SPHBS2pUUTlfyzHEJYxO3b9/li7/wC6QI3/vR14jZEGNk7+CATdfzx9/4JiiDs4mWzM2J42SvxlYZ7WrefOM1dIaP3v+YG0cH/PiDj/jw008wTcOqH3nlwat88PwRoNAbCOOA04px8ISQMDnTVDXGWupmigL2Z3OslYNwHCM+JJw2TOuaMSu2IbDxPWas6FYbtufngopMWxaTCWyWVDkzbyb/P/b+9NeyNL/rBT/PtIY9nn2mmCMyM3KqLFe6yiM2yOC2MIObfkPTatECIyQQll9hCVlIRmIQg3jFP4CslgxX6u6LaF1faEwhrvuCwVW4XK6qHCsjIzLGM589rumZ+sWz9okyw6V8hdWSxU6FMiPyxDn7nL32en7D9/v5oocFVVtR24i0gZE2PDk65eLCIXTOuoPd6ZhBLgk2MMgEq6qjjJ4pFe89fEgdp5S7e7xYr/jk8TPu3ZG8+eaMO3eGmLVjKHOmww6dRVYPznn6W4+4+e4XsZnnOPPMZxkbL3nx4BNWs1vcvHWb0kacibjSXbFsBhTsTkdUdZ04JKGHbwmPihoZBF56ooGR91yfTil82s6LXnCOUJBBkAEZAzQt1XrJYDICInFTsV4ssK2lLEo626bwOdINWmQZIpNpRYOgRnCkCta6BK0YdoGRsOlz966BBDFT/bSFxFTpOmLbEtsWGWLCkRuDN7CMkReZRgbojEBFnwT1PZBG+lTMiD68EJlAkxFx1cEnaBvpcOuTq+kzWYIP6ODR6EQ9lRqUYTwZU2jD/HKOEIq8MDhrU2qvAtd1lFoyK3P2JyOyHqHuvafZNFTWsdisWM5XLOuOxsGyaiFAs7bULrDo1nQuXbMxJDji7mjE3iBnd1hwbXfC9Wu7GCXZCJiMBiitcaGjq1PR3NkGZyPdcs3ps2NOjk6JQjHSkmKYMyg1h7sTJqVhpywRAmpnaapAVQUGqmI4yNGjNBEwuzvocoT2nhAtSoHWGWWRs5hbZvu7+LomN5LoHbmR2OUZv/k/fAX1xutkO68kbP/VyietErVUpGzrfioYfWK2CBLQUPTr+T5wj17PEmLExdRgboMVhYvEpDG/ytmSJGeR82n6bYAQVB822E8Wek2M0MlNFKVM+qG+AG6CYO0iRWgpVEQXCpREIcgwsL2moL+mHSEqpDBAQEYFQfVp5RLhejJ13ILdQi/oTedWiOl1x9n0s8wK8nLActUgnE0rSC+vCmylVO+wCzjhyUxaT3c+IIvkIIsRVPC9vgQw6d4eXCDLUvcmepE6MVwVhVKpl9ow3Rf2UaWiRfQMJefwBIINFMWATEoGRnP31iEXiwXVpmW+bPo8OplCL+k/rffpc9j/LsQFekV6PxZP1XcSv+kokFL3q/N0dVsgqLSH9DFAdMQgklMnRlxUlAFeqyveri3FwHBmDE/LjAMH97xEKXBGoqKC7V5TSFCarWA9jEaI6RST5eh1hTiu6ZoW1TqitFxUa5pqw0Geph0jbfCDjNW4ZK0kNnQEn+LbW2BdNSjpKQuN1pq69ty6fsDp+SWj8YjMGMoipyjyhKn3rhfdNezujVgABzdvMZ3tw3rFeVWjByNCd0FtUzppYy0ugI2K1ra4GFBRMMhLCqNoneSf/Mtf5/G3H7Ket+hcsTMb04bIpqrJlGBvd4oLDrrAG6+9htKRxnYYqVlvLIUSvH3/Hu99+C1CqHj4/DH/wy//c959+z75cIcsG9LZFqMUeS4YmREuBlqXYhLQWdprI8m0AanJB2n9E9cNQXcoAja2qEwwMCVEkhVdBMaDDN+1GAnL1ZwsWEa7O1jrCNqjZKRqGs5OllTGslk62kZzsDcmDCx5JlFKM54MsE3N4e0xt24e8s0Hv86jheaVuxNOP/mMbz9fkA0bhjcKiv2Al4HabshHlrKo8asNZ//mAbPVlOr6McvFguAbyEHXkWx+wuqDr/N4eYGa7hGUxOORKt2UB+MJhMhyvmFZVUTVB4GGNHaWJHeFCo7XssjdaQnzdYq4YCuQlCkLSAhi67DLNbrQqFIR6o71Ys16UyXqqG0RNlDk5sqhQL+bj0IgpOJSFnxWjnHSIINnB88o+j6xdntHTJ1oejemYC2JJ/gO0baIzqf/pyU+kzydjLjIBgln33ffWgpEn9yLFEQl0Ml/1HfhQO8uSsVRAn6BSIviXtNiY39PpgdsCUFwApkPEXrFelPhemFv6DtRT3LwGamZTYbsDAeMyyLFBkjDuuo4PZlzsdkwrzc9gl2RZzDTJgmfywwbI9N15GS+4aLtUmYXGcvFCmsdl+s167rBE1Fqn9Eg6VmyPlNMBJDBspgfc3G2YLnsWC2WjKWATHAwmTIcjJEZzKuGB6cbLqoVR5dzNrZDCUHmImOtOZwMeOP6Hq/eOURnGaOspMiy3oYdGI2G7O4esFwuiNZSqkgpINcScHz8W7+Ffe8xt+/d4mJx2a9IklZlWzNcTbh6ZUtEXgUqCpIVPL2uqQF0/cAiIK4EvQiRmlDniTGB6hDiChTnYkx6NBcJPiYJiOqtySSnWpBpdYhI54WPyXETAYeniYHOBZq6pZCmnzRL2l7cbXrrUgypGcanIyAmDXsqjPrmb7sODTEA7gq3r0J6/0jA+0B0HlxACU052WFZr/CuS+nqgHUBSQJexhjw3uK9wLo0OdFa45wH6VBS43xamyEl0W3dSwYR+qalp+AiILp+fdeThhGge3G6JxJVDwb0Hq17V663NNUq/T2dMZuUvPvO6yid8Y1vPeDycpFiF5TCbl/vGHtN2Xf3+D1ftGyVz4EUC44QCKlxIYlv5Xbp3V80yeLcT1tCshZ7n+Rg0kcOm44vrVtuCFCF5jQ3HBcZb1nBjT7rJfSWo3iFVe4nhlon+qBt2ayWrNdruqrDrjZE51k2G1bVinVtsTYwH0hmEcoiw49y5gPDUkBjPY1PXWpE0NrkwJF5zrAsuXO4z4/+4Bf5V//6fwE1QZkCHxRV5Sh0g9ECa2t8aNDZmPm65eHTc46++QjXo/GHo4Isz1lvLE3Tkd4akqZraa1HSIEWikwbZjtTdnbGPHr2nEfH52SDAXdvzpjsjvjNTx4z3UluIhEcDx4/IwjJ6XrFbJrT1Q3VxYK96Q5mOmS2O+X73/0SHz94gutq/u2v/1sWq3OuzWZsljXgyXLTxwLEXkuhCa2ls56yLMjzMr34UrFabRgMh2RFwbDYIdiOarWAYCmUxCDpFms2lyvmmwU6V+wPMopxRm4KVp3FqcgwUwgnsLbDe8XpcU0uSwyCHMf9N17lwZPHPDu65PPvzBgNB+SDIa1yMJtQCoecDnnvk0dUBXz++0eI4ZK1t6xf1BxuVpi9AYI15994xurjNYNXbzNvOtZ1i6sacmFRuUGGJerxb/LGcs7sc+9ydusGj+oNzvc3DhcYZQUHsxl129JtT4desyFEGpfvusAPjQcMF5e9tqAPSds+gkRaR1g3tE3NcH+Kb2rq5Yaz+SI57qIkl4FBZq7YG2yFrP0N2sbAZ95zVA4QUqGjYCJgFCNS2P7NQd+mJkdFej8mQqigZwN1HTF4glY4lfGQwNIYgtiSTHtNQj8E3z6X7dw5Ro+QKh1EWyeEEj3jIq0TpVTp/d536pKI85ZAEjIjDcF6fOOo+wK365K+q21tWj0JEEYznIwwuUYoSdNZzs6XPHj6nMtNTQiBnWHJdDJkMs7JiyGDfERuNAho6paTRcO3H7/g9HJJ5zq0TzlIIQQuVit45rBdgxFQGsP4YMxgOEZrhTCeOqx5cXrK89Mz1tZRKsNkPIS84Hyz4ZNPL/jkxZyjVUcXxBX6PteGYZ6hheXT+QlPTub8YLXhiwONLgYMlEbq5MYcjkZc4yabpmN+foySgdII7GqF72o0ivHBHgwK5mfzZNtnK4L2yX0TkoclcUJSGRFiUhtKGV/qDmMvKpWCGHrbd+RK1OvwCJPyf9IETSBDr5Mh6ZYCJDBd6PWKgOmZfE71Vlxgm9AchMCFBLprCSkQ0wascxgPQWuCdETVf240MSZ9lQoREdK5E2Sv0dqSffstqBR93tL2+uudS1vsfvBJBkAIDIYjyuEOm4sTpAqpsZYyOd1CIPjQhwE7rO2jH4RIbjNve4Chhp7shUvBnIg+e0rClukipexDJ1MbEYl4l5KcRAgY1HYTSyRirU2gOpUTnSWEZNqQCGajAW+8eoemsnzjvQ9pNinfyIp+tdpr2K4quf/K4/d80UIQvbA6EHyPJw5pjO1JinJESpqUMRKdSG4GIfAirYdCTDH1hXN8btVwv7PkGkKW8yDT1CLjRmyZutinG9tEqYx9amjsvfomxwlPXVVcHLWsqw1t23J+csbZ8TmXiw1za1kEqBvP92RDCgTlMCOWOTVp9Cejv4L+5KrX4giV4E7A7Wv73DrcZzbd4WLdYYygdZ5N65mE9D1LFRiNcj5+/JivvvcRR+dLLlYVRuUUJmNsDC5qgoauqRJgOiqs9wjS/tfHfn0WYd1Y1pXFCkHEc7qqeTxfsK465sunDLLXuHXtkP3ZEqkkg0LTbFrqumZvb4/hUNH4hgcvjjFKMtmZcLl+TugWzM9fIGODj5Zqs2EsxgwGJUTPYrOhC5BrkwTPQpALiTSGTGu6EGhWNdq45K7QGVk+oFteUrcVCkmZ5YAnuJbWB9Q0Z293xGLTcLGuCb1dc922nFysaB3sTIeoPNkxiQ4lIgSHFI6L83P29g8Z5ZK1XfHJ5RxKyTiuuPv2DjFuuPPagPe/fcqnjx8S10P+4A1N23n8ozXPf+0UEUY0g0DV1eAdMSZxZ2steT5i5i23PvyQVxYN4gvfw41swMfjkiebmi4IysGAnYljvlxyvlrjRQ+WE45MQBYltwm87SNmkdg2MYrteKE/7COibWjXS7LpCKJgtdhwennJsumIKjKQGZkwST9A2pFfJcu6dFNdtTXfbBes79zFS4dEMXQW43oBQ/93t11d6vkCiL7zU6p3ZaQZjAAanfNYJq2MEDrlnBBAqsQ6liQ+hNgKJVMwWyAgo7kSGUKig8bUZfROwuTcSROW1IGXQjAblURdcKI0a2v790IvupAiZW0pSeyTfweDceqGbcdq03F2cYm1NdNRxqAcUBZpZRuFxJFx0cH8fE5XtSzbitrD3EWsUhiRI5VHioj3ksXGcrGyHF0m0N3IGG5fu4UuCrQB40pGox1mu7t8+vAEpQ1oxaOzNU/Pjji6rFm3FjMcMSoVnXMoKRgOciaDkkmh2B9mSByr1ZqLas3Zs2NG5QAhPXo0TO4SnVHmEekFo/EE6iXBdXT1ktl0xhtffIfNx484y0ds3BK7PTitv+KApJ/z1r2XHDAxBoSIV3A4hb7KrSGkKAC2+hfSxEDIftrSu4NcDOTbAgABHnRPyBX4JJiN4KVMoYj9jE/0xg1waV0pdL+KEjRKUkfP0EWMt+jtJ1FpiuIAzTY5K7nvRNR9JExMMQxSEFS6NpOIR/aFikyOMbhaHdngE18oOnJVsLt7m82qxroVUXiUMEBKmxYiOax8dOk6EQmNL6UgJZgrosmRIq1UVS9huGIyEtF9NRX7Ndx28iRcwAhF8AIbesF66LVDeKRMBUqyT6eIBCmzlFsULPvjgnfevMFycc6jh0dU1iNFSJBU0evm/vt6KD1aPDrSQ6rSLS9KsXXbo0KqyrvQh571ehZExCOJURF82r2+0jX8PucY+URBPZOGj0yJJnLfgXZtLz5N4VhapAtAKElUGlxHlJ5107JoE3tktal48eKS44sVF03HClgLSeMSej0TgrwoqHVSsUuhkCFxADKjKUzy6fvgyIgMs4zre3t0TctsNmPZXJDnJcJkmEwhNWglmA7GZNJydHaKc44b165TliuaqmI6HpJnmqazlLlmMtjB+sD55QJ8xGhDjJGqamjrtPoJ1nNxsaDrwAxzMDnr5RLbeYoyp2kanj55QplrxpMxWilUUHRZgZGaYJMwrK7W7M2mTKdT9qoGGxybaoHJBEpBVzdsIgTnMcbQ1U0SJWtNXqS9vifRirsuZYZIF1JOUtugjUpyjaLEO6hWc1zXkSkohMBrQSUcT9Zzjo8uOTtpUbogy6BxLcNhwSAEZuPEhUmWzY6HL55xfHZBXmRp1C0Fp5eXPD95QjWfc3gwwjQbbt3NyAYDjpYXtM0M2ba07TlGjqieNKx+9RSODNnBlHZaYF2HtAERwHpBYyPCWuLlmmt+wO7JC7JfP2coBuzuXuPe/Tf4ZKBYKcloPOJwf5dNU9PYlF+uYrqpDqLl+xSMj8+TE0Ftb+aphkj47Y7YVHjpKYcFy7NLXpzPOV+u8BIylcQDRipybfrFDleiQnpx5OOLOY8lOJn0LYTIvndE4QB5dRhtRYhCiBRXLzVRQ8wEIQuIPKXSCgHnJuNFZlC94BvV7957vqbuXRopmV0k/H1Mf05vvwwhaduu7g1b90JfHCmVdFlGKT53+5A3xhnzhyuezWZsLi5pnSR0HUJKcpVWsEYl589wkJOXOTIvcHXF2cUlVbthujPm4GAHISRV03GxrjlfNhydLzleVFxuOrrGp3wtBAiJUZJcRQYmrbqESELGzkW6i5ZN1fAjX/oesmJAFCqt/rKSYjDl+s3b/OhggPORp89P0EdLJuWQ77k/JC8kusiJJmO8m6I9hsYwGg4QeMalwTU1bedo6w3VxRGLyxPMSDOejTDREWzLcDRiujPj2dElIjRY1zKazshNQdwB+fm3eDG7xerjeQqt9JGOpCGJpPXJVbAf4HAoIdA+4FR/QdIzWuLLlYIQ2wM+9qsLkYTR20MwghfpPp+Su9PoIJJYOTKm6RxR9GLaPhFZJOPGtiLyRKyEDkUnPK2AJkayAEXoV0JJdNM/z9j/rZcXdQLd6atiOa1c0sRHG5PcjL7X8/SFylbK4LzDBUmHIeQ5erSDX2ww0RGlS6GWQRC9J9iW6LfFj02rMu8xPkdpQ4wCpQJG940FCnwk8ynmQJptjhF9WGZyDSV9fO/AE7bnuaSGQwDRB6LyhODAQ+gEmRT9illjsozZTsH3vvsm1no+/vQovf/6FZ/nyrj0X338ni9aLGk5nWh+vs8O2oZLpS5MiV693MN4Uow9BBJQTaEYW/gDTvKmbVKHNch5pBXPTWBGw+3aEdqGKgSaOo2Ls1xhjEnJxymtjRA8p5slLzY1y9pxuVrz4mLBcdNRRQhCYWIKfzNSJrdoYaiIOKUIPiQYlpCJwZKnzIkYNeOyZJgbdqdjTk6PMTpDa4OzidiZ9xyNLDeMypyu1UymO+zt7fPw6RGT8ZhpqclNGnEKoSnLHK00q/WaYZmjJDjXx47Tw4iIbOo1bVshpMbjmG8uycpEpvU+MCgLdkZDvHMoDMElKBN6a8FLmTNSSS7n59RNnW5EykA0NLXHe9BK4qylXm9oPBgtKKTAqIhWgq7t8MLho6T1lt3dCc42tE2HsxvKYojIJHlpWFQrnKuZ5DnBNbi64dw7nrqKRgRMY2g7T9bfYHyQ7M6G3DiY0rQdSM1qtaSyG85PV1zMV0x3hty4cQOAo6Mjlifn3B0Oma0s5YEmn2VsrOXRs5r58RThOg5HisJ1HP3WBeH9BkNJ8fp1jgceN/cIF4g+0jSexbohVBU/pgfcNBmGiOwiu3JD9vBjBh9/wNuvv8nZW2/yyfVdrr31Jo11PHt+RAhJNCeF5BqBH7SezDYInfVrU3ElwCNGYhdpVi3l3i7eR45enHCyWKXOVERymQzoSiYNUW5MCrzru9WQabro+PbFGYNX7yOCICiFFoG9GBDCAVm/SpIvJy6AQBCCABQYAXkKO43e4oXnWEnm2qRDUPfhpUL2AXgvPwv0BpV+7L1NAIbkkIghTbGCD8T4ciy/LdwEMCszPndjSnjyiEmzwUwzVgc7PDtfcuYUle0otEn3k+Apy5zJdIwymjYEGuupu5a8zNg/uE5eKi4v5zw9WfCth894cdHSBUVjfcp3sSFttHKBzBXDQUEpFdViycam6U+UkUIJDILZeMCNawdIk+G3kx9hyMsxk53eXRI9k9keb7zm6FqPVBnZcIIuB8i8QEqNUpKiMGRFkdYxShKDx3rLen0G9hqEhDnITIYMFmdbdDnl4No1Tp59m7BaUo4KjMlx1pLpnOz6AZetvOInbfURtndxxX49p3rnmKbnhfQ5NVLIvn7YXh9pCtCXBWlisOW6xH7zEkH1Oo+eu5+uzX4PoUhGjNBPDbZXyxY2GEXPEokp9sIrgQ2ChoiVki5G7FY6EHxKyY5pjYnYItuSgPW3RcD0Oo6Uti7665Kr4MhIxFuftgORK4qv9bBxgUpKQj5E6QLRNATCVV5Sev94pDD4IGhFm1ZDPUQyExIhUxyA9ymaJYok3g3ekxlzpYPxPkDcpoz3GXxB4PqicFuwbDkwPqRVlpCS0MP7AHReoJRAhECmNLs7U27c2OfZ8SXdqk4aJCXpkwi+q8fv+aIlOHCyz5kISealdCJHhuD63arAbnES/ZtehEgkgXaUdbxpHT8qAhOlaIqcC1PwDa3YKMX3do4D57Cd53K9wcVAaTKyTGHyDPIB0ShiLulsy+W64qOnx5xXgSo6TquOcx/IjSETBhsjTkaGWqJsBlpjQ6pEfbTpe+i7Ry0VmRI9v0CSDQxKK9brpHHorKYNMAgKKSSdc8w325wdRWsNtY+smprRIGecp9TQyWRE5y1117FaO6xN1uaua7G2pXMB6yxd2zAaJ/2LI2KdI4sW7yOv3btHnuV0nWWcaVxo8FHQdB5jMoJzvUI9aYtSyJfCRkHQCpVrJKoXanoQntY1OJvGrsOiYFhMyLUhZKlbMtGTEQlYVLCw2RCtpXIdo9EQHzNSxqhD68Bod5c8F2hvaC8bZBep15GYaUxeIIxgNh1w/WDCsxeXaUe7M+L49ILPnp3x2it32dspeO+jTzk9WiBFhtESX885f/GImRRcHxjMwOFN5MOHS44vaj74+ppZWbAzlAyNJpxvOPlgxbTOyWYCOTM0TYVtfepMvaOuO5z13BbwOTNEdn0ekExvfBk6Zm3D9csjXv24487xPh/ff5Xy1bf5VxvL8eVlEllGwRdi4JpvE0dF9fqP/madrJaB2LTEzCAHAy6OTnl2PmfTk2R1L8rLlEq/yhJZZKBDKk6kgkxzfr5i7QPZaJwIYUJQeMckgvYZQqQJm4QroNgWTYAQLzkvZTqosQIrAie5oc1MKrgk6J65Qq+L8NtpSYhkUiIDBBVxEoiJCrq1bKb03VSw+eASKZuXXf3uZMT64QO642Oy2KCU4PXrB4yzjKerOae1whQDOtdSlgVlJhHKIHSfuisiw2FBUQyY7U5ZrpacnS159OSU80USlh+OcnZGJTsH++SjAQ5JOSjIMsNUS25mAzarBfNNRV2t+eTpC5Zdy2vXDvnxH3ib6c6AIAOZpneUeLTKKPMJQig62+DjhiY06fUNFtF2CGXSylQljpTWGmICkdnWUVUr1vUyJXbPrpMVZTpcO0cMCldXiP6lHZocRhm2qgjtgslogsoLVjrjm+9/loirSuK2tN9eaiWFRMZUWBHTge8BR6KXJ1hbEufKENLPtddaoGWfjZwCFYXvhbYyaV1k1Ong71c26f4uCSIloEfVL3KiR2rRu9/SGlGQ3g9BeVCCTkZaH2liTPcoJ3Amonumm5aCIHsKmOihciThq+yjrKOkDx4VV2L1hAyIROdxPsHnZEzkdR+73goeicHRdoFWDJHDa3Rti/RNWqNJn+IrQoZSgRgt2vXZRipNU1LxY/ttlKBv1XsxdEYMGlyCzaWfe1r929AXcC6RrqXehvN6glSJcUPWF0O9VjSSJmNS9bRngbSBUkXu3tzj4WfPuFxsCEi8p28o5Hd1pv+eL1o8sXcPpIwJ0UeLx5ByiHzkKmlUxlRrQw8HigLpPDvO8hO64I3G4YwhZjmfKsODTFH4yNtOMHSe1WpD1TYYk6iWZlDCqEBmpt/ZRrqm5vl8wdfPljzbdNze36PLx6yrBbHQeCFYd44spsO8C56oFFUIOCGJwV2FbjVdy6DIiFqlvaiUTHZmRKHYNB2rdU2ZZ3itkIrEhdg0COD8tAEp+eSzF3zyyRMWyw0HozGqyMiMQghPlmX4KBgOJD6WrKsUJuiDxXnfh8B1GKnQSpGVBW3VMp2MiLZBeE+uk97AAiGadLOIMa0WvCc4T57lGGXSzcU7bNsRbLLpORuQRmAIFBIKo8HkNE2HUBGLp7Np35uZ1BmKmOCBo0FBDJbkrRE0MbI6O6WYjMkHiuBSCF5N6mxqD3hFU7UM8yFFMSJGS5kZ9qY7LC+W1Nbz6PmczapibzLhYHcXU0hW64pN3TBoay7rSzwNYug53B2idz2jawO+9eQJD596mqWiWyt83lEoz66X+KctYWMICHRWIE2GvexwbYf2EddYnIvc0IofChll46i6lDNVypRurYVkWg7IRwU0C+6dHTE5esqrb75DeWOP/3e7YmE9e23H9wF7lUdkhlQy9FwKn8SDwnqCdZS7OyAED1+84KSt0FmGEmBkxqAoGOYFA5Ojypw4yPrmMk1IPJ5Hx+fUxZTVZIJVya0ziZFBjCQyaHqfbgFWV4yO3tETZcqCSTJHjRABGyOPM01rEmlX9cV7uuVtR9iQAlB7mq5IGP8tFEuE5PiwwV2J9bcOBiUlrrdGe++p1hs+eO9rPP/gY8phzo1bN9jdm3J9OkTQEWWgxROiZzieoJIbFq0U4+kOOkurh6bpOL84YbFqWK4axoOcH711nZv7e3zutbuMJxOEVkiTph5GFxT5EOEj0jk61yCCZ7W+4HPPnrNYb7g+G/PO/TvkWdb7CTzex5QeHSEzeUoTRiILwXipE2nFAAEAAElEQVSyj7eWi9NzLp8/ZLFY4jyoLEMohSkyVCbJco0xGTu7UwbjIQOjKXXevyYSZG8LxuO9pchzxpMJXf2Ck48eMUSS71vUvma4Y5I4VLzE+EshyLaBhwKc8H0DkwoHJdTL9dHWkdNnGeEDoV8nqdDLr2QSfAtAqZ5oLvolTUh/J3WqW+JxEqMKqXqsRdI+prp5O61Kr6Hvn1eIkg5JIyKNSJgM7yPOpenENs3Ze58Kq34dq2LvUBIC+pXW9uukKc/WYkzfKAdCsLjQQvCph6A/qxB0ZES9iy7WxM1zwKGUBgRSJSjdtnhQSqWoiNARnUCheieVAN2reKTop44B31kIHmV0muCHrRA4IQCEEL0rSqB1KszpuTspPX7rhJKoALHqiF5hshEYBSoyHZfcu3OD58dzLtcNINAYjPrvRQuQXAU+JOofMV3QoRd7iV5sRBQJ7R0Cqs8YSjHdiojg+73mR40gzwQiK+h85Jut4EjnvOEcbzeBbr3icrPCFDlFljPKCrIeghVjIMhEIliu1nx8vuFZ7XFSosucGNIL13QWrzSN9QyFRCuVlOlS0ogU0y5I1XvnHDEEuuCRPiIygzQZeTFgualYVg1FOcAUhhaJ1uCdo8igbSqaruXpyQnvf/tDlqtFyqRBMS4LxtMRnU+ZEdZ6iI5hmbNZN7RtjfeWuq5pG0umFLujMeWw5MXFHB8Dd27f5HBc8vCz52Q6Z1Nd8vjoGG8Dt2/foKlrNnXLtMyRUnJxeUmz2jDZGVOOClaLBRenlzhnGe3sEIxEGMhyeO21G6yWGy7PHZnSyOCSULPfY7vO40NgNttBGc26XiHWFa8MR5y3FS4o5ucXjNSU82VD4zbs7A6JdUMXJVVMUxofO8bjgiwrKbUiUwadl1SrS7zoePPVt7h7/QCVa37zg/d4+vyIIDfoaUk7rlherCiKkhUd09GYha3ZVPDscUdmRty4NmW2KxgJz6iJdI9rRJumBlkxoOkcvvME65NN03lGmeJdp7neCpZ2Qxs8QwIqJky9AMrpMLmcWkdlHf70BePFBT/06m3Ku7f55UfHvOLhzdil0bxUvVMgXiHsiRE6h8oNYjZkPV9yfHGJUxIZHCr2Uz2lKfIcXeaJhbLFrEuDkIr5cslvnp3y8LU3aPZ2sRIyLxgHQREDW97G9nEl7ut/CZJlOW534yiiFyyQPClSTst2hC/6FUKqT8SVQBMp+u5W9GL71NUpJXqx/NYpkmzgvf8KSSQGgUTirMOt16xXG45XFcfrits3drh9a5/B2HCYDVlsWkqTMy0L6rZlVKYpic5LBtJRV0tWyyWrywWrec2oiPzQD36Rm3fuc3hwnUGegcy2+wuk20prUpfbVBuiTX6bYlJyP7tNphSTUc5wMEBlZVqj9BqEq1m7UMgsxxhFVAq8QGaayZ2b3D7cpaka5pdL1usF1rYIJcnKnMlsh9HOhPFsn7yc9LrsQIjiit3hYiQEm3QMRPKypKoaxKZNAEqdo8sxpusoM42XkSQ/Ev3r1ou9RS/ejJIE0Pd9xlsqjISQqeGUKYF7K5MNRIT3GCFRPbAs9kVqED3eAtGv/5MQPfYHsQ7Jih+9T9fg9me9Bd/1a6QQ07RChIBH4QU0OOrgaSVYHzDR9s+914iIlzbsqOTVNXy1F/sO7YbsBfC+FyQnIbgn4rHBInxAxLQNSJOX9LGWnFgcIO0K7BLfOTKjCDKtaBCCIMMVit9FD75Fyax/L718GkqlKXwMiRAsRG8cEZHgXRrxO7CuIyvL1AAo1csr0vcjU4gfSkkEye0UO0d0kWihEkuy6RSlJGWuuXVjn2uHM1b2NHFipKD773C59AiIVPH5eLWLsyEhsHOhr7o4EQJSbim4pAsuwC3v+Imi4FA6ZJ4hiDzatHwzV1gNN51jsFpxttzg8BQKJB6hYqpInQARQAW8izxf1zw4WTOIisPDGcNywNllTUdMVUlIcd7XioJDKam0xCMI0qRwOwnaK1qf3qCtE3ghcSaQR9gZT7iYXzAcjDg+XbBuYWf/evoeSV79GDqePX/E4+MzLuYXvUZFsDMb8dZrt9lUay5XjlXTsmkqrO2wQbBp03rHpQEoE6VRSqOC5a3XXufDhw+QQvJr/+Hr/PiP/BDPn55wvnI4b4khcni4x9n8klFeJJLqaJjWSUWJUYquayh8Qd3WYCQhCnzscA4aJcnHQ9567Q5PPnpAd7IgK0pqmUIsJ6NRsmPXNVoq5otFyluyjirCRduwaBru3H+Vo8tzPn34DGsjlXWszlbczAqiynF5QOYT5CAnSk9AU+Y58/magODu3dtc29vn9o3r2K5mvlqxWi2JwnHz3oyb98ZkI8H6GOYnFeVNTStqzk43fPvTJV1XMttTTPdgb5oxygSXH52hTwOHQVMYQXZjh6UWNI1FOXBB0QbJrjbcawR0LQtnQQi09bQmMCSiBxozKfCbivVqzWmzYVO3NCGyWc554+YBf+btO+Tvf8KsEZAZpNa9GM8hvE9ON58mT2J/ilCSyxdnVLZFy0gmNUrIxELBoWVA6a0wTPXjeIje8+D4lPezIbzxFlVeoqMh4tgRkVwaou8QqH5Uvt3696OW/gaOztKqJabML5RkDpxqjRIRL0Taq4ckshd9nhgxoJPKlm3b7ftsF9m/dyRJ2KqCSAdHf3+IbAPeksZASMlk/zqX5hGdc1w/3MW2NU8fHXP79VvsTYZs375ZlInPojRGFig0g2KX0b0xB7c2bOZzYucZ7ewg85y28SyPn2PLIVJnV4VbbDp829JuKqxtiaFjMiyY7F6jxtDKmvF4hM5yhMoRsXdNBZNGDCEStUqgNQvCKDIh8a0luIroBaPhhMlkl8Ob91C5IZKE7pkpyAYDUDLpDUjulaRzTZqn1Ml7RICmWaN0gZIZB7dfp9h0bB49w7WWUNX4tsVVFUps0+jTsibxWXyy/UqIQaT7Zkz6oi3YKuCJMuEJggBkcmn6vjhxJLvzFjESY/+cBcje5qz66VrSzSS4WdxqZPq1oogpEym5bSSOmIBrhH6NErFoPNBJj9UCJzzBJ0KtJyUeB7Y0pLQe8RKiCv2qk7QGif20Z5vT5X2adPTP1/q0ok2Tw/QzET4Qg8SGyAqByQrGxRS6DUV0iKiSLnP71bXAhxS/IjsQKj13BWkV6jsgQ8dk5FAiiXF1FASfYHECcaVbMVql4lKoXicmkT1BV0SRRMV9w+AtBJcaD+sspq5xWiEHJbnO2R+NeP3edc6WS3yQeN/RVe67OtN/zxctkTTW2s77nHMEkcZmLrwkgApScuV2Oq2QaBX5ESn4opIoY/BCsKnh37iWszLjwCjezcfox0dEIZiVBePBABlguV6C0RRCIAYZItd45zjb1FTW8+pwiJYBKQ2bGLgMHiM0nRPIGHh9MGIaQZscrQVlYfrOQ4BMJYhQyVwnEEQXWF6s6LpIJnOChuV6TQiS0KxQ2YQiKxBC4H1gtVzy+PkzVnWN0IJBllOOJkx3pmjRcL5oadsa21msD1xcrlisW5ASI1XSe4hIG+Hh8TFvxbeZDEcgA4vFgm9+8DE2ei6OXxBkpG4qFpslhwcHCUZkNI21bFYrhuWA6XSCFBNOT0+pNhu0VKi8YDzIKDLNZr3hxeUl6y6wOb4khojtWrwSlFlOqBpkDJSkFFXXtZSlZphnrGrLRevQecbF6piL9YLNpiHTZcqq0Rq9k1OOcnJKHhwd0Sw9SzOm0IJMQesq7ty+xZ2bN6iqCts1rJ3jg6cnPF+sKPcNO7eH5LMMESylclgVmM1KLs4qnj6vaTY5h/tjMrMmCAcix6DZPDvnoAkYLLnKcSpwfHFB11hMTK+Xs5br5MzamDI76HfUQiGsolMw2p0SPWw2FZfLNYu2YtF2zIWglZGjD97nlbde49biEqMniDxL7hrnIThEdIkC23SE8Qg1HhCamtMXxyghyYiUUjOQhpHJGGQZWveao62QUKf9ebOpeO9sRXj7Lbrre7QITAgUwTILye4c++Yh9tOO3ybGjX3h4jyI3vKsDE44HhPZbMW3/f5fIfq1DyDTTbt3ayZRb6SfAiWKqY/JbimU7Dv+JAIN0V8F16V2JuJzQ7Y3Y393hlivOdzfZTYbsV4mvpJooUBSdS2DkWJQJgK17KFcznXkpWan3OFgtk9uylSQO8/xo884fvAA2zb4Lr3OzjlUjORFzmA45OD6TQ5u3USZjM52RCzlaIDQMm09gka6lMwtpE36HZ+msEIJQm8tNYMydf6bBu0FWmegNMrkyNwQiZgsT9ZbqRE6TQ22K4pISNTVPuQuuqRCw3UIqbHWsruzx+4Xv8SToKieHaOEwOQZezszuDwmaIFzMcHcCOiYoYJMWpBtwdjfu4VIMQzbdV9E4EQqCdLHpEJXXkEDuXLrqD7BG3r7PIJMJPdaNBJ6enToibKiL6iESE6WZDAIRJ8iGSA5iDzJMDBEUcdAE6DoM5SAq0lP3D6f7VO6mkjI/lf6fylYNOBdgoXGrdW+FxBLIdE4dHDoKJKdOgpaB15nDLIJRb4i+uVVjo/tXTlFUHgH4JN7yngwBoLHdx0olTL3vCZE3Z+QyWSxXRpLY5LmTKcE9SgSxDGItEaNkCaYUiJCrwXtV60hxv57FYTQ4utIrgUmyxkPMm7f3OfwxTEXFxs8ii7a7+pM/z1ftCRVbRrzhv5Gr5RKsdoy7R2F33ZXJFZATKOxt6zj/zjbYceki817x2/5mq/mGkzGlyYF95crJlIRx0NGJjAcDRFCULiAq1q6CGZcgDLEzrPZ1IxkZGenxElD7QWdjxDACgdCMSXy9nSIaipynRN1QCuJt5EgJTKTxKav5AEZIlkQRO9YrRfIeJOm2oBQ3L97g4PdGSvrKHND1zSs12uatqWualzTcufade7cuIEOnqOzS67tj1Enp3RdTd04nA84n6yDsU0CL68VG9dSNQ57uuKzz54m98iqoqs7Pnn4iLffeI2w2iC0ZJAXGJORKw1EzuaXLOs1vu1oNzXRdynQsKrYrNZYm/bEdR4pywmyqRl2LQ+/+T5Kl+zqnGFesLANwiSAl2ssRkmMbxFEikwz37R4JdnPkp7msqpYtw4XJa1rUcpQjsdMrx1w7fouj588YiALbly/iY1wsL/L/uEhXX3BjdmUQitimbFpOj4+fs43H37I5fEJu/uSfKCoNyvu7w24dnvEZ3hu3Z3x73/9nBdPWnamY3S2xuQ1w2FGMYzIRUd26ZkJRREccjRC35xxfvQYW1u8ElRNCqTc9YGhizRaMUASvKcQSWgYdRKbNusNi+WGTdPS2cDKRy4LTXbvGnGQcfwbH/JqDfLGLAnPuwidJbYtwjtUCIRCI6cTMIb65JTNekOuNTkw1DmTLGe3HFCaDKPTLWQbMApJ3Pjw9IRPJ2PC59/C5jmyZ7KUIbIXPKJxRB3TGLo/fGJ/A08FCKQ2u18XGZWSkGl5KgRdP0ENIhF1EyNCXAk7RXyZ2HtlM+0FkUqm3tmLtG5I3XlMuUHEl6uFmIqqTdMyGk3Ru7vcuHWT0f6UcpIzO9jn6OxFuo6EQLQWaot1lvzaXspoCR0hOkqhGegCiLimRaHQIfLWa6/zvW9+DhsC9WqN7/UIRZFRZDlaKITMsLalqlb4boPSkc4HOtuSK4m3IhkOQgfRI7zD+5QfFYgEE/GZRkqD7VLmWJYPEDojbMnH/ZQK1QsixXbCkvghMSqccyQfnU7RAi51yG2cYwqHs5YGKMczRjdvsz69JCqFzgzDokzTnz7nLSIhqN7Jlfglim0ca09k7tc1bCUmW4ttn/ETt6F+MXX6sU9bVkDoQzG3935IDZ9A9HCW0Itge9pr7FMCQnILRb7zugq96iuteSyRKkAlBI1MIFLvHCHofoUTrwoXgfiOQkV+RxDhdn/J1SoJ4kvLtZRElaGCQ8eOTEAuBZmPKBEIPolkM1FQlDNoLD60BOt6PU1KEQ9RoPui3GgHWSBGl3Q3aLo2JBijUqnAlamJ9zFgSMBIRyQakTKKtELIPragL8pDrwWTEZxLlm0hIVNpsoSIRDqiC7TriChLlMqTtuX2NZrNE44vL6k21Xd1on93ypffweOVV165Ehh956+f/dmfBeAP/aE/9J/8v7/0l/7Sb/scjx8/5qd+6qcYDAYcHh7yV/7KX8G572509B8/Imn/qvoOa0v6E7HnQ8RehCUEQUmilBRBMwiBH8sz3inV1d7x0gf+17rjtMjYHyne3ikYLOZIAYPMkA3G6HyAzEtMXpBNxujdHeRgAFmGdZaLuknUyUIjOo8hgrBkUjDLFHsmsp9p7k+GdCGgc40PIo0LRR8jHgW5MWgRKZRCCE3tAnqQcX55gQuBdVVhuwojHQc7AybDAeeXc+bzBVXdMZnO2BmNubZzwJuvvMrezgApAp0DL0qWm47VpqXpLHXd4nwaldoAG+vZOE8dAuuuZr5a8sH7H3M4HjLKJKow1F3kfNlw6+YtJvmQyXjEcDJKIWwuJBhcSOGCtl5RVyuCa2lWCwqhGOYZ48mQPM9ZLy+pqyU3dqfcGe+wpwYYk3DnejRBFkkwrJAYGVEyxaMvreWxryhfmZLNNGaQc7Fs2bTyKuRrNptQjEoGZc50MmS+XFGvOp49e8He3oy7d+4l8m6IWOc5XSz54LPH/Idvv8/DF5/i7JLl+QXnJ3PqquP8yXNeuz6l6+Yc3jYs5hecnVS9BmCNFBX7Y8OwD+oMy45hJdAeSqMZf+4OcxNYrSo666gbz6JxaKEZbsGHgA6RHEmuFDqDwWxA6BrWyyV121J7zypElt6jgJPjMx78xifEj47ZyYZEncIRaRrCYoW9XOKWVZoc7OwQy5IYA6vzOV30FFKngkUbxkWG0ILGOzabmnbd4KoWYVM3tl5d8u/nF1Tvfh43HiaBnkgHU4yeA+eReORWHNnfw4VPEKuw7TqdRzhLCB3eJTvwOkSOpcB4hQ6KTKTJZAJG+n6f7hMorHelSSVThxo80NNHt6Jfeht4eLleEESUT5kyUmhcVHTjIZNrB+zOZkwGQ7x3fPbkCR9+/JhPHh7R2o7xcADtikEmKPqUde9tco8EgWs7oodMFxS6ZGe8w3A8QY92KHf22bt5j8M7r3Lt3n1mN+5STPYxgx2kKoCET9BlAUHSVhZfB9rasak2VJsVTb3G1hWh50SFtoU+/kC5nijsJK71tE2aoApliDL95KJSeJFWQkhQWqJ0ymxTUpLJDBU0IqhUyIhAtDWxXuOaNaFrUk4UkE12EHmGNhrfNkRv02sRBMKTio/oETKCSq+bkNtuPjnGjEiawu0vhEBLjSY9BxlknzwfiCJRlHtSylYa9FIIu5UIxKRXSl9CJBaOTAYMuRXsIhBS4iS00uNkKnikUGRRoKOiFYpVgCokfpYN29iBnr9Cf6b0BXk/unvJAiLlbG2vP4FASIOSKkUCaEOpTOJZqYxMGgY6NX0aifIBUXXJPRAE2gyR6KSBsWltF0Ny+7jOJ9K5s9imxXmHD4GutvguOcViTB4sJdLPS5CahIBEKoPKM7QxKXxXQZQBj7uyZHvv8dGB8igDJpdkhcbkBqlkKohCh283+NUKX23IlWA6KABLVVcs16vv6kz/bz5p+epXv5rGh/3jW9/6Fn/4D/9h/tSf+lNXf/YX/sJf4G/+zb959fvBYHD13957fuqnforr16/za7/2a7x48YI/+2f/LMYY/s7f+Tu/4+cTfSASCColuYIixHTzNySrY5RbmXoqCIIKvCE8Pz7bY+iTuKrVnl9fNHylyJHa8MbhkOvtmsm8oiTxUrTO06dQAjkokUWOyIuUcREjXd1w1nlaI5kUhnZZIzLFUIEe5kwN+LZjoiSzwYDnnWM0TfCu4COZ1igbaLqAkSnYq+4aTD7AekdmGzabNd98/wPGwwGvXNtlZ1SgjKZpKzabNdF2afwM7AyH3L37OlIELlZndD7QInh6fs7HD+d0wdF6S7dqE/G2CzRdizEG7wOtc9Te4rXg9PQc8+qr7I5KLpqOLkjOFhv2ZjWv3LvNarnEth3aBTKhKQfjxEYZw+7BLsZkPHvylBAiw2GJMLofWVtOzk8JjccYjxkO0donl1aeuC/GSYK16UBXnlgUhNGApasYHO7gihGLtWS1XjKvI5sukAFa5RzsTbh5bZ/X79xkU284W2woJhN+4Id/gNnuDnXbUrUrSiN4cPGUy82Kum1oupoYW0pjKIzCCI8M4NsMW+esqw1Ga97/8AInckRe07UbhoUiBIdSOXQee7JCbQJG5shRTj0ref/Jc1b9zcW2gTZGRtqQLSwuBWEhtWIgUvhjORuT6YzF/Jx5XbGylmWMnAZLIxy7ecaHZ2csFxUHB3fJRUR6j+g6orW4pqFarSiyHLE3QZUlUULc1CxOzpEIcqkYGsMwN/joebZcs7EdWmpGZcGsHnMIIAq+9uyY92/fYX3rBlZLlE86ASlhRyqmUaREZt+jx+WWwhkIwfUJvj3O36YJDVlASM9cWE6lwoteIxCTPZmQ7N+qXwVx5QLp075JYlvRJwr3hlZCSFyO1GW/1LVtGxURUidqRlMmhweougatqOc1Z09PmJ8sWPuAUAXf94U3CK6mkBFNTE62ADqTaCWSeNlkKKkwwhBcoA0tJpcIqa9ExenGxctcptiRmBgFxkA7X9FUa0aTMb51GCMwIkMrjcwyhNGo4JExMT9UEOhoCFEijKIBFpfn2NYxmswYjHcQWvWaksRTSS10Gv077wk2EF24WtUIkk04xmQ1Dy65TmwXcG2LVDA6PMAMh1hnKXVy9oUo+yI1FazJTZSq1hBiWgNGxVYPbpBIZAqsDRJU6vylSMWHFAKHx/V/QdGLswFIglhJKrq2ERU+JmRE6IuF2Ot0XIxoo6+sychteGgkCokVgBQ4oZA+8VoaEamBgUjNZQgvX780JOwF7uo7zqT+Nb5q3KXoQwkF+KSHSdd00pg4a8mUxPfZdyWBYfRY2+BjR1amgkrpjKq1qeAnmU5ApveTT86gVqRzQyFRGLTutT3CQ5Sp8BHpZ2KdRckU2RDoXyaRGn+1XdCFNG2JMSaht9BJvhBDHyCZXK24dN2EEIldS6Zz8hDYyQxFqaliw6Jdf1dn+n/zouXg4OC3/f7v/b2/x/379/mDf/APXv3ZYDDg+vXr/9m//yu/8iu8//77fPnLX+batWt88Ytf5G/9rb/Fz//8z/PX//pfT2mUv4OHFj14qL+RpZ+wuBpBym0WRP8hOgSG0fLHigGv9vtckRvO6o7/1Qaq4Zg3dwa8tVuw8/Ezxh6KPE/1tesjxk0OuSb2OSKQxI0X1YpPXcfOzQP2xyVnFy1SS/bLDAYCHzqWjaOIklxovI9kWcorsiLSOUvoPM5FZqOC6B3rLkWEaykZDwwhWE7nc5CKu7dvoLOc+bphvakIrkPKiMkUk2HJH/ihH8CRsa5rTuenbKqOk9PnNF3D4nKJ823KPaos603NJiZyMFqAh+hCiij3gU20fOOjj/jSl77I2XqT4tBVxmKx5IFz3L5xk7fevM29vR2kdbgQmOzucXJ5xq/9+r/l9PlnGG1AaUQmKQYGpSRHTy+gAqJi0VpmpcaEjrEQROeQIZDJHNsm5khWak5XS55uKoLOEY3m+ckZbW1ZLc5pmy51fJlkPBoxHpXsTkr2dgYcn50gzZDf9yN/gNu3rtPWFRfnJwi3wWQGW1cp+8VbvG1pq4rga+7dHvLanR2EClSd4Te/+ozh9IBvP7zgsydr8sIgVENhIloLVJ6ltYYNxOOKYTJA0Q1LPj465vl8Dj6BnLyD2WTIXpTkrSVIKJRBC8EsLylnU/TODvZsyapuWYXAKgbOvOXCWyZFRsBztqkYu8BhXvY3aodfLImrDWY6YTooCc6jplOiFOiuozmb0642lMpQCsVQK8aDkkVbcb5ace49QShGtqV2lqLMyA4nfHS4R/fWuzTFgNhrFZTQSG/Z84FRTJ1sek/2IMPoktiTpJeQAoRU4Byi8yAEXnacC8Emz1FSoGICa0lEis/oR+yy18gE0ScJ+5iCpJXqx+qJBRL6sfyVmSPGFFJHwqfLXi+jvUANJjAek4WOEME2nrbymKAY6YyxyTi4fo2qW8F6SVdXBJ2h84wqbJB4inyUhOsqJmw+W9qoQRuJCyn4ToikvRMx4kMSY0qlcN5Sr1dcnJ2hc5M0JW0gyzT5YATSYMqCQEyuOh8wui/GsoJWBKSEYbHL+XLNyYvHVKs1O7ueYjKlGA/RQvU/fEEMEedjAkG2Ae8s0iRRryBB1QQR7xzEZLntgsNWNTI6Jq/cpqkcUkIhkk6ik8mtI0Naw/3HBzgiCaO38QlbMTTbtYpITp70eqV7q5TpcBciiXujD732LznKTIAuOKKWV9Z6CWn60t/8XfQEKXDeYxBJkEsqhAkQVYJ9CpGykDKhsHg2wbEOimEQFF6Rx5fnyX/8fcleyLL999VD9a4vFNLr5GiSgRAV3lqUiGiZGIulkEyVYCMCtXAMFWRBILUiGI2y6TrZFghbOYTyEWTAeU/sWowwfYHqaNu0llGZ6jU+HqUkkLK6lOozofrCSkpzhSqQMvbFfrJtbwGCvQ8pbTOCREaJFBkBSwwddrNGFJFpbpgWhtjVtO3muzvTv6uP+t/56LqOX/qlX+Lnfu7nrvbKAP/oH/0jfumXfonr16/zJ/7En+Cv/bW/djVt+Xf/7t/xhS98gWvXrl19/B/5I3+En/mZn+G9997jS1/60n/2a7VtS9u2V79fLpdAEgZJ1ecbxNhjpBM0TvZQLdWPioVQmOD5vDL8H8Y75D4QtMEHz9c2a75ZGHZHBe/e2WeiVow3jtLkCVvsA9FkiEwjst7xECIhuuTQEJ7zquYoOF4ZlcgQcEJjdMY0N0QNtVCcrzuyqBAhJdpqk7DlrYB1FDS+D4B0adw+MDkmN3jfsj8dMxzllEXByekZ8+WCe3dfoe0CNiTU+iBXDLKMV+/eRirF+x89xnvBzYMDHj9+ytHlnPm6wrtkbfZdR9t41m2HzzKEgrat0VFgpCGLGucCLos8u7xk9tlTvnD/dT47ekHjkwMoevj4wUM+ffKU3cGEg9kMZzuqTSqMNvUaUwxQMeJVxJQZ5ajg2ZNnbJYVw2wA3hFam2zcXccwG3BcN3RAXTp813Lt+owYHNZ6WiRdB9I6FssLtBLUqwVCp0IyzzR3buxxa3fK4WzC3myHy0XFm5/7IuVol6qyyBCw9ZrDkWFUlExu3EMXOV/5+LdwvkIGz82DgjGG11+Z8emjEyYqY37WcnIeOV1YpBa4aMljgneVpSb4DusUtvYMFp4MQ+Y9q03H8aMNLlg0Ao9nWJQcjkfsnddkNoAxlCaxWcrhCDObENqG+cUpy7Zi7S1zb7kIgY0QHJqC5+s1qzbyiiiYmAyR52n8vak4fXbENESG5RA5GYFUhLZD1C3V6QXeWUqjKZRmkOfs7O9QiDFrb9lczFnHSO0DTfDUxrB89TbPbxzQDsYoegKtjDjbkgXPnk1200jqmpG67zBDT+tNJOYkTrGgNDKKXjcgOMbQquSEMTFR20H27pA04Q2kKcU2ATiKXpLZ2z+l1Li4BXbF1M32N9mt1dbH5G/RMe3sz1c14+mMcn2JsA7hkjtlMp1w++517r9xl3xYEIzHNjW+C4i6QuOTFs3kNKJK0wGVI9BIlRF9gK4h9sXKVQSCSN13CB7rIm1Xs7g45dmLZxw9ec4rr7+BrRxDU6IGI1yWYbICS5rmRJImLAZPV23wIaLLDNcEyuEuebnk6Nlzjp+ecO36kmt37iHiPmEwRGf5VeECIRW4riG4LkWaWA1aIYVJwkyga2vwHUFKOm/Jo2A02UEMJM1iRRfWeJHAhKHXsLiQbO9ie9DHHhjXi3SRkiAFugdrOuHSPbEvXrbhhhGZXEL9SSp77Yro7//hO/hcafbA9sKB/tpQMrmREgFDEGxA9qyViE8IjOgQSqV1Z4wEFE4EGh9xBJAQSSutND1JQtXYg9rgO6YrfcG2TR4XKrmJUIJoBSHYtKJT9GgCCBqyGBl0gYnwCG/JrUUKRz4AipxWtXTRpiYgKKKPBNNza0K4mr4Jk/AFbZsMHcpEMqmStkVIhBZIo1B94x2FuFLhxGDTVA5Fij4I/WQyJNfd1s3Sa41ccKCytIKNiePisdDWiCjYHZUY7wib/z9NWr7z8U//6T9lPp/z5/7cn7v6sz/9p/809+7d4+bNm3zjG9/g53/+5/noo4/4J//knwAJff6dBQtw9fujo6P/4tf6u3/37/I3/sbf+E/+XMqrzNckOiOmcKd+xCl6FZaUAhUkuyLwf85GHMouQbac5lnb8mtNYDPKeXtvyMGsYHB2zqCy6AjeOlRmELkBk97QW8xxJBkTvLecrWomRnNrnFMvFsReWa21oIsB11hs7LuXrkkALCXRPaZ5A9TegodVU6OlxwvFSKcu4GTeUM6u0YScupnz6bNnnFxuuHX9FgHNdFAyK3e4fecOw+mQk/MT8kIwHU7ZLC0yNkjZ0DaLNHZXirZrWTSW1geyLCO6BBvqpKBQAwblECc0ea6R0fH06XPKLOfz3/M5nh4fMd+saZqQxIO24mRRcTY/ZjwYkmcFQkqyIoGFtIDJ7oQYPU8ef8rycknwULct5SBLgV1di6laFBpXZDjg5OKS/TLDi46L5SpBnyQs16u+OJXM50uauqMcaaaTAV/63Fu8c/82dw73GY8HrBsLquTg4BofP3nOtJTsDQUmOHQ2Zu0U+wcHPH72kCAt00mOtBmvXi9p50s6W7FerzA67dkXFw6jNFJHmq4m14LRaMh4pFEiaVTk2jK0GUZpxkIydgFdCZo23bC/JWt8mZMFR141yJ68mQlFqXJkURCQLI7OONusOYuWM9tx6h1zImWeslgvOo93gYNBwagskHkGSISPVFWNPrpg+NoERkPAge+wNMibBlPn+BUIVMpryUpGQ83rQqKV5mSxpo2OiTLMvWOZS8rhLmoTCD3zYpstpD0cxB5Z3r8/RZ8DlFhysh+T95Fzuh8xBwjSU9vAmZB40gphK5iPJF3adpzqieA9KqaxtpAvO+wYA87FXteSOkJPKlKCTwe13wbBhYCXEofn4bMXTK9NKaXB6MAwyxkXGeVsxmtv3Wc4LVBSkAtFQNE1FmUUbbAIk1HJNdnAI4PHlAq9HSOoSPAWnAWRdDCyd7D44PCuo9mcs7o84emTp7z36Cm2aXlVSNrNBpkFVuslw2HEWZe0JoMRypiXUE3bYdsau/KUox30cIgpx2TFiPOjCz7+8GPatmHv+pzp/gHFcII2GVJrbPRE5xBdQ2garACTl2nKiruSazjX9gs3TRciA1OgdcbOZMbzJrDuzoiyt53HfoIhJT4KREhFgOobWye2sLfeGN07b9i6iCJoodExFSI29NC6/p4r02Cm57n0n6e/38ewLY7T9ZPQ/mkCJfuwTrGd/kQBIU1IkpYsfe5EXg64oLDSY4VPjJjtdKf/xVWB0n8N1FXz/lLbklaWVxMZZF9wpxGPCB5FpJCp2Ct8YCQdFof2lrJrMHTpPRIkSuie02MRbNc4ya0ldVrTJmVXxAaXrkN6Zo34zuef7ptSSoRKZ2js12lcfS/p7EyvSWoYYg/98z5ZqCNp5RqjJ3qL8I7gHD4Ggk1E3Z1RyVBFdr5Lhe3vatHyD//hP+SP/bE/xs2bN6/+7C/+xb949d9f+MIXuHHjBj/xEz/BgwcPuH///v/ur/VX/+pf5ed+7ueufr9cLrlz5w5aRoyCGJK6vMMjr94DPUwoCBQCHeEdI/iBIqJ86r1s5/lqVfOe0dzcnfLOzV1KZZks1ozaBP7SeYYuczAKYdSVkE3EgHAJTd22HQ/WK6ajIW/cus4H5xcokzEoTbq5e410kRAUOgX8YKRKz0sqnANC4OY05+nRGavO8NqtA569eM5OOeLw2iGfPHzEw8dHGO+5vTvi8PYtcp2TZwXFcMTupOTWjRscHByw3CwBwf7+Dp2HD588ZVNVaC3QWWRVdwhvkCqnsQ3OR2Tj0Rq0NgkF0Y8es8EQISIKTZ5pFmcnfPsrG77vh38IioKvfvg+eQsiZARraNYdUhQoMly0aVWzu0NW5iwuznjx6BHCtuRRsLEWWSQq5aAsGdaWA1Mwj47aQesjWYxkKsfVNeumw4uMTd3SuZiAgTqN27VRFFry7v27vDYZcD03HOzvULUN83VDMdml1JK3D6bsTgacPH+Ia2ueXQoumw2cfIpQNeUAVO3YnRlUWNP4isl0wmRsEKbk4qxmXa8pxyWFSTfHYQlG+Zep0j5QzCUTX1JqSaEEufPsBEXdKVoZaQYFH3Qt+aal2LTIoJNI1TqCCshBQXux5OJyxYX3LGLgvHOcxcBQRd4cGIiShbVIIjeGA7LMgE4OLoWglJosL5F7M2JZEEOLimCHOeX3fS+3fvRtjv8/v0H2OGVJISG4wGA65r65x8HJOZt6TRwVPNxRNNFxYzzgRVXjYlohpmTiSBYCBwEkLgHKpOxH/Un8GaVJN/pIEkTGRGZGBGQIbGLgOD11AILs3R0ykjLbZa9rSMdndD51uz4kkaRIU78gtjh30vqq/0cIdbUyin3Gigsph6htHQ/PL5nmBTMfGQ2G7OZDMp0josYIiL5J+olocL7r3TbQCYHsEsBrtanRO5LMDEGlQlAoBT5NfoRStG1HDOBtQ9usqBbnXJ4c8fToiKdnl9w9OKRdbWibNavugmq1Zm//GsPhGO8TPFIalfQg3uObDb6uqGxDt9PSNg3tasnOzoj62h6fffsxjz55RNs0dF3NZLbHaLyD1ArnA1qk9XYMKbfG2Ybt3iQxSCTO9XSQGCFK1GCAQyWH12DCvHZIl9bYUZCgZb2WcFtvbg903R/QnoiKPdE4RJSRvT1ZpCkN6fAPKv1dvS0o2K7VXk41pJC44NPr3k96IBXEuv93FAJUWmwkJaPEu4BQMU1CpE6FrZa4IFIzGRPTqPM9hqKH4Qnx0jWUaoGXJ/J3bh3+4/VYMlP1jqqYNFrbPzMxUkSLDQ1BWDLpiaJD44gOfKeRmU4TEBlRUmDUy6kVCmQmEkumn3AJLZMYOkEUepqtuHI5XeUmRSCQPjYaEBCCZRuz8PKbo3d9yZcGqRhTodJ1xK7F24iL4KIEqZgoyZ2dEarZ4Ve/i7P+d61o+eyzz/jyl798NUH5Lz1++Id/GIBPPvmE+/fvc/36db7yla/8to85Pj4G+C/qYADyPCfP8//kzxWhV6mnG24m08h1q3ERAgqZ8jAOiPxRPWBXBEyncSpw5h1fc46wW/DFe9c5GBdov6BcNeSdRyiNHhTELO10I1xFgeN8GllrSWcbPmtb9I0ZslA0Nqnko+wnlX3MZRRJtGekJJcCfLooQoRx8OxKwxd+6Af5+kffJu8if+qP/iSfPn1G7QTvfv7zjMsx16Zj3nn1NX79N77K93//7yMvSza+ITMBkWmen53y1a9/nVXTURYZJ2dHnJ5c0nYSZwVSZrTO0nYdeZ5higGublKXBJTakEmF8xEn0uTKWc9oPOJgb8J0kLNaV/zKv/01BpMd7r16l1vXb5ErzcTk5EEyGc4Y7+zytQ+/zgePv8X5i2POFwta75AWxkjyTONzQZZluLalyAyDukP4gBvlKd2ytYwHJdOyYLlaUHcBWRiQJJGZdwlgpRVaaYYDw6vXdjCLOTd33kQoQec9R+dLlrXl9rWCIhe8//ABnz1+wO5wwGJxDLlHGygGgWkA3Tbcf/2Qbz78GDMpUUWGNAWLKnCy9uhJSVYoyk5SliOuX8sZ5lBmyYApfUQvPbkT5GiC1jgBYVVz6RxeSm6UEz5jw7QNDLpExfVK0AbPeFLgu4aL4yMu2ooVgbW1LHuX3f3xhFeKkvfmG067lkFu2B/kmEITtERaS+xD0sq9HRiVaWwuNUFoGJR0+TX8KwUH4wGn/48vIzchCZ2tA5GRjUoOskMm6wEPMpBv3MN3HeOuZVoYmtb3IkqHBIYhshvTOjZuZ8hXabqCiO6Fs4n9QevBWQKJXn2pBReZ7hkX/aEUEiwr9geTEBEZQxJBil7MqvpCaGt/Fkm7oKRKMTxsz4nEc0oytDQl9T4kgXVQnDcd61nGyDWYzHDtxj5VY5He02wsMiQ4mZaC1lpcJ9FS40PSEoi2JVdpZYPuHRUxYL1HRUfwkS4GbNcRrce7hrpasdqsOD6f8/hkTt0ElMyo5ktcW7OsKs5OLzk/X3Bw7TpFOURlCq2T1gFraTcLmoslTirEfEmea8rCUIwN128e0jYNjz58TGeTpsc2LW1TU46GmK3mqIdwOpu65ShEEmj2DDRnW9Al0ccUa2Bb2maN6jyxmHFR1WiRYgYi9HZslRpI//J1idtDry9eZUyRKp6YJo1JCYRQARdsOjyFRIaY3D+QDBcxsXheBin2gDjSKigF3sSeX5eKLdnnXQW1LYhSPhE9kRdCii4IAR17DZVQ6bAXCh8lSqhE6lbq6nuiN0xvdZOR77gW+ys/MWrEFZnaWUd0LqE5XPohyxDJvCPDUeqAKgRBafDgo8RLjVIGFS1eCLRKr5GQAmkkOjepaREpLmabBRVFSpLW3qFUloS2SifbeYhJgN1vKxT9FOmqIpGIq5yu9GcupqJQhGRssS4QHNCLuYP3uC7RfaNOHKpXru2zc4Vx/t9+/K4VLb/4i7/I4eEhP/VTP/W/+XFf//rXAa6ScX/kR36Ev/23/zYnJyccHh4C8C//5b9kMpnwzjvv/I6fx8vo697SRaqE49XozifrnIS3o+dLhUbbNmXkOM+DtuNxkfHGnRu8dm1ClkXKtWKwdmRBoIscWWYEKcCR3Ec2kFq6kNZFmcGbwEpJhrMhiNQty0lGzDKaLiBQ+EykLBWVAG6FkYjQExyJaON5ftbwxpde43Ud+Mqv/QZ//gf+ApPDT/il//F/YnZ4wF654cWjR0zKCX/kj/5R3vvm+6wv13RaMtjdoW0E04Fhs1zx4PEzvN8wGhY8efaCzabr36Ae21is9SjtUMaQFzlKKzSRUqecGy3BKYGMnp3xiGuH+4xyDSKQT0es/Jqj01MePX6MioqdyYy33vgc79x+hSfHz1lv3uPJ0494evRthO8wsmB64w6L9ZJqffKysDQZBAvOgXWstOQMQRsDuVTMBgW5lKw7T4tA+EBelgTR0tWWtqoJIlKMBty6dY3MeQbKUO5MWYeAbT3n8zW2i3R1xUcfP+LDzx5SnZ/QTYeMbpboQpIVkdkApsHjo2VyDdpHK1Se894nxzx6toRY0rSRm9cnTAvJk5M1eSkpckHRFywiggoSsWrRMd3ArcmwzqO0IDqJFpo2RoZCM60cOSnk08dINhySDQvOnh/zYr1kHT1NjCxCYBMEt/KMNyZTtIIHmxNOROS1zDAblMgyR2SG2DYIAqPhgPxggiiydCP3EYxCTsZsULhGMHzlPof/V83Z//NfU4ZIprNE1hQaYQQXYcnJcISzEXeW4IA3Xv0cp22LFxkxRnz07HjPxCVHjYCejLrN0tJsSa74XqzSbHqeRsqFea4z1j1HSbLt5EQiRgNSpNH/Vfca0iEVvHsptpXpawRSMm2ieoir9OfE2Ej/3u4ikqkwTYtWImcaNbG6YHp7n4nU6Cyjsy3dekMuJcFbYiRpB5RA94nEqj982+DJITm3QkDogiBaYoy4rqZtKqJzKd+rqZlfXHK+WLHeWIajHdoAx/Ml1aLifF1hEYwuWy5Xa2Y7O5TDIVJEhlqgbUu1bPjw6IyPHx+hfeCHv+8tvvdLnyfLClQWuPVKZD6vePbwBRGPdS2Nt0zcDmWWI4VK+pgY8NEhhe3Xdgqhk3gzxI4Yi5SyrQRtXeG7QPCCSgy4aFu87h1jItJ5D1L1JokezS+SdgMh+zVOD3kT4Lcypx5TIb1ARJW0iiG95oG+lA2x56uQbNBSJXZIjCipUsEguTp8Ay+TpIWAqJI+IwpQ31EMieh7H0cKRQSVrsEQkCpHa0MmFEaZhLnXqXCJQuBCRMu0rNpqd+J2okIikocY07XpfS+idf05EsElN5gKgVx4vOhQmSSqEhkDXVRYIZHaoERi2WolEgdJRZQ2GGPITIZQiVote05Z0qskJ5cPDqLpIYKJmZReiJfTl22QYvr+Q8KRxJjowSK57wiR0NokgO/xItGnQqxraroufY+tCLTSsDebkvvuuzrTf1eKlhACv/iLv8hP//RPp9TQ/vHgwQP+8T/+x/zxP/7H2dvb4xvf+AZ/+S//ZX7sx36Md999F4Cf/Mmf5J133uHP/Jk/w9//+3+fo6MjfuEXfoGf/dmf/c9OUv5rj61YK9O6r7gjWumkkibtNoNW3AieP1rk7Mc2ibpkZBEivxEExeEuX7p3k3Ep0cEyqBom8xZNhjLZ1Rslib0isbUE56DIkOUgAYkUNKVmYkyaFDiXknmVpuocNjqChi76xBYIoGV6U2I0UmfcvX+Xr33rU37tq9/ki+/ewRjN/+t/+hdcO5jSdjW2a9i5sc+9N+/w7Qff4vGLz/hDP/L78Ycb/t23fotm3tLZNUcvHrM4W/J/+iN/gifHjzhfXLI7u0HrQGclX/21XyUWmiYvmG9qOtUwHA3JswxvLa6zKJOR5wXaK4JtmI0GSN8RfBoXb5qazlt0bhgSGRQ50dWcP/mIf/71X+dk1eFU4Ac+f5ebh7vU1Zpq0zLSkTAUXDSRylm8lxAlwpR03uIzwzrTXPiAEwLhOsZGEtoO11q0ULTBobMCg8F1HdY7UJIQO67tTqlXa964/wayLPFNzeWqZr1umE13WdVr1psFzfwY19ZcbhqknzBRJYWSfO7V63z64XvsXptyspxzcGOfF0cN55eOgCEE2JsMuL4z5uziBVkBO1NFLnyPvjfJjdEEsjYy1hkKmbKpREjMH6MIueKZsOwGyWRTo4MBwBjDzu4uy/mSZ/MF512gEYIL5zi2Ha2Hg6LEishHtuVjHLWS7CrFrCgJeZGcAT5hwc14iNzbIarEbYlIglLU45IqT99P6DyTd94i/ynH0a98jTvDEdt4wkVd8ZubBdydoaoV1XrJRRfYvX2XnUxx0vhEZXaCnc5T2C51lNH3u3PYOkDSoMODt8nC7lyaXkhNLSXPMkNjTLJwfkenClw5R0Lo3Uf9wbCli4bthwZxpWMQ28Opv4GnqUvqqsOVFVf2J1nqDM+95tpogjw7ZrWqmN06xBhDs2yILnWhSkMXLNEmrUQUAt8JQgBRZMQgqKo1DkmR5QTniQisd4josbYlRI91lk2zYV03+AjlaALFiJZkS366WPPp8yOWdcu13Sl37C6zxZJRUWK0YZwJVOj47OiSDz89ZicvuHtjymuvHGKESweK0RSDEXfu3+b8csHzs0tUrtBGIyOEySgxlaIB0oHquDrdkegkknUtSIvWBpUPkrU7aura8+TkgrWL2JB+loGI0hp/1aynEEYRBYY+QyjEJMCWSXek4lbP4kE4BDr9PFXvBCKtP0LsKb292OZKx5KukqtrZatd0dtuP/o+Twe2oYr0xbEIpLUlov9/EBQ40nWlpaIwGbnOyLIs8XS06WF9Kq1m+mnK1oZ/pel6eQmnyzO6/pe90jqpkOzkxICIDh0DuRI4o9MZIgR264g1hkzMkK1D4JJW00iEyXqYoMIondZ0/URLybS69MGhhccHSwwaKdTVimj7K4SQoIm+1ybFXk/Uu76cDzjrIHhkDHjf/7yiI7gW19V432CdpW07OjwhHzIaGPJp+V2d6b8rRcuXv/xlHj9+zJ//83/+t/15lmV8+ctf5h/8g3/AZrPhzp07/Mk/+Sf5hV/4hauPUUrxy7/8y/zMz/wMP/IjP8JwOOSnf/qnfxvX5XfykEKgjUnCu57XIBBo1adwChAEviQjP4hEdh4XBSFaHlrPp6OC77l/l4NpgRTJMqzO54zrgMyTKygt7wXgCM4m9HiURKP7CtOyjo61iOxthYkRrPM4JFVnaWOgs4HaegbDPOlZhKRzFq0ELsD3fu6LeD1kswn8gR/9/Tz47APOjp/wY7/v+/jks4/pOsf85JiiWfHs8RPy6XXe333AqBwx3rnOvFpydHzM05NzHnz7BYPR13j9zXt8+uQDFmfPmV9soBzzx3/8x9HBkY/3OZvX/I///JfxEbSSKJlEnHVTE2NgOt1BkCFFSltGREyeo0xGZjx5pqDM+iBKKIzETyShXfQU3EOMytlUNWWmGGU1B9dntJs5g2zA6emKNRFvLXtFSdhsqHRk0XRMJyNGQrJT5pzN51j6qYyQNF0LCGrXEYwiGxSMxwNu7u0i5hfs37tNEwJtazmbV4SoGZWG5eUZInpu3Tjg248fofc0+UGGzjSdC1T1imygGR9c5+Hjh6wbybNnl7R1xmx/l81qw2xYsqwrTusNkxFkxpMp0csCVbJTBhjrnALQSpBJgRESYTRmWHCWR+a65tXOMLIR5wMywmxnQug6nh8fc9Y0LL1gGT0vguU0evYHOXGieTTV/Ma641MBUsG9MmfQ37gAhEuaArEzhtGgD49LhOUgBH42gv1dQluxmZ9jdMb4B7/Iiw8/5fTBMfujPWxpON0b8qQyXIuedr3mYrnm9LxCP3zK4f23Oa0rJAnYeA2B6dcuIoqrgyQ1nL7/nQXhkJr0xEk3x5VSHBlDkMni7Hv+BqIPtduugaTCeZdYHjHt84WUdNsU3RCQInXI0W/VLCkBPfq0KkhHTG+f3X6dEPABTpYVr98cszOZ0nQN1nao3JDPJtTnlqaq0DKt6Lz3eGvxSiFcJKhkvbbWE0NL1L12ps+i8c4hgsc7S2tbNpsNi/mC5aamdZGsKCHLiQLaCMPdCQd0qMWK08WSddtxezpmohaMc0OXZUyKgmv5gHd+3w9S7BdgJBQlGyfJdOiLPcN0f8bd1+/yG1/5Bp8dnZDpNDEQUiAGOTE6tFIJ6e/TikdnRb+6DrycGAR0XmDyAcFGFpcXfO3Dh4QorzQgvapkuzTpm8l+TeKT06bX3eJjmogIegtRVBA9TgSkVumgDmliEWK8KmKI9KyQXsUSY8rMuhLChv7aS59XK9mnwwukT2sqL8GKfg0ZISNpX0SfiBxVSqI2Jonpdb+C1lqje8Js2n/FKxZM6B1T2xyi7fWfNFX9xwWfsAqhA9eCtSkvKPjEDQqanBFSh1SA+7Q2i0SkKVAagpsnAbVIjbHWGUpqlDQopZNusv/6RPmymAoJ1BdiAtMJQGl9pcsRV6uyNJwQURB8+nk4eueQ67Btm64XFNbVtF2Nq2tc09A1a5qmwVmHlwINFOMdtPnuhhK/K0XLT/7kT/42dfT2cefOHX71V//rUpt79+7xz/7ZP/tv8lxSOFREKpPeYCH2O7v03wq45ix/OBszchbpIKhIEwXvxcjNN1/htVuHqNiQocl8R3Y+R3kHWqT9vgfv006dPvxKKoGsWrCekAeeu4p5a7lOoLWW4BJKfF63zOuWICJN8PgO9vM8BWkJ8CJQy46zzvH4n/8rWp8zuPUa//x//lWqF+c8u7zggw++ye3JgAePHsN0j//vr3+dtq75yR9/h2EmODl+RB1hHSyL8yV24ymGGY/OH/LZv3nA4d4eX3j3iwhV8L/8+6/x3keP+Pzrt/noW9/i//In/28cvXjKv/7qb7KzM+bt1+6ye+0uh4fXefjoIV/5zW8yGY8QwtKFjmAdEU02GDIdCAyRLEKoVuQDw2W9ohIGXU5wmw2PT1ukkhw9O2WvMOTDNYP9CURNPhrgVi2u1CwrSxOHWOtAR3TwxLZjtrtLI+DT80ue+4DvBM4LTK4ZT4Z0nUUoDSFS5IZiWDIa3qDcHXOxWtA4yfkqMJnMaDYrNss5oVkzUiWjyYD9WwNMETg/rzh+fMad/ZvcOLhGt9ngneDsbEO1BKk0s72crqkwOufZ8XMyFSgkOBfojMAgETGtQ5SylKVCy3Q9jrRBeEcrYTnI+VQ0jMqSvUXNMOREAkVuGA9Ljk5OeLZecRECrUgBggvhMcawf/ca8dVDznA8OTmikZLdsuBGOUhdcK9z8N5y6TuGgwGZVMRoCSLBvcgCtXTErkJIhzKKplriM0H5w+/ywa//Y27NN6jvfZvq8/eZhDXetnSV5fLkkhenc7r3P+J73n6HQgqWNpAHz15wyG2x0u/3UxbcVtcCQuqk98AQoyYpDC3nKE5jj973idwJKSxvm1kUXL/2iaJH8Kd8mRQ8JPuCLOJDDyGLIGRIYluRzsTEaklrnO1OKRUu6SZfNw1PVoasGDIbD/DBp0TvyQilc06fvyDPevF812GJmLxIHb0UeByxThZnr1MBI2Oa5AiRAgtjCFjbsl6uOD+7pI2aTZcmQ7nJCCLQek8xKBisMrosQ001Tdey7hryvIC6Aw/j0ZjZLMfk0PmOwXCEt5ZaVsSg0FGiVE4Qnut3r3Pn4pLf+ua3KbIluzs7lMEQvEgkbhQ+JiZHiB7pWpARH0ldeV8gRhLqoekavn30nE/OlsSQYHBayH5icKUeSm1kD/2Lgl7r0xeMPvFS6A91IQUhpHWgDa6Panj52hHAC9Ezdl5mGel+UvLSRZa0xEEmFo90SS4QZD/d6bOHVITk6PmOaIAQyJEgA0oJjMrJVYHuVzBK6zTNFGkCEUNC54f+eoxC4ftzKIlY+zVNDGkb5ALBOZzvEN6meIt+ihh8WlcmoK+kI/Ykd4XSimgyynHJQlV0lx1aZwhjyKVBRYlRGqNNP1kMSKmvhLQxpqLRxYCUnkz6xLSC73D59Ss17wldyiqLPiQKc4gQPb5ZEZ3FmwFCGVq3oW4qmk1FVze4uqVtq7SKyjOGDDBGE435rs703/PZQ0rIJLgj7cKNUn3SaFKpF0R+QmR80TuMdUmkGOCTKLi8eZ3X7t+mVC2y6xCZIp5dUh5doBqLd0m24lwaw6UdbC9Kcg5fJWBRMzF8aiuO6o43g6fa1Fgf8VLRWosNyePvY2AQBffKAkH/XDLDyBTorubF4pzZzS9x83PfT/vsG2wWC6x3/Mq/+Bfc1gqvFSerllXdIb1C1p4ffvsHcLngPzz4gK+9/wE2RGazHb70ufs8e/Gcp6ennJ9Zfuu3vo4ohswXFSMXOfz+LzF59xq/9I/+7zw+OqHMDT/8vW/z7tt3+Ff/9htsFjV/8Pf/IItnj7h2eJMbt+7wmx++x3yzQgpFrjWhLCAGTITrk5xSe1bP1sxty0XTUq0t62dnmCJHANenGRf1nLOHjheLio23dELTSVi0FZvRhEpFomsZ+UAuBV7BJ/MNTzrPynm6Zo5WGbv5ThKQaU2eGYZKcXPvAKUUs91dhJGUecGj4wtcjIxLxdHJmtOLMya642h1SjErGIxL2rrl4vmCkVJ43zGfR6JPjo92YwleYzJJJh27wwH1ao5wG3ZmGfkgpa1Gka6N4AIiQB4jmQBhBLhILnJsjKA0H8zPWc5y3qkNBxt6AXSgLAznmw2frWouo6IWgo2MLPFkg4L791/l9rtvUHcVR99+xOm6pvKeeyrnhi4wWQY6JTqv64ZvnZ3w7t3bFL32QwHRdzR2Q7W+RO+OMYOMEAq8t7hVRX7tgM29A97/8AW8OOfg/j1uHR6QRcem7mgkPF0sOHv2lPbFU3ZHu5zXHTvOsuvS+F73gWsAeN/bQ3t6KFzt2b3RKKFxXnLkI2slEtq/F7yn0MgeZhVT3stWF0AM6ZCJEbY6Nu+TfoZk9xRSpiKqdw2FkHRv4TtWS1u1fuqE00/pZG157fY16sURWVD4asPFeoFzgbNlAhAe7E6TyyWmwsoICD1UUURH1DqRs2WetBZADDZBEmOktg1nFwtWjcMrwartUHmenl/PcMrLnMlsTGVbutDi2sDResO8aimVZKolTnrqOORgusNwMEmmAaOQuSEogQ+W4DoinkxJ7t29yenFiqfPz7hxfYfxQU4QmqgUQSbdQiA1acI5TJaln5PS6RAEuq4lVGterBq+8uKMdfLhEHsbeewZMOJKdyn6AzQdpC76NBmRCk2aiEECwKVAZoGKEp10nviekSJ8RPk0uUyOakns04uT9TdcTUm2h/BWC759fWOMKQyi/xkbkTQwSssevNavdkJAu6QZkVIjhUaIlGSUtCL0BVxfnG9Ft1dayu+YdLCd/sTepdOrmztHtC7Z9H1SjMcgiTJiSSnvXkv0pOT6jQNu7YyhKFisW6oPT2E8xBiJ0TJBVqVMnLIokdKgZJqipG8n9L9s+rnF7ygg+vnDlZsoxKtwRLzDtx2u6+h8S2vr5DILERNBKE1rK5p2Q2cb6qaibWq881iX7PSDvd3ktNLfHTj293zRkiDQPY+l17ckBXkaid2wDT9kNCPbpGpfWRqn+DTL2PvcHcZ5wLUrjBIEbzFncwbLBts5ujbFgYv/H3v/2WxplqbnYdcyr9n22Mw86SrLV7WptmPQA8wAwwFAgSAEBCmJCoQUEkOhP6FfoJ8ghj4wqJBCYkgERcGQAUBjMOjxM93TXdVVXT6z0p08btvXLKsPz7tPNSIQROujWtwdGdVxzD7n7P2+az3ree77urUSW5wSQR9JFpacI9lomgxPOs82K0priT4RskIVltnIcP9kD5ciL5YbZiFzUhaymBiFKgzWlnjV44qKfjwjE8m+Y//lO9Qx02+3lNOSw3pMzpm7tw/Zdg3Gn/HP/h//OZfOo24eolPALK84PD5itVnx0cNH7O3t8Wu/9G0+nH7Mx49PufXqA169ecy//lff56/+rb/JX/uNX+f/+F/8n0GXrPrEn334MZ+dvaA4d1hr+a2/+bf58bs/5PMnD1luGrzSHOzt88033+L09ClnV1fkrGgJQ1ibpeu23NyboI4mfPjZE1ScUpYFbU589bV7/NFPPuXp0zV+PsLWE9rOQdNz7p4ztxo7sswnMzYx4EmsukRRzhkpR449wXlC77lst7i2Y1rsURSWm0dHxKbl4MF9srY4VbJcNdy/c8Tq6orlcsWy2dIqx4qWk5uHFKVmvYCRHvPySUFdBVTWNI3jarPictUSqYSsHHusMiy3C6qJpp4ZUiEn6RJFCJEcM5UyTGNJ2XhUMFSjCjMZse17zpWHacGDouTk0lEnxTYGtMp0RJ6tljzLiY02dD6yVRk3Nrz8zms8+MabeJ9YvljzfLHh0nmWnUP7zGzfYCY1eVRC4/jkxSmPtg3vxCwLI4gQ17V41QkAr92QqFDKoNHYkEmjgqO/9l3++It/xl675Ha3wlYl+ExRWmZ7U+b7e5y9WHD50w+4+xt/nUcXDWUIzGMeBHsCdswpyTiAAcGvdpZZWSWNFiS49/CMTKshhUBv5GChchYnxA4qN4grBXKtCTmKoDYnohrgY4OoNivhueiQBWK2K3yShAQOZg/pCvDlSVSrzLpJnEbLvdkh/vkz/GZDH1oihqIeE3tP5yN1KRu88w7rFDqa6wwWpzTZZExRyqgsZZIPohVKkeVqyeViRbZjQbMPyeo+BEwKjMqCqirIB/tQlpy9uKAJkZWPbLue42nFKydH3DzaY388YrS/R3Wwh6kFz2DqCpIWd2NykKQbcbg35bXX7vHk2SmPnl3y0oNjpqUdhJqDziSna/5H8B60kbGb1ZJkf37GdtXy7iLy6SKRgsUQSEp9aXP+mTV5p/DIQ3erkMhDCUHUUkQqZa87dAow2RDSkN+sDYZEFIyy6KAA1DASkvkLYtHcCX/tdddlZ7kevgV8GIIaNcEo0CJANjs2iYKg5U/xZHoyvcoELXlD8kTq2lEzTF7+Df2KGIsk2mLnGkopkkL48p/34IPYrtGoJLqorBWMCoqjKUcv3WJyMsObzMV5y2YROT19gUkRW1VYMha5vggJdMTWGq2sRGnAtX5r1yUTW/kwchuwFteW7CQj1ujF2eSCw6Wezre07VKgeEpGgcG1ZBQuNDTrDe12S9e0RB/pOk9OUBjFWJWUGDw/H6jl/w+KFjUscDLDT+RB1S2hiL+qLS9nsaDKDaV4lAPr+7eZH0wh9qgUpXDo1xTPLhm14EJEq4TOgcqWFLYgpp1zQVEWFanSYBUb0/LRYkMbB5V6kFntuB4xHtccTUd0MaNTwcyvOZyMCM2aOJzMI54+ekKuGBnNkYr8dH1OrTPjUcFal0xHE0ajMfPZBK0zW++Y7+8xmx1Tx8iibTi/XNHawF988C5XqxXHh4c0T8959/d+xNHtG/zSt36Jjz97xK9+65f55LMPeHF5Rj/Ysv1iSb/aYqi5Wq7JvuHs6TN+8Jd/xo0bE1wInF40TPaPCN4zm5Z025rNleKXfuWXePjph1ycPkclhd90A/shE0LGmgDa8OTJlvvzyK3JIfqlPdbLNSoE2tUSEz1mZrhImcNqjLMVbb9hs+7YNiumpqSuRtw5OUYRWJwvcVZhy5rxqILgmFiNahtmdU1wkYurFV5bDiY1Z89bnl+ccrlYUJjE/isT6mlJ2zraq0ytE7duRo4PDKuLntArfB/YXClSUJQHihQRVbxWaJNF6KoVZlh4Q5ZjnUqBch2p1pGcFTfuH1NqS+k6Xpxecnhnn8PeMW4jbY4ErVEWXrjIRfSsVGJDpCOwDAZfjZnfmpONo1u2dNuOq75DT0eUfWIeNJOyQhUFQWe2lwu+//gJmxjxIUDvSVYw+7Fv2BpH7B2qbchWQ12iKAkKdIyMbt+kn5V89VfeYXRjQn8Joff0Tc92ucaqkoxmcXbFnaZlr7BMM0y0G1KVMzlkmdHvahQluTfsHBQ5oKIimMQ2Rh7rAqeUWDtjpECTVMYPRcUuAFGFeK2FiPnLU2xKwtNIgygz5ASDaynv4GQMzhIg5kHQC2gSVpmBVisQr/c/e456+YC5MlgU1WxGRlHkEc57lHeoYRMiQvaKrCti0GKBVoNTqxOKtwJ0VlhTEELm7Kph6zx1hRS2ZSFlgsmUVcWkqiR3p9SMURwdSyEmokp4+fYer967yeG4YD6aUE2mmHpEMa4odpTT6EQcbiM5gA+iHzo6nHB4a8aLiy2r9ZajowNsWRByuu5OAUOqr2ggshELcEyZ918see8y8dnVhjZWqJyIuhAOSlSYJIVqUpk8UMmzlnVTK4WO8loM5JdhzBfEHaMM2guhlkIN1uUvuy0ZoRtXWgrbrAf9VBaRtVQLMu5Qg3vnOsxwsGProet9zSgxQ/bO0OPTw8+RcYghxUTIDlIpYxx2QOEhkTql68Jl11FCxevfJaNIKpFIIsDNHh96fPBkHzDJDIWdJk8M85cO2Xv5NtXRmMYv+Ozx++S+xpiXWV6cQd9RFgao0FkEvCEmSifiWF3W6KIa7jPJXFLX2rAg4L3oScESk+RPqZxRMZJ8xnsRyofe40KPi46tb9j2W3TOWGXxORBjQ4yRvu9pNw3b9YbgPDlpuq3DqEh5tMd0dkhS5jrk8t/1+IUvWkiBCpnnuZjIVi5gnyP3fc9vqDH7yRGsBCg2QfGBVfh7exQ6YhXosiJmyJdrirOFCG2ViHwLazBGFrQUEsZaAc2VBdoanG951vV8eL4iKnAx0COuIKs0vQsi5G0DYd1yU2sOi5IcweVMDAnnAilpet/yukmcmMAfXZ5RVgWHezMKE9mvC2orbdjeR3QI6Bho2i2hLKimY25yTLOJjA8TJ3du8vKDO3z/j/+S3373x8QfJPSoohzV8PgpN18+xI8rPjl7wbbfUpSZvNrwt//2v8/p+SXGlNy/dcLjZ19AoenanpgSo9JQFvCTD37MxbNnTOs9Hj38nG3nefOdb/PV71puf/AJjz7/lA8+/FBs4jZS+sgmRj794pS61Lz86hs8Obvigw8+QFk4OpownU0Ji56rqy3b9oIL37MoL6lnM6Y393ixXjIZl9w4uIkLia++dJd+e0ldlPjlikMnOTpVWXPVNFwttxRFSQqBR0+ecXl2DqGlOCqZHlmizSzPWzbLjpdPaub7cjpxIRCS4uKy42oRqEpxjeQEKcrM3ZgSjVjES6PE4u48RmtmTjE785Qd1HXFQTGhaXthzFSGo1IzuurIMbHOkTAsgE23ZaMyvVZ4H3A58Tx7+qBZbHvqiyVt77jot7QxM6om3Dmy3Fo7xsaQrEJ3PT/9/CEfdVuOihqcHyBWciJ1fc+y39BMCkZlja1G6FoTtZLsmY04XL7xG7/C6OAGwfXEboPfrojNmn655vLqim1wbJstsVlyb++I6qxnpJXMv2MQ8uZODEkcioVCuh4pyEncaEyKnGfNF4WmM1acPUqTsibypYNBqx07Qk7VcRDeopAQuzy4UoZTdZTKBK0H6JxCMmt2Bw8t4ws9HI8j8nUkYarEYPnw0Tn3S8Oeg/m0QqtEoQArr1fbbSlTloOHlcW7rCp67yVUVskYIsZIYbQ47Ehs25bnyw1x6MpoZSA5VACw2MpgC0m3rsnoUcHITDmoLO/cO2ZcaKwRPhXJoK1mNB0z3T+kLibk2BH8VsizKHSy6EKji0R2sGfn3Ltzwntnn7BtOoyRhGkGvtXOSRJC/HLUYyQ7yRP57MLz8YWn02JD1yKHJg3CzmSG7T/La64GCvCu8CyyaFby0I3TphhgcUJaZSCbMwRK5qGYJO06G2Kx3QUiqqE9s+O+KKWIQ6QDDJKotBMlD+//0CkhZ5Ls3KL1GPSzOUvHKEZ5//KQdpzZdS700NT50jH0pZj1S+jd7rFzNKWUiCEQgsd7CRQ1JOy4ZnbnhKOv3qO8WbNt1nz86R/y9PFPOTz6OmVxl7PLM3xYoE1EZUtUvbzGKZH8kPqdLdbVUBWkgbOTsroezaWYcNlhkBGSVpYcE6F3xKzJXiI5nHN47+lcR+87Otfgg5d1LmmsNnjnaduWruvYNC1905JjJIRE8jCb1oznY3KOBNcL2+znePzCFy3JQsqRaIwAdZTCojl28Guq4hUTRK+iM9lkngfFk+Mpx0VJqSKFtahsaLqe4mrLZCUzZxhIi8NVLBeuVOUUgwtj3dHFno+7FU+6IJoYMl30MNyofetYtx2bPuDbnhvViANbcuYjYceTsZYce+YZvoeiePo5ZbMk2op123Pj1glHoxGLxRXR9RRJUxhDhSLGgA2GtukZ2YL5uMY3G4y2XFxtUJMJ4aBltdiQvOfOwZyrKvPi4XMZJ9Ql87092mbBJ198xu/94/+Ot+4/4On6gkenzwlBcevwkIIS/IJxioxJpHaL7lqqYsSTJ5/y9MUFj188Y+t7Nq3j13/1r/Cd736b//q/+ae89erL5BRYPL/kuC7wJXz0049YbSM2WOpJyWT/mGUb2DY9rukpBwCUtZYHL79EuTenazdsP/4cM59zcjjh9Tnce/UO0/mU0G7Ys2OWWystXKXpXGIy3mO1uODRk2eURlOXJfpGhZ1mYt+xuWwptObosKbrPecXESjp/IamFfsuOlHXJdaW9L2MGY3ReOcpC7EXRp0JlBivmF4mRqcOnWpuv/YKk9kerllw9mLB/uGUycajNpHGZfywScec2KpID7goh8NCGTSJTdfx0adfoMI+s8MJ1Vjh+4blKpJjwqJF0Jihu7jgkxcv2GQ4GBY0UkIlEdStNysu6QhLS5qUjKclpjZEXeK9FCz4yP6Nm6zXK3yzwCRP0gGPZ9O1OOeIIdI2DW59xfH+ASMTMZ0I1K+78btxrdph3blGiZMVqZD04GdkNrpEOUVhFB15sLvaAVIn35PVzqosB/B8PRaQhRljrxPo8/A9YRgf5Zwx+Wc3lAGnngdiak5DuKrBaBH0+gDPUsYXFf2zKw5nBaYwGK1oU2LjHftWODC7IqUPARcDsXN0fY+LCWMN00ktxZsyLNdXON9RlnOC14wKw6iwVGXJaFQzn02wGnQuUXWFrkvGtmRSyr/CaJxr2a4XlNYynh1Sz+ZkZcA7YheJ64hfbukbyRZzJjDamzCZTakM3L19iy8evmCz7YYN3lBo6XJ570XnYYbQSS3Jy+RIJLHtAyEIl0YNgmiFwgxFQhreZxUVRtDaQzK3FAtRy7VqE+hshgxNCXJMeaAbX3+5AoSsrIb7RF3LAHY6ksECP+QPyQeMFBVDl01SxYcIh9045GcKGJWzdIhSQkeuo1rSwDOJMV1v+jt36M96UWQy9rPupZ1GarAE74rl6xFllpHlqGB0+4g777zJ5PYxTXPO1YtPePLoBzz+7Am3Tn4Vre9xtVxiYkM2DK9RGIq5TMqRnAM5R1KStSGPLBLZaUVcm4Vb5L0nEihNIe+7CjinxGkXsqR9R8FI9DHgfCsi236L9/01Obftevq2Y7Vas1itaJwTEngWSFM9qSlHBUVdoHRG5yjX/8/x+IUvWmyWlmLKGWslX6FG87rq+atFzTh2RJuxARqt+LHK+FnNZFwxKirsAE/K/RJ7tqBsAsoDSS7ClLlWdJdGk5InNIGuaajVhG7i+Sw0LGOiVAqbHamTSryoClxoebHZ4PrEyCcm45q6FLBYHyMlkcNZxWy1YryGeyO4fPqQIvb4XNK2Pcul5+mTFYUKHI0NNYobkzEjBVchE1UiBfH9H000I7vP1dZzuXG0rZMbsrBU1vLyS3d55+0HPH3ynMZnfFaEvsWkQPSRf/3+D9j+uKeYjalme5TBYnXJN7/7bX7zYJ9nDz/m/OIZKUTGpWY+huW2pQ89k+y4eXjIG3sjzi4e8+iL5/zWb/0G333nO7x4fsZIa0zu+b/+d/+M0cERl9tTjFJsNx0Xnz5hlA25D3gVef2l+0xI3L99i70b++h1w72yYDat0SPN8dfucO+Vu+yd3CFqTe5XxPWKWCu2fUPQluV2TaVKPv78MZvFmvFYoUaaYq7JOdKvIrENHB2MODzSJByxHxH6TCQQ+sxY4LHMxqJVWjUNRaUoiyTWQ5VxSay3hc4ULjI+j1SNpj6acvBrv0S4WrL65Au6vuNwY2DZY9tM6wNdku5LSJlt1vQMeHprWEW4uzfi22/c4c7Ltylnlq7radaXbNct7SbRhIizE2JMqG3P6WdPhE5qCxwCUcuxFwpo73j2Yslp0VEUnqgiyRis9zAe4RWEGCiNpksNbnGKKTXF2BKCYbt0LLOjQ6NsQR8D29WSk5S4Vxn0OqOSJmsJVpM1fRgRRUScqAe0uM+EbIgBvjCw1Ur0JUlhtRaS5+7wYOSQkIN0bpLKpPSleRkgEfBJkYwewuQU2UsRlYbNQvMlSyMrIaaKNVvWkAyDw2pIjo+ZbDSnxZhuotlcnlK1HVkF+hyJKTM7nBMrYQ2BWKtdivicWXeCxS8KRbaDw1tnFm1H1IouBSZFzWhUUo9HjMZjDvaPqG1F6HoqZSgmY5TRjMuSuiioiooCzXgyZ1Qe4JuW1ML26ort5QK32bB6dsbV1RWL9YbTyxXP2yzus9GIb77+Et/59sscHB1y9+4JsekgV2AMJgdCFG5OVl6gaZ1QwY2yaDJRGSEq6xZQBJWvCw4pPZTQXZVCBUhIUWDUTk8hr0HImWLodO06agZZXzVD/IqSYjQnsbrrQeStIpgsnZqURSlhUZDNdTdjJyoVCvTOfK1QSvQ6KeUvBbspojDE4fn1ruNgIjFpfFKoKN37sLMKR9mcZfJ0jb37t+xQmZy9iGNzwBGIhaa8MeXgtRscnNygOprS+y0Xlz+lXz2kO/+Yiy+ecLT/Herqrtjsk3QqBP4nozebha6ropbCxJR4n4CO2Fmop5K5pCCGSEyBHQIgpkRwnuiHjqCRDlBKCe/90GkL9O2attkQYiCmhMqaGBN961gtt1wuG5o2UBYlLknRVlmLKjSmtpis0cGT1ODd/nn29P/vSoD/33uUQ+aCyRk9OBVGOfNXdMm9FMjRDxzvgicx8pdFYu94xKSyaGtQxqJUxDjHZNlinCx4OyEvKJxzFEVBAHrnaZqGUinUTLEpEpdKJGAH0xGzcUncbPAp0hNZpcB5G9A+MUczryvKwhBjFBGUNRwfTDhYnXGKJxx2PPr8sThH+ghOsVif8sUXX/DW3dsoXzJTmRslhLJAFTXJJnKM5N6To8dYQ8RJqqmVrKO6EChSu9mwXizQSiBN3glGfTKbgY+cucjWeUqvKAJsmg0ffvpT3nv4KYeTCTfHFqsS3/sr34PsqEYF7/7hH0EhcLc//+Gfc+vwPm9/4zU+evgZbeu5e/M+f/bnf4qeGV59+RWq2R6L5YpEIGvFbDzhwdGUzdWCi6HNcP7ikpuv3edbX3+b23tjFj/6CXHdUyXL/MEJs7snFLObXHYF2Vim9QmGinklM/irq0u6pud8/YSHTz+ntoFp1nTTEVVlCH2gWXVUtuDGcclkDL3X6GSGOW5gPptI3MJUFqWujZgiUtlMaaAq7DBSGOBWJnDcK2YLRxEURw9eIo4s7v0FV0/POCZjrq7QOdNl2GQhW06M8C2qLD/baE2nMm4C33zrAScvHWHqis3a0296NouGTR/ZuIAOicpk2n7L5tlzPn/+gqw0NYlalaiYhNliIPY9F8srLukolYeoyMlQ+4g5mKPmYxKJgMIFx7LbMN0/whtN0LBqOxbLDW3nUcJsZ7tuKHzHjZFFq16cPYNQUjHYncnSsRy4KWg55ZqUWMbEC22gLCSTJg1256EjEtWA78j5WkgYBuvstT03JakZUib6MIyEjBw21M/g1LUUOiEEtBriFhCrbmEMWGGSKLWz0Mrnk5myHk3ZFGPsZgWuYTytMd5x2S6YZoWJmUQUYWlMNH2Py2LZ3dMFEzTlAI3TKIqRJRqDt5ZkalZXgaefnrJ1XxD6DuMcpbEUZUmNYVIUlIWltkKZVdaSQsC3DcZ35M6RvUfZgC4Muiq5ff8YXWu2zy75/GrLF1dbfvrikumNEb/2xi9x55X7vPjoE0yhKaqa6HsIQU7Gyg55QzJ6U2hImrIeUY4mxGWHRoHV6GyEQTRoOoS0I3A2accMWpFBXL3j+kkBmTFaCtqcIzvZ0+DnEn2NpCMOI57BZBHTQLqV9zXk3cczRZbsIm1kDY/XNmi5hhJSbGgjOgszdNPz8LWQKYy4eNLwsZjSdfDmMDmSa0rtOCw/212Rx3XRjSLpQDEtqE8mjOcHlOOKiKPvrlhuH9GvnxObpxTuBX1cMarvM6oe4LolNkWIjpiCSJjzl3DFmGR02mvJ3SuNJilL6hU5eSgYEs7zgGIwqAxt37HtpMsmNvOICHPzMBILdF1P8j3Be7FAY0k54EPHZtOw2HSstg0xZjIV2kpETcxSw0cSo7oWKWnO/9aS7t/2+IUvWkiRIgmQSCtFmeGNFPn2aEwRIikqjDW0GN73HevplFdHNcrKHBOj8aEnbRumq45yCHjbzSb7riPljDEGlzIXqzUmZWbzGanILGzgYriEZ2XBbFzSD6r3XFpitLQtjDKMjWZWlugs1SxGipeLiy1n5z2LsuDPzp/ztO/oU8Fm0XDR9CiT2TrHVbulbRv29qdMrWXtGjpVoKhpVi1t11FUhqA1PkbOrxasNhsKI8nUo3qEzoq+7RjXJRHPpm1x3hOywybocyCLPxNcwPseU0lEnXeGrpjRNA3/5J//C05u7KNy5MXjU+bHhxwe7nN8uaTUHX7bM9I1n3/2iH8S/iXf+eY7HJaej979c+qq5PjGIZvNhulkwn/8d/8uVV2wWa148eKCf/3DH6Ct5eD4EF2NOJgcs2kTVT3C3tln/vZLtM5z8dNH6KNj9GREt0rsjRTjyYRsDSEF+pxpNxvYbgWxvqcxMzA645uMiobJOHNyUknLvTNoZXGhpesy261Dq5LZrGa9dIStnARtrckSCUKtCkIQLso0am4+D+ytCsZ7M25/5W3c5ZL2k4e0zZoDNH0MeAXrmOhQTI1hnIRWyZA+3KtEXxW88/Z97r16h2JSitzAbVkvG55dLDnvHasEL5WGiYZtcOizBVdtw8mk4rmDJyHgUkIFL6fbpmHkMrrrWVktJ+pxRRHnlLXBG+EzaF0SvKdbN9SjEdkYrk4vaNYt1sHUWHxyZB9wnaPOgcNSQeohm2sh5yACYkcfHdSLctsSUTGwjJHzohCxIFzTRdXgOtlpEHYC2wzXRUtWAjyLOaKVbK46SaGSkuSRyWIpp0sBa+nrQnNnlbVKYQeK7hDeK4cgI1qFQnY2kp0QDmegDY1NjEPDxcdn3PaRUmucc6CRbo/R6NJKoOuooJqKJX29bSjqkmMzxoWCR5cbPvv4kvOzS9abhhgDe5Vhv5DXQbqxmgpNZTXH05r5pIYYSNuW8WzCwY0p5axkVM+589ZrTI4PUBkm8zGPHz3kxuWG6vNnPP7Dj1n1jnIyZTaZc+vwkHb8BVGlIb3XDnyTRIqC2jdawkxzEg6N1pZN74hKYzHoxDWqPykZDcHgxCoUcZdBhQQe6pzJSYPOaGMwWd5lpXYE16E7g7Bh0vV1IMwUsgixbSGclAzXDJ6SHVJ/CGu8fgwiYC0RJulnkse13nX0pBCIZCm2kow0w+5jWQIv4zC+CnxZnO2u758dDe32D5TCTA3juWSC5bLGFIr1+hl984Ic1oT+itScU8QLDJ6rdUk9fpUYM+j4ZeSEkrEawyiuSyJ0zkA0imw1PsgBK2zX6MISq0rs6oUhRwVhsOb3Dt+LbkVpRUDGo8YYfAi43eeG3KgYI0l5OtfTNC3LbUvrE9oqgnc0fSaqSFVYoQfrAlMWzPf2BuCe+TcKuv++xy980WKMxWZFVAINqrzje6bkRBm0z6hs8Cpz1Tl+aDTVbMrxbB+txNPuE2z7lmKxYtoEtDZDKmYmRmmXoTVdcKw2DaTMbDRiXFa4KtLOStSlzLVLLaLdECMaiw5K8hkGIWQJzKzktDifULZAWY1H0acCa2r+5QePCE1Poy1d8FLlhkzWBY8WKw6U5i1jqI1lgxpmwhLWRu/AGFbrDafnG05XneQNoShNgU0BYqAJmSY5+s5RKk3T96IByYneNZRKU+lMoRW5GlHOx2w2W3zOPFktmNY1NjmWl5fUlWE2m9Est3zYP+blV97k5ZOb/PlPfsx8b8L/4j/6j/n9P/wDfvLDd/nf/i//ITpr/ui998m2Zm8+429971eZHc74y598RKFKfutv/m26HJhO5vzyN7/Oj3/yLlePnjHvPHfeuM2tt+/TFo7t40uefHTO8Zue8Y1jrDWgCop5QdCGbeP59MULWC75yr0bvP/YY48so+MS17Zszhy2yNSTxNGsoiwzORfEzmIKhc+BPmkmI0VpShrv2XYN1sK4tlirZLHNBpeEF3GwNNSPIzmMeOM3/gr5YI/Nhx+xXp5TIYVvxhBUJplEEROHdT0EcIoIMRmFs4bj24fcuH2D+nCfYjxis9nQe8eLxYIvFmuunNg6f+n1Oxyci0X/bNvideKt/X1WmzXPlytyCiTnRXDa9MzQ3NQFHzcd62lN0TrKtkO7Fj0ymNLCqGKc9lhkTfvFC+yo5qCeYGeOi2rJwvVQjJnMZxRVhfVO7N1pgL6lgXwKsnkYvTuKogcxY1SgsmeZMytrBOQowgR0EvBXVgmTEymZoahR8l9jIETBwydxc0Sl2KXTxLzDuCesEneJGTo3KUWsEipqaYyMIYxYWXe4eNk8pXMggaF6yDeTU7lG0qS9rgl9wjUt47Im5UgIoqdCa0KMVEU5nNAjVVUREkynW8bzQ9qV409/9AU/enxG6wKV1RxYLWLzw4pbN/ZZXSwgZcqqpDKZ1776One/8hZhteHyk0956c23eeOv/VUWyyXN2UPuvf1NehdoL19weP8u4dYBt3TN0eWa73/0n3GvGPFLX/8KGcV8XDMaWSGVaktWjhSjjPEGHVBCxNulLlCqpA+BVbNFx0zQEaMHiKf+sktlkvQXUspYLcC6PBQ2RmmijtcZQwn5XrlmIA2jIPRQVAx6GbKWEdOA7k8oIaArwctfs1GUFEPwpaA4Z4Y8IeRa3I2F8pfdERHpcl3AxMEBZw34GAnZQhiyq4bWSsoJPeD1BSonqo1K/P2oomC8X9KzYL09w4zmVHrE4uoF7eoJNrUk35N8B7mhKiOXiwYXXh+CDcV5JjeSGsZRomGJKWBUJiBFTSKDtQSdCNFhoqfSkDoZxVFVuCSBmH3b02xaYu9xyaNLGYcaazHWEHym753odFBYawhZgIjbPrJpAutNT+clrsZqzaQYoi6VIuqMJzIZTbHaojEycrvuT/33P37hi5Ydf0Gj8CbzelJ821aUnZObrlLkAO+myKNpwet39pnMx2gywXm2yrFdXnLrbEHVR1TScmobihY9iNGapiGFwHw8ZTyqwRianHiyWnK+WZJQ6BiZWMNKiRAwxki7bTDABJiiORiNh8DCgBqNSYWF0lKNSiyZkDy2NuQmwAAaSggsq1n0jI2iOJhhs4i7mrZDGUth4PbxiLbfctFt2DYbQlZorYR6WGbq2mJ1ZHtxgcqWPnhsWVBmTfQSVjiioCpLVFliygKLzI/HRYXG4AcrXxsgxRJdThnvjxkFx+XlGR/8+F0++iE4El0O/Mlf/CnvfOsdCgW//xe/z/rikptlzbPOU1clkcDv/uHv8MMPPkGrmrPNBV957WW6dcNqfYVbrTg8vsuv/PpfZ3P5Ib3ZkKNhud5QTAp82+HPr+hywsc9isNjfM60wVOMHKrxFGhMaTm6fQPKwMXjDdZr5hPDzf0C73omU0PQBSpbijYRu4BzjuOjUiyZWhOUZzKr0IUs6lYJtwISB67g4KFn/sJw8M2vcPO73+T840/h+TmtCtjJiLT1ZK3xBFJO7I0nWGPoY6T3iY5Mp2F2csC9t+4zvn0TvXdIH3ta37PatDy8XPJ0G2iD5pfvHfJb334T+/0PUZvMNgWsNtw6OOJ203MLTREzKkTQAR0jB1XNSQw0UbH0GWMGS3DvISZyVZCtYTybMdmbMW0js8MDklG0V2spBrQaaKMJFx1hvSGvBouvur4pB6icbFY5BuSukN6xVoacFKdKsSkGTgoiTjS7drsaTt5ZNrYcIwUKjYwDYhTMuTaGNAhw01Ck7B67EY8eTvR6+P7CyCnZDPlEYgaRhVchcDzPQDxV8rFCy0astEIbyeQpplOC8oQsI7DkItpCYSyT8RijZEOryoqykmyYo+NDZoe3iAcKfu89tq0jWsWoyMz3ao5u7XH/tVv8+3/vf8Tq4pKri3Pu3LvL+mrBm9/4DrN7rxG95/N3/5zjWzdRxyfsH91kdDDFHt3HbxsqpaA6YHTTsmo9qofvvnaP//Ff+x6Ht/ZJ2jIajanr0SAolYKTYV0hfRlyaAeBa1aJretxPqGVla6S1mQtoxdjBMioEX1KRgoRrQTCNsx9GPK+YdjkxL8e5Z1RQ0o40kFRWbJ/8qDf0Dtn0SBwZSherDZfjm12Xb38pQVe7YTZP9v5Y2AHqS/dPSZLIWxQMCDoc1KkrFG7bsG1qFaJywg5dKjhxyaTMZViNA904Rnd9hm6rDC5ZPHsU/r2AuKahCcHR2kURRkIOfPisiabA3IhDtQcs2TlJRnZJLh2yeU8cF2SEJ1jkpyt7AO4KIJwk2hdT9y2NJ1ju21Zb1qatidmRcieui6YFAW2KkkauhBRITK2JWVhicPPXHc9iyaw2rb43kGS1z6ERI+jMIrCagkwzRWzaozJRrpoDN3kn+PxC1+0CChHKuuDLvNtnTkJYidVhQVluPCOf115Rjdv8urtY6zOBA0e6PqG/vlzJmdryj5J0TJ0WuRkrPHeoY1hfzpmXFRYY8g6s5pq8nzCN8I+z87POJoUoCKBRERm7iFEqpyZK8gkylFNCIE2RHyG2pSDayGSek89HVHWFQu3RKdM5RWd95jBHz/XUGshDcas2MYOayrGquDm/gGT0R0mdorPT2E+5cnTBc/OWpTPKJMJMdJ3DqvE5ug2DUbJecaR0bZgXE2oxiOKumAyqmibFpMGauQgsBzN5tSmHObBFj0qOTquyDHQNBuc7xinyNPnz/jws0+4eesGy3ZJ3XR858GbrCrD6abj8WcPaVdrmu2WslS8+8MfsFcpDvYOyW3DS3XB4sVTPjk74HgyZ1ofYWzFq+/cZLvZsFyuiK7HaThfr/mzP/4TmmAoxhNQmdIkKuRUlEtLDB2F8pzcUty7WzGqLSk71uuGoppD9sTccXnR0G8To6pEpcx2uyXpQCwMMYueRcdIzIFRitx6Eth75Ml6xr1f/iadNoTlFWXbUGTZePvgCVpc4ApNtpqz1LFNmUYZfKGZ3pzx0jtvcPTKPXwMNKs1vWu5urrg4WLJTy5WvOgT87Lg7/7KO7z56gMe/9kj6q3nhU5MbMmoqqliYp4TwTtycCgiNkWmVcltpviuITbDibe0qKrAVIXQjpWB2nD/m19lunF0yw2rqwVu3dKHRGELlAok1xPbBn21omgLVBoEmbvZvhJxbQoBjEIrAVtlXUnIaFQ8tYZQlhglpzlxdRgRySoNBIyRFN+oMyaLgyiYnZ03o2MmZUVUetjo1O5gih7GTmqXXSRKTfk99Y7U+jN6hywiUIbuaB7Sb3djBDu0/XPSJK2Y7O2j1YaQIzYPMLeYKMqSsq7wrhM7r1aUo4qoI/NCo4uCyXjOP/gPf4sn/8U/5WGzAmOpJyPuv/k6t9+6T333AUevvMn4+SNu3rrFUciUByfo6gBlHHv3XqOoJig7wSrwE3C5Zuu2nJ+dc9uOeX5+xtNPn6Iut/yd73yTV195CVtWUlAmL1bnneYHdU1OtUbcRG0/iEjRpEGAnNFoVQyqkzyUeciayyC4TlmKD7XToiiB1OWESVnydFQeCkrQGJIZNDFKDVqSgSEydN125/SdmJSdU4gd6E2KD2OM6DiGekinjEnSCRF6+s6mLAVsHsJwlRriHdgVMbtukxocfkORwG7kpQUjoxQmy3hKETA16HrFYvkZwV2gs0Ppm2zOLgnb55QmEaMXLaVOFNZQlZrHzxcE9RW0HqMS1zbrRCaShr9HRLgJ8DGTo9CDhRckuVG+DygfaaPDkXHB07WexXLLi8WaxbZh3TkSZrDil4wqTWksVmlsoRhXNX0UKGXyMo1YrhvONz29T1iVqIqCcVHJIUMl4vD6aWBUVhxN9yiwstYpEVT/PI9f+KLFKFm4jM68mjzv6BITFMlaMJYcIj91nuV+xTdfu8ON6Uhyg5Si957t4oLy/IK9jaNUEjdeGk0iEqIg+K3RjOopZTJoa9GVRpWg703Y2x/xZu/4bLLgZj3CGkuMCY2lHgi2KEWlNKYsmUxLOhdocxxU7sIAGSVZEDedp3MeZzSjQqOJTKcVnz18Spk1U6upNBijhSeTQI8Ut4/vcnJ4g8oIdnntPWlSU2X41le/xWK5ZH1xweXViourK+rxmLndIztPFwK9Vjgj4rurzZrDQjOdj7DlmGo8pd22aAwzo9GFRRuDih5FJnmHpBDJwtU7d83XKEjMtebq6XNSikz2pzzfLLhKlpgNqhjx9/+Dv0/5z/8Fb7z5Jvt1xXKzZjIZ8/Vv/TL59QUff/Y+XXPFxRW0oz1O3rrP3oO7dE8/Z280AecIKuBSy/L8nGfLLaP9GYUOFCbQpxZnvLRSmw2vPxjx+n1LVUKiwNoJRve028i68TxfNpwvEoWaUMQ5m+2aznuq2hB7RzSSn7PrAkw6w/5pYp6nNAdjqpMjfIzkaQ0hoBtP7gKOTKMSPmeSVix8zzonGhSd1owO57z6jTe49eAl7GxKbNekdstmu+LJ0wU/enLJ48YTsuGlGzO+9fpdyvGUUiswitZ57h3fYDSbY5WlzlmYIV2PLgq01dSjEUdFKZj3bsPZek3Kh0Jn1gajrSC8ixK1p4msUcHCUtF3kT4m+pgBg/aKuHVU254yFcO1EL8sWrKEw0EadCWRbEoUATR0KXFVW5Qe+htKC4xM68HZISc0PWSxRCUdx0SWAluLJkWjReuQwRixteoBOLazXe/0NHkHUEPEtlllhKwKOkXprKp4baGNiFBXnA8yJkIhf1fWmMke2fVSq0UZJfvg0ckyLsaoGMmhJfcB0FSVwXWJjKIoCt5++w3+N//J3+c/+6/+n5y3Lcsu0SUJt0wusdwuuXix5PjmfVzyJDQxesiR0XxfxMeuJ6XA6uqc9vFj1ptLnn/2Ad1qxcjOqJ8tmIbEjdfvkmJCR4WpC3ws0GUl75vr8b4bkqjBx0Q0Fh9llKKtJmZoPLgMmSiKjgRaZeywoaos75dVhiTKXNnUkeIhDIGWxsj3gkzTYhSNiFF6SPkeRnsqDQeldF2kCCNUSQciZ9AS6KixUkapPGiVDC7n6/dcaTVoZkQTIt8q7Zwh4OE6L0i+R4EGXQz6r93/Uh4KNCXgwS5SrBrs+QWb+Zb6W0dcLT4nuOeSjKwtyZ8T+gU6d4itXrqVOim0zmhrWC4MRs1FHyN/kry/OcjfiRZAXtoJ3EWI60MkBAHCpUF7k4Dee1ofaFrHet2yWKy5alvaEGScOkDp1hvPpldU1rBflBzqCdkHQpFJATrnaHrHqvWEkCm0dE+E8h8xRqJ0tC1ISlMAx9N9iqISV9OgHwrxf3APAaBCIBWaKma+heaegmgixhaQPAsXeb+Eu6+/yiu3b1GUwlxJMeC7Lc35JTcvNky9oq5qubiHi0YpyYMoSkVRlFhlUWVBLuRn5OmYUeWZjCqOJ5ZJTExtKV7+nCFmnPcUyGmvSopphm7jaEOkHBDK2hhqW6Cix4VETwJbEVOiJ9N1WzrvJHujqJlWE3RRkmOPC5FJWVDVJTF5Nv0WXVmmR/t8frHhbLFhOl1T6cStt77GtCywdGybnj997z3SWNFcOZQeEV0iusDB/hSlEov1BkdHYSXn5M7+PuPxhKt2Qx8DTQhEpanKEqug63uid1ggxkxZlyTfg9XYWFJVirIyPFovsPPbrC5O+fFmiy5LXn7lVawV/dGm22BrzT/95/+Yk5u3OT48IFyc0/aR2c0xP/n0fZpmi96uGJkCyhlvfvNbLB//lG77IaPgGPkVJ6/UPPjGCT/588+pckKHyPbccfBGTfaOPlZU4xJrDNpYnjw7Jek9zl44miZzNLboXHC5XFGVlkmtMSZQ2gJyxnuHjYrZImEvI73RdKMSU03wmxXVxZbVqsUPSOyORKszfRR6rveB3liuomerMq8eTTl++Qbl0YhUGYrRhO2F4/nDNR89ueTJsqf1Mu54494txpUlrltGMbH0jpwSd2+dYIGQg5xeh/fUGgtFga6gwLOnFa9Z0K1ntexJLgrTZRAp6myE01EWdES66FkFj1OZqIe2eILe9RTOY0gQEkYNKPScvyTR/hv/DGTZdDc5s7SS2r0DgQUyXokg1iqFTwxalQFBoDUpDlqKLJTYpCEp2YRIMp7YdVeiEuGuYRgF6C+BcgPzH4OiUGpoDKXhazQgzgytdkRR2STUwIzJaLyt6DrFVMnzyek4DCfeDmssPmj6PhC8YjSZ0HRxSHlXuBz51tdf4X83/4f89m9/n1V2HO3t0bU9Tz/+nJGOpOUlpx99hMeiW3DjFc61pBzp2obQ9oyU4fL5M/anUw5TZn/vJdLDFr1YcBeY3DuGqsCohNDdE2jRyuzGd81mjY5xSGJWBC96jmJcEFMg6ZqLdUtEDQ4jEYYONBBEri+vbxpCKneakYhkcslEJw9jJEQsPYhk00C/lVc2UyhNVFLwavWl1igNXRSLWK6DFquyyYqs5fM7ErPVZrg28vX7boZfYTdukozpJGgIZeTaVlpE2UOIotoJunNE+4B+vmDWBSZdpH6+Jnz+nMvikvp/9QYvug8gXKFpiUERYonRHUZ7CVrcOeSHrqA2ivXGQdwTOUDywhwaRkIg3cWU0rB3pWFcloYspyRRFzHio4jvXQi4mGnansV6S9P2ZAPjec0kaWLM9ENXUAMYTVlZKqOJ2ktnK0VCI52V1gXcYBRQOWOVRDuEJG5biyG5TEiGg+mUvfGc4DShGICDKeG8+7n29F/8oiWDSZmXfeSX64o6OZIW+mcXMx8FR//GLb721iuMRiUQCCHQtVva9RV5veGmK5iVGlMX0g6OGRwi5NWgygJdlyhbQWlQKhGLQKhqrJKx0e2jGvoeOyjuk1Y0my2pEQruKEGRI0XMLDZbGiImDu35IWQsZyi0pUoQs8ZphdVjmqtLUt8zKSqIiaAtuSgJLuBVonOB1XrJRCdScDK7bB3Pzi5YbTvG0xm12vLxD/+QR+dr7r75MuVIM5qO+Lu//rc5PXtBPdnjYrHh44dPWJ49xrUNvZPiyfjE5GCCIXJ+cUGbE+PKMjOZ0ahg1XS0UXG13qB9oDKZSQl90xGCoyg0o2nJ3kHN/p0TPvnBB1x88inZR2JseHT6Gc5PqZ73nIwPqAkcj4547Stv8aMffUClHdYa9F5FbzJPHz9kOlLkZsNi6zjPmodui1aBeTHhH/4H/xM+e/wBj1bvYZTh+NY+VdETujXzceBoZiFEumjIOVBYRRs8l8stxhp0LNgbzXnp/gmrzZqYAtNRQWEi1ioJZRtEhUVOzC8DJTUH33qHqiohBPLzM3h8TugjKSQ8iW3ybFKii5moJGhvEQLnRBqtOOo9vu1J2ROCZ7FYsXx+wenzC1yGpCQ919jMm7eOyGTap6eMQ+Kqbbk52WN/f5/NZsvnWfEFmlUMeJ8pRgasQVcKQsKmxFxXvOI0T5YyrhRAVQAKskuowuCtZtU3nK+uWIaOhkhQIkZNKmGsYopGR2E4CBVu10Ln2v6cY0QlhSaRUyB7uNKKhbXXQsjhYCvW4Cx207QrBBigXkphrSXlTDEk+MLQDVHSylda6K1JDyOiAU1vBrHtrpixRjo1JonWIjJYYa+dJfJcu4feiTURh1JA4UyJNwU+9xQ5inYnJXzbCW+mlFHFqu2JMWKtoSitnLJzwAToY8err57w9qv/c67Or+g2DaUq4Mma2dGI0lnSJ08oNSwefsF4todSJfP5PhMM/balLkbkdYlZNBS7FOHOU8wMeq+m2q9RpcGUBlMqCZtUiel0LGNiJ6J/6TYZeS1SEjYKQnwOKvPkcoWyBTsmu9GStkzKCCVFXYtSBWIi2iHQ0o1JAXLCaAUxYbN0pocvkX8MIt2UUFYPAbjSWdtpkkJOEDPGiADXDMWnGsI643AdGjWoa9JQeO4w+0i3WiMiYKvNICDWwoaRqkauD6Q40wmqzhP/4D22//on8v4WBduUaHWL+Ts3cPUL7HZFKuRe9UGGwUYnSmMGa5rQd3e/Q1mWPH2yhXRITBmXW1S010nYMo4U0WsaUBnCUemlmExJXtcBqe8y9C7Suci27emDx1SK6WyMMgbvIt4nuhDlvoyZoqgwtcWSCLEhRvBOvOld79l2vYyjBrGRMWJjT0PxZRSydxrDrD4g9IF2syZXo2uifD9EWvy7Hr/wRUuOMMmRX9aGmzrh0dhsyVmxSYrPJ5o7r93lcFSASqQssKqQE5vFFflqy6GD0WgE1jL0sWSQl624DuoKRjVUJVGD9g4/KsmjESNbk/d7bu3PuXixFHHWIIpq1w25cdwqS0a9LAakwJPlEpeh8078/wFMjhAiBqiLgk6Jg0JlTXQJ4xKHoxJLoktITkdpUW3m/PySo0LT1Aabod12rK6WbC8XWG345JOPmNczXv7aN1n/5D1GuqdbepbnC/7F93+fhKUaz1Gm4hvf/lW+/vI/4B/9o/+SJmRuPXiV2nm2/YqF8yz7QEBBcjyY1UwLRUNkFTSrTYNyjtfvn1BXBQ8fPmZUSox7F3pGdo8Pv7jg7GKFNRWqKrh1+yYxaM5P1xwoxa37+8yO9pgf3cCUJU1YMlEVo71jNm3Hk9NnfOfb3+Pi/CHPVz/lvFuRjmcEu2BMxa/+8q9iioKsMgf1A+7Nv8az7vtcPvmcSme+/uprHN+BL548ISlPzoqiFtZEPbK4lIhJcfP4gLI2PHtxhSm0iOB0QmsjJ8qYiclQtFCuAt6OuCw08+N9TNfSf/qQ9uqKxXYrPI3Bgr3OCWdESLrNkascWGlNozTPFy2fvveIm4sVrhTWR9x65tZgcyRFTwownVV85c03KCYzapZ0IdA5x2u379Fkx3/15HP+D8tTTjCsfUfnHBNjUFZLNkxp0MGhMxzYiu2ioewCW6XEiZcTOkVQBXY8Y3x8hHr+gt5EORBgUUZhS8tkVDLVBtxQVCAYATWkAiudhkA7GQGJJUEOFQtraK0lG3290amUpZDXCq/y0LJXqKxRQ9GWpT4ZkO07XYQanD+KMNiXI5IKvBPimp1gkzQ4SPWw0Q2TCpUHMaVsagolrgeldhLiYdFhgKQlvLakegJtgzKytqQUiT5RhYyxEENi7bZsmxU3To6YTMasuw4VegoUpS0I/ZZYVhzempLnE8LKU8aEuejZ13MShnI0FXdVHzApwqYhZpgZQxob7r38Fv3yiu35c5IJFGOLOSgpCit/Y3CUpgKVrvk01Wgsdu4oLsdEwmiJUwhhwMSHBNrRpJqzbSDHcuiSMHRCADQpRYz6GeVJFsgcMVEohUk7y7P8bDNoXxgEv5DQIQ9jGSmBYsqDrmXonjBENADaGkkAR19b4LOSsY6EdMpoMCEW9J1+Sauh2M0D28WI7V0li4xcBvs2UYwIWkuBTMJ8dMr+n31Ks1ii5lP66Ljqep7sXfL6y8e4tETpgFUFPgj3pKqUHHZUBm2G619eI6WhsJnnLzZUZUlkENAG/2XHUBfXWiMfhISbU8KnQAxuCF/MdF1PHyIxJKIbqMYaJtMJKSeqwpJjJBk5NNVIEY5BrOA+4VJEZU0I4HzCp0jnPW3vvgQMii8eY6S4j0F+F5U1ZVXjGsUlS7KPuMoPuVqZvmt/rj39F75oSQpuB8/XxxUVCcoSnQ0xBB6lFvP2A26f3JJWXAKlNRGFj9CuPLN14iAV2LoAa1BenPrZaJQuZSGqK3JZkrXwBbJWxPkINZlQqIwpt9RljY9LfMj44RS6Xi9o/ZaXjCEXMhfuXMfTzYoAdNHRp0DnI8QgxVKtQUV8iiQNwXucC9RacXtvQu0arLHS9XEBlSKx9/jg2DYNEyvaEh8Svum5cXyD+XTCZx9+yuWfvkuua46OX2KcOrAZlVpirygnU84uXvCHf/A7GP9dful7v8yiaWij5e3br6CV40/++I/Yv3VE1obLZw8pXKT2jnHr+eyi4eT2Tf7Gr/wa66szfvf73+fxasPhHL5ycsyhrvj0/AVLnxnXI7pOxH5aKfYnI0zOzGYzTl9cEU6vuPfrd2nPznkwGTHSisvnT3hxdUVtpvzup5+iDgzjUlHOJrhScX7+gtfvvwll5ocffp+zq4/ou8Rm3bJyiaOjB3TrS24ev0Z2a9abhxzcLrh7e0JWDbqY0GYBq3Vdx4Mbd3n8/Ck+ewqr8dFRVjIzTzESQkZFGC8Do6uAOphz+503eOPWbeIPP8ScnrO4uBDXWY60IbKNmUXoyWWBQ7HKgSYnkrYyCgkt5+sFZpWp51NObp7QrxuaTY93ka6X0/2DW8e89Mar2K6hW2zp1z03x3PUdML/6Ufv8p+fP+csRY4tbKLD5V1fXjJccqExhThujNHcipbzzxbEBycoYwdWioj6ClNRT/fIkwJdF+iixGSDrTTVeMR0VFMOoxk5FSaUKYbnAAkpHMS1WkEpWrPgAgtbksygQ9CiV8EMCM+URMKnh+/PGa3ioPNVwjmKSdLXjQbk71EDW8UMgt6s0/VJ2Qxpy6Kf4VrEmXYCXiLF0J0B8TqJ00mRlTA+tNaDe8OgVCYaTW9rfMgUVkueUVL0faBTDmMsRhlcdKyWG7mXqxmdD8O4IqFNJgdH8IHgNUqVqL2CJgHbhM3iYKmNjFFygJEV11fUGjMa0+fA2dNPqZNjNNVU5RhKQzCZGGQcZ+pKNhqS6I6AsirJwZPzMIrImRSDBCXGgCkqfIyQDaug2PSKMmt2SPZAlHU1G64zg6K4vtBp0GYIB2bH3NGDyNkgXSulhHIch1gFCT8UN5YdtE4MKd5Ka0IOUsgoCcsNiEZMkosjRu0Q/lK4mOFnW2Ou31ydBkaLEoelQg3ZT7CbY+VBq2NNgVeKcZvQP/qcqu/ZKCkOPtuccx623PgbR+ijHnTJzpyUcqQsLUUxMFu0IDoSmeiHcalV9CHy/Lnjxu1ElxPbLkgmnspDN8hfC43TUDG7vifkQPQCFA0BXIz4wbmnjaJUClNZEpo+RLpeLO3OyXqkvOhyQgy4FFB+MFpkhfeRGKFP4FMiKysarxAwRtHnSMiiPWPokE6LCbFTvFhe0Naafs+xt+eYjivq0uL+h06LPGYx8KtlzX2NnHKMhqDYpsjqwRE333qNoihEBZ7zIFzytE1H8nDDwcRDxkORIESyD0MmkIbSQGGl+kfEZF5DmI9xlRBH85AzJAFYEtutcXi3YRYSB6ZiQWaiFG3vWfsI2jAxhlJB73tMhtR7KDVegU8ZVZTEPpFc4GisOZ5ZUlMz2h+jK4txJeMyUE5HKJNp2w2j8ZTL5ZKzyxXalJTacOfoNq/8e2/R9j2//0d/zC9/66+wOnvCJ59/RK88sZMgyHe++Q1u7E/58CfvUo5rnjx7xtXphnePT/hf/yf/U37rt/4WP/noQ27evoN/42X82SPiFw+5mxLrynL31Vf49Nk53//TH/Dp58+xOVJQotuAsbDadOzffpXsr2iaC5SJRDymNswKy/6sZHK5oe4zoenYPD9l0sKNuxMOjo85OblP7CMH9VPef/EJfVkyqidsrs7x0RPihr/44e9SVD1Nt0bnMY1/jKoim3XDjYP7RH+DSp8wtQ+5e1zRxyt+/P4Ttv2czx5FLJFpcYRrWpbLC4ppTVkX6CIL6IlE9IqUAvtdZv9pw74rOLx1k5uFof34E9TnD9m2S6JNhOzpvGMTEoscaZQsoqvgWKdMm6HznpPjQ/7ef/Tv8ca33sIaePbJ5/jlluXVivN1x9O249LLBve91+5RaE9pLaumwbtEcXTM//7jd/nnmw1+UOmbLFTKPLBSssooLQWFshmD4LcLpYlPGszDNeuvz8i2AAwmAy4yGk2pJjOoK3LlyE5a9bY0TI2hVjutgrp22VzTQa0IGKW1kcFKgeOV4tJqstKUSuOJ11ZXkKGCzoLVDylilCgPlM7EKATb65N8ymglp8ed+8MOOoaIGiByooGQWkWcQyGLpdmoHdAO4GfC7obns4PgksGVoocRlAhlNIERTTIUrsfmIVcHTd/2EllQSBFzeblkvWo4vnVAXU3oup6yBHLAWAVRRnTO95BFLM0E+rbH5F5O1UBhNMEIQTYVBSE7xtYwLSTIM9vhdUyZNNjrjTKDvVvw7GRBMhgtVtRuu0aliDiIBvt6EN+KCz1mckCoD0A1A8BPuk27kZtRgrLV7Bg3gyNHFCZDt21wFOUvM3/MbpQ4XC/FYEGOStbUYshnS2YYQylFKWlRkuw9WNXtMBqCXdGjxSygpCDZ6WHkC4BCSLdaqSHQUbov4iJTAuHN0iGapMTBtmf64SP2P3xO41tyUfLJasHjsKa8V3Lzu/tQOSmwbSnX8OA6SykPSQLq2n0JmawiWtVctvDHP+lInz/iqlMk7/j2G3e4dzjGWI1WXg4FaQj8DBHf9USv8NGRVaIPUrBEQFl5RcrBFOJSIodICJHeeZxLdCmRfLwms8eBn6QAn/OQCC6soTSwa7SWAi+Rcc4JXkAptNHM6zEuGp49OaPKmb1RTescfezwYcr+fHrtUvt3PX7hi5ZXs+Lb9YjaeLI15CiipOWsoH7rAYxG4hpA+ANxqFK7tiFHx3GK2C6QXUTtsOwD+wErttRMHCifRhbnwuJnY3xhUVkWhRg8zidiSFjEiRC7FlLmczxXwfOV+SEmgI2JwpbcqsccFCU6REYhUwwXirEFKsvy673HojiejZhPLGsyZn9EF7d0XUM90hTVCGsE6tQ2DVfLFdvWka3hxeUFp79/SswGX2qu1ht+8IO/5I23X2N69y4vfvoedTXl6eKUP33/ff7Wr/0GL926x/PnX3DgekzT8fnzR/yT//d/S8Bwvlww+uh9Xpxf8Hd+469z8tYNDmPDvVsn/N6P3uX00SNie0kRt2I3X2k+e9LzjbducHSj4MnZOavLK+7dP0YZz73ZiFenc+oUmHSByXhEVF5s4Z2DxtNHmOwd0jcQTcf86CY3XjzhdLvg4eIMVMf8YMTz049otw03p3NmZYnvM+NyztHhAw5fH/HDn/wpP336x5Acb73yJl+7+Su8/9FP6B7+Ng0XfPWVE378l484PLzNo8efkkyktNJWVzaSlajtY0xUOXF0Gdk7jezNb3KvLrHvf8bm7By/bjlPHXlkiKtEyIpWwSYnorW0LrJN0OaMU5pkFKNxzd3XH3D86is8+fgztpuGq0dPubq44rOLJZ+ttqxi4u5kwtt7U9onz0lYXpxfkkh8cnXG+bZhlCGYRJk0E2UossEWhTh0NGQjtE9dFBhbDAGGir0E7Y+/YHT7gM3tikIbbNqlKWdmswMpAGyB0UKQFbeBpQ5K0Ox61+aXhzJG2B9KNhChxSpUFBfVohhCTlPE7rQvWvDvAnCLYAZtSVbEJJ0ROY4D6EEHk68dRmFwliTEOqu1MEb04B5KMYnzTu0C/7KISlHDKV820Dyc7pXZJQsP4smcKayINXdai6xHxGJM7lpShpAivXdkY0htR2Vq0Jb1uuHi7ILZ/g2Kqh7cFMPmbTS9c4ToSRG869CuELhk7yiVJZDE3RMCOEdVlaK1KwyuGlEXtXQvU0mBQiUZaSpk3GasOHqMLQYB5UAb9h7XylplrcEH2dBgcEQZzXT/JkV5g5yfYQdsvsqgYqLKGpPyEKsAOgnkT6ksRNVB8KpSxmglQt5hIww5yO+cZSSTEZ1Hoe2wIRp8/lIsmsgUSsb4SWv5XB7mRnnQm6UvcRUKSRsXt44UKHn4WYVSlENxlJKIuhkKWK0SSVnGZPbalpdOLzn44UfMXWCTIxfNlnPncPs1t757jLpVkY0RjYySccsgABn2ahmLKT3IyofRTVZwtuj4F39xwYt+TTKGkRUuy/Rrt9mbjKTIGa7LGDpySAQXIEqulssy1vEpoW15LUR2PtK7SO8STR9FTBsC3icCmc6JPGEXvbHjJPmUyeHLxPRq6A5ZhRSV8lfhfUCrxKyacjw94vx0xarpIScWrWcbpBtUlgXz+ZSiLH6uPf0Xvmj5mtXcMkkyhDIoH+nxbO+doI72ydqQ9TDzjAK+CTHgmw0j75l1EVwUe14MmKIAOyxYDC6JnESgaDRKZYLRrLXYIdFpsMFFuiSMFmNkgfMxYZXiIniukpymfOM41oZJWXN/MmE8nbDJiZHKWJVJ2RCGObuKCd87xgpujSfMx1PMSGG1pd02vDhf0hrDjUlNpTWrbUNOmattS1KgrUKVFaNpTWwdLy43bJuGd9/7IR9++GPy0YzceQ6ILHOLC5FHzx7xcL3hW1/5GgcvvczvnP4ebzw4YVR5fvTxJ1g75asvv839o2Mef/ox5z6QY+Lyo4/56ePHPLh/n//Zr34P3/estht+/N5PmWXY6prORFb9Aq8SdwrLzdJwEOErd29RjGtC77h5eMRPf/QB1WzE9GCPWBWY8YSmd6xbT7NumI9KXn3tAcdpj883C7yVk+LTjz9nf7ZHs1ky3S94fn7KU/ec9z96j9dfOyHEhqtVg+/HPLg94b/8b/4lf/n5e+Sw5eadCcEXvHn7K5xfnNPnwHw+YTwpaLstNsl1EFLEmkDdwOEXnpkzHL16g+QTp+99Ql1pLrcr+q4jLpY4H2iSYhUTwWh8EoR/r7QkPOtM7iPNquHpJw/p2g3N+SWrsxUPL9Y8vFzzo4sFzxtPDok3DveZE/jiR+8TLzesvjhHu579gzF/qzygvbriPZexKjJSmZGyVEXB0DkXbYP4fWW+PggUjdXMVj3xh4+o9qZ0EwsZgook71ERRrqkLiNd15O1xRZWbKnuy+cGEZYDUBi0KQRWpuUEnVKCGLkisNgVOTkMFFZp6QtAV9gcKCu/Y0aAdErszQmZ8TMIM9XQdZHNWsZocWCC7BKIY06g5F7NSro3VkvHQuy7w/MNnJBddygSpODTg5hXQ8qiB9Ba2uauKsmNFFwqZvQwaowp0QcvTJgI52fnHN9ZsDe5MVCQpcME0vpPKeN8EGmdk8LBRU/UibKqKEcFpERt92Q9sgZVFKSc8Uk6R0XMuOSwKmKVwRiLsoaoMsYassp4L2LvmBLNpiX7hCktPkRcFwj9EGmAh5Fm//gYd+6GjpbYkK9Jw0lcligtVuBBxKpQQ8p4Jhk58O0KzF03a0cYtkrRKxF2Gq0GLdNus9Ty/mnhgGQt4tg+BSQTSTo4ESMjJj3QjdVwzWhFVolkhq4QQ+6Uhpwl68wMI8BdlpBO0lWf+p47V2fc+OAzJtsGXdRs1r3EZkwto7f2ufnNOdqqwfNkJAF7SKzOMZG1CFhDSJRlLeOsIBZ9rwMFoI2GKAL0LiWenK+46I6oq0LcTglyDDjvyUkRgzi+PJl+OIyDJvmMT9JVCSHR9YHWRylgvAAzU86EGGi8Iw7qcxulaIvkYd9CtG/GYJIihUgYRr/ORQnWNMJzOT46wXtNCDLS27aBVY70BEaTmtspoaylHo1+rj39F75o+W5ZMjLDohgTKWUWWrO4fUhvRUibdu4chbTI+p7oPCebyGTTkwYmgXIRfCQbjR2VA9FTWtiD9oicM95IPkwKMgf2ZKI2NF7sZtctbiWVcD8QDEPMdN5xazRmXlQcliWhrvAaIWcimxgqoVQix4zJgb2J5Wg0pigq6tZB07BqImeLNb02FM5xcLxPzoal69g6jzaakSkIUW7yem/GPFscyCkiZPpFh9Ulj5aXrFNipDT96RO2y4YfbhXf+83f5Nv/4O+x3Z7z6ZOPyclzsD/mJx99xK27d2lW54wWa8rxPnffeRNTlTx7fs5/+9u/zc3DI26f7PPam3c4ObrDg3sv4f/kz4jLDdu+Zdo4fvNv/A2KoqCa7dGrRDXLRKXF8lpXFPszUhHIStP3HktmWmnKUsF8jE6aW8WY959/gQoFd+/c4PiG5dbrB3z4yWNyTnzljXtcbhfMb2nsoubF0y0vrk75gx9fcblqebbqqWKkOtuj6Rt+/ZtfY3u1Zn90wtHenMvFQ6wZLH5EogLtMkenmb2LzLSsyRcXLF4kiqpi7QJrt6FKibYJbF1mkSN+aJ+3vqeLiTSEtEmnWtM6z+//3p9x9+4NKq34+HTBnz95yjMXOGs6+piplOLu3pSDm0fYsubHH/0e7XrDcVFgYyD3iSZAR2acxTJcFZaqqgBpL6s8CGMLi8oSP7BDnc+whI+eoW7vEb5ym25waITgCW2DioGitkTZOlCFxiYRf6uchJCp1OAeEoaNjIjkPiJFdAokrVjrikYXsrkP9k2Z+Qv8C8BaK1RnNcwihk1wkFlK+z0N/pThZ+rBulwkRZH1dahiHhxC1zkxg7hhh6rfaYSVko1R6LC7nyTPXWgjp309aHQGy3XWmjSa0i0NlYn0m6GL4YLAgY0UBMkYrvqGp6fPqOYzqqqi22yxtVBFi9KIFiTLqFllKVomszGmsCLCtbW4W5B1rbSS8aKNoR6ErZYCqysIreDZjcGWxbVeqOt73HDKDl6C8STfKeOdCCvJotmKKrG3N6csC5RfQAqAFc7J8PoxvD5597oNsmWVRZMhTSuxWqskr4nQZTVF/NJtVGnJGjJmKDSsdNaM0mIN1kL7yVoKVaOtWOoHHow0rYb3lS87ZFEpsjZSrAwuNfm6TFJJgIL5ZwspTaWg6DteOrvk+KcfMF525BCx1QgytJXGP9hj/+s3Ge33GLMbmcl1unuu3b0F+cucoyEaIoUMWbM300wnGlYJpUoykW0T2Gwj/ShQGYVKom8MWQqGECLZBUJWBCUMmhQzznX0SQqUvg90LuBioveR3kecd4NMIhJTQpzSebB0DyGhFtGuaSt6ppQgJVzK9EHAgDklxvWI+y+/DbFmu11RFhPKKrDpHC4FnNbYomQ0GjEa1YxG459rT/+FL1pOCoVScioEcCHwxUTRzCbYpOmznGRClHmgD462a0hdz97GMQtSLAQfhuGPgOGICVIkR7mBlNbSsQmBXJcyU46JkCNb19NFIdy6wb6XUh7U6UosrhlCK3CoSVlRFoqkI9FqgpI5tTWi3rcR6mHzrnXmeFpxczZjrhWz2qL8hiYkdGUoUaS+wfY148Ky6TLTakR2QZwbhaVzsNg4Ns5RlyW1hWbTULnAfFYyqfbxVysmKjG7ammXW87WT/lH/7d/RPXyMYVNLLqGm0e3uHE856fLR/yrP/oT7pmCr1Uz2FP8wZ//BWW9zze++XXe/eA9xvOKk5Mb/PiDd3l6esZnn37Gjf0j/sP/9D/lkw/+kubigi8uN9w5OuL4xjFxuWRcVbTbFbPjA0xVMZlXpJQ4/eIhqBG5rtm6NbNJxhaGJhnWXcSlGqJlMp5THAiwro8TKDW90zSd4flZQ9h42nZDPc6k3HB2uiRsxrz1+gN8WDLSiT//+M9o3IqT2QlvvPQan+dMpGUdlrjopY3caSaLnnGEvVHFOARcADOzPLu6wFaG0PW4CK3SrEn4JC3cPkprNqYoeTfaQFUwfu0+f35xzj//4inVaMSya1l5R4yZ4DI6yoY8nk+4+ZWvMj485Orikh88/B1OTM22c7zrHJ+mKNwMDQrJj7JGD4v7cNMMEDcV87ARyMkylIpJ0Gz+4qfM92vOp5q+cWJXbBpyqUk+kI0sukVRUKmR6LF0llm61eIUMnpot4vLIw+2WHIipszK1vRWXAU7mBeoL8dJQwVh4Es9ghKasI8Bq4ROKi6YnRZG2v4IYkWKDStJ0UqJw0gNXcwM16Mj0b4MoyKjB7T80BVKYrFmEH4yMFpiFsaS4OENanTMNj2mKgZAnZMRSAoRFRUqJiKKPnhOT18wms25ffOWFGkxUlcFMMDZsNSVRvtIDB5TlvK6akNIhpgQQXEEm7PkYKWE0ZrSliiMHIIEgSNBeIX8DSFEXO/ouh5rFX3fC6XWWDnQdV6eW2Up3grD/u1bQGJ/NqIsDN6JY0sKPilO9W78MRQNKnMtgFbDmdIgHYUwiCdSTmAKeQ4tYEA9VI9mp0fR4gpTaIGCDlEKWqmBFRJJWZgw13h+dT0tQsZUmkIZEWKTh68V/o6NerC4y8cTg3spJA63DSefPqE4XWHrGTFtKICGxPKg4OQbr1McBEzlrkf5RkFZVuzYQlK4yP+PMZKzIhtFjImcIMRAVSUO9y35eUBlKbA6D9s20rQdFIYUvIDmEBNAjHJodikTjSH4QIyi9+qCp+sc3ieazhGyouk9LiZ8lBiDEKQYyUmE7VlLh3JkC4oSHJEcpIAwShGMofdOxNQJ9kYzXnn5LWx1zPbKYfSIsspUtWcUAjZ45pVhfzZlPpsxncypq/2fa0//hS9ayqGqjSqineP5asnp8REWhU+R7DPJiOgshoDrG9brJXaxZrzdUg8nN5VFmKcHol8eZogqRrm5qkoEYjnhRiXZFiSdBfSjRLCkB1JizhJ/XijFSCtCFnV8TyBli9IjaVdaSwf4bJiNRph2I8J1q9DKoGPmZFxxF83h/ojRuKTZbPA+svKgsmVWW0YRrFYUWlq1CsHPBzKdj7gMV32HLgoKFagrhSonJMbEGlLMqOw5QHDprU44Ist2RfPhiqAVvY88ny64vVhzfrlkte15oSIv7e3zlVfv8vSnn/AnP36PR198zp3jA4p6wtnpKXfvvMSN/RlPf/JT5s6yOX/K8clN4vE+Nw9vYVLCVGN8aqmrI06fPefk3k3OX5xhK82zxvPpswvatmd2WKPHiioHdFZsvMe1mUm/G8kFLtfw+OqCPmRee/0A37WYLtCsI+/94CGu76lnY+6e3OXNV77OO699g/m04h//i/+aui549vwZ9bjCjj0//uBHfO87fw3Ve95/9/v0ZC7igonPHGw1N4oxd6ox3nnK6Zit94yLjKk1T5+2dD7Qhsw69KSsWOVImwe+h8rSEs6Z2f6cl995mx/97u/wqO+ZK0OICVRB33dyHZsMSTE7mFHP5rRty/jWLUJZQoCliiyUpB2PkFm9UYraWGlVW0TLkpOQoo0lmwhexhmoJKwLU3KwbVn96FPU126LS0Fl2rajGE/RzQprC8qiQJdztB6jVQ9DhwNks1DaoKx0B1KOw8w8onRJDo6LwtAXkKxGBzmNxkHfobKYPbXSaC26D5UG6qlKaJ2IUai316AwpYZuqog7k1HEFFFZxkAyDhgcLFp6AUkNYLlBz5BMJiCHjQotHSBKwBCRQs/kRKkkF2ZnSSUrkpkQxhNwDePxjGW7Gtg0AToZSYzHY6qiIvvM+fMXTKsRk8mE5CNJZ2aTueigXCT0Hl1LoSJFiCAQUpZMtEyEDNbI57XSVFWNrSt0YeU9TZGU5PAi4lhNcJ7sMkobVps17bohpUGtFxI5emlcxITzPfdefo3SFJTAreNDRpXF9e0wypIRTh4KwVIhWTkJsZ+rNMhwGTRJA71HiWg2a3AGKq2pSJJYbGScJRqowT4v6GkpSDMU1ohDE1kncw4ySsySUi4aJn3tzhJQqLz3RnC6kDWJIB2fQScVcpTQwATjELjz5AWHT1+ggnSBtlE0H89UT/H6PfTRiHK6JluGkaO+diylxMByUsMYU4roGMUarHIm6kTWYPSIV+9U/NFPHahI0pYmRDZdx6aNEA3R9xJJEfW1ZiuoILpLIkplEhGXIhvXEkPCuczWBzofiAmcz/i4mxNLt8sYIQtnAxbRvyWTUGnQAWUptsWVpPEqczCb8vVXvoqZnrBYOQqtUVWNUQlSwAA+bDmeVhyOK6ajEdNqTlFPf649/Re+aMEnso0YHWh8z0+2V7jjN9CmGNTzkZzl1NS7nvViSXux5NbGM9tIKCHZEqIX/LfOEByxzZigUTqK1bNM5L5jTce5W9P1I7IW37vJAzNiEIYFbQgpYQtDoROHKhPKmvHeAWwaqZqxRGXolaJVEVuJqFdOKoYYwGbFV24dctcEpiOxdzs0zme2faSPChMyRWGY1CXkRGUNpbagLSlFXAistj1t3zMpElEZHjUds71jxuWUGFpWbsvRfMZrydJtV5TjKVHXbBZLsCXJe9qm5WrVsHUZWygKY7l0jk/6lu3Hn3P3pbv8w7e/xsX5JReXzzm+ucfDT94nbB2zt17l7QcnhBg4O/+CVJRgMtt2yf54irPw9HyFLQ+599q3efLoA/70B3/CE1qavsVd9dx59YB23BNiQvWBw0mNDokiKw5GBeOpYnwy5ePTBU+fn/POV25xMFM83XaMZ2NSNNx+cIP9I41vO378wSMq3bJdetbrczIOaxKr5YbpbELrrjhdnvFPf+eMaSrZPn3M/lHB3p7l8CoyX8HNskKHSC6FNeLaNYe3KlbrLZvGs8pwmSLNsOA2gBsWAS3CCHJl2bt3QigM6z5iTUnverSR01AcFmHpMmQWqzUP/+SHnD98xpMvnrPZOpZ1zdYHdICJknCzMmnqrBkV1bW1UylAWZLSKFuQBjuyjmFoDcuuMDVj/NMt9fGK81mmJ9EGT+skkLEoDExq3PwA22qI/dDuF7qpMgKy2+X7DI14uV8zdCheVAZXCA8kZWnhgxIA3UDlTSkN4aWgjITdpZ0AVEkHZecISSBhionB/jqIHpURFsoQbIdWAh9TO36LfDjtHEMpDQXCILwVsYaMl8JgXY1Q6kIKHKPFBaIN5Xif0F9RFYZ64lgtFuSYpKNmBHgWB7Jp1/S8uLjiyFhKZSAkyiSWWFMa6qLEYFG2IGQoTCFxGTsaquX6NVZRYQtLYQvR1JQWHWX98r04grQSfU0Igc53JJNpt2u67Ya6sETnca7HKkvoI22z5eb9E2bTKTpJFyG4htx5KdSG0bdK8ZouizKYLMGWapBMyVY9EGcVkDJV1mSjiUZJurdSGFWRjCFbg7Gyee7eK72LdVBCko5KNEUkxF5tBqzdAI67Hln9jOtl9whBUqxNYQURoxVhcJ+ZlNA5MQ6K26sN+188RceWajeG1EaSrfcKxneOyKMazQZiwhsZmupsiDFe26hDCHI/DL9PHmQAEnMCOSiyCXznq0f8339njTcOpRW9S1wst8yLilRrCs31CGwndcAadNTYAG3KhKTxMRGC0Iw3fWTtAz4EVFQElwbNj3TSMPa662SNdLhSKZqcUhWUaPrs8WTCMAY9GM95cP91VHnEap0gWEpjKI1opcZkeq3IUXEyHXE02WNSjinLGmXNz7Wl/8IXLe2mYewDtix4erriUxc5mE4xWVGmnZYkDV2WnovTF/RXK8Zbj9n0XLlMToaoBhQyUPoCrRyKDdZaZnmO7j1937E8Nlz1ms3jITyvFjeSJ+G1JO26jLxBKrP1mbvzKVQFvXODTiYKllprHLCObmAwKEypUSqSU6YqNHcPDrmlPUEHXNdTmIxTGaKkF+eQsKUlul4gUhlC32MmJeSAKaFSlkJZlqsOk0quXManDdW+JrUdJiZ810I14WC2x9oozpqeaj6l7bthlh4xMZBDLy4Gn+m3jvf6x3z4MPD25w95c/+Qk5s36JqGQlteev1t8sbxxltvkRR88fxzzp5+xr2790EpXNfT+JbLq0t6bfiTHz9k6zs23SXLdIbdLzkIlr2q5KvvjNFT+OThkulszN0bM87PljzttuhyxP7JBDVxnJ+f07lMs2647DSbrafcs/gusjequXfT8OFpw9PVlomyBB/xqeXG/ph2cYnb2QB95HhvzvMXz5iP59y4s8c6rRgry/FpYL8rqMbD+LGuaZqWqoasI6dPG1woWevA2mQSBW0MOCVMEOkmiH7Dzibs3bvFw9NnuARWW1KQE6AeFuwUBicZmf/Xn7zPxefPGW+25E6AUN1YUxpFGTM+wxKoVKZAU1mxh8LgrECjjBHOCGLHzWhwwgkSPZ9hnkq2a4fdL2gV9Cmy7R0uOKyxlPM509kN5v0WlbYC7wqic8Fa2VCNdAd2ttJEAp/olGJRlYDGJlmEPWEAxg29/UGPsEOvJyXnC+kYIJuyYsiqUT9DspWPZ2VICaIetAVGqKnAMD7I15oDFdPgcJGFeQdzFSuuaH5Mlg1Zp4zVok8LWjZum+V+VuWEaGqSCoxnYzabBb7PQkXGo8qWZDOqMATvMesN48kUM5+z7RwGy3hcUNoCFTMWA8qAtSgrkEYdEoU2pByJ3lOUJRSyaVuMxAZEAVUSxTkUh6wZ5wPbriHkSNd19G1DToHgM9n1JB9pN47z0ytu393j6Oax2GG9J4fIy8cnzFVBGwVcVigj4ubMILwV27A2AwxuIAGmnMlWRN+2sAL9M5bSaqzOaFOQbSnRK0oNsRpKoG/WDJdDJmRxZoYYKaSXQ9yNdsS+Boje4lpXaMTpda2vUkORkwfNjVDkUDFRA7f6jjunVxw9/Izy6oIuBvbsZNAGCYdmNLGwNyVqyQJiZxlWMvbxzqONiFdzjEOA53Ad50AarNAKRfIQVMd3vzrlzszwaBMErohndbmkrfdQPjEb16J5zIkQJG9IWQtJEbxQ0Xe4/a53uM7TRPDBYzL0IZCyCM+NBqUTxkhSvUoZQ4ELkagchcpYI/eJQpNcIKXMfDbjzde+hlZ7bL3Bu0CRFaqArA2VqRkZmNeaWtfcHElo4nQ0xdry2pL+73r8whctp2cX9GVBUVh+9OSUq9tTpgS6riGWBSrKxYHz9OsV/XJLajv21mu2qzXbNtLHeG2FU1oNWhTQJOqi5mLdyOdsZHP7Fpcm4bolKkumyHa55nLd0PnApnX44FFB2mvLmKnLitu3Tyi3G+pmSJtFoZIjkegiHBSKFDUuK7oYcRiOjGVc1ZRlSeo2YjO0Vma0WpNDz3YRcKFm6SNZazbeE7PHh45NL+3D+V5N7xznzrNctxitZTHsF8K9SAmjI8/GhprEpc8wsoxNQX/hmJQV0+mIbdtjC01ZwM35hH7b8vmTFzKrbrbM1j2TF5e8fWOMWZ9RHBygbx3wfHNFuLokFYkbhzO07okmY2JiVFQ8ffqcowevcHj7Fn/2wz9g74bnl3/9FVxQ/O7vfUxZZKaHh2DhaF7Qh8DVas38sCLojspq0ihx9nTB+UXLord89NEFr9w7YNVBaSyXTxekLrL9sOOP3zsnb0fce/0ur96/y9XiKS+eP+FiuaCwmeXlc7qy5OatWxzP9+m2LUemJo0NB5vE4SazVxSEEKknI7ZdSx9krn360YrVRccqwGnoaa3M/PPQfi+UxiGWzNl0hj+YUR7vc/mXTxgXJV1yKFVLQF3ornUVahCSvthu+acPW24ay1ujiirBVe+4kTOBJNwXNEkprJJuH1kcEdgdqUSDMcOp1CGr9qBFSOIKQcN0HbC9IZWQYkSHQE4BNZ6hJjdpNz22adAqCUFaWTIFaCtuPq1AGXIM1yOCbBwrFNukBkGvMDnMINpMMQ5ZP+L4QwkVlQylMpKgrjLWqCEbZtCrDFoINYgqc8oU1gonZSeIHAS9RYaUJLMo6wFQlzI+i5AfZQQRn5U4VnKSbkMSN6HKMv4yQ6FjMITkyaMRjS2YRweFxk4mLJozKlsQYyI6SFWB0Rq3bWis5Xy5IGvLfDzFAco7coZKGyIBouQmKcQJsNN66KTQRSFi5Shi4pATigIVxbEjeo+EMprOObZ9Q596Yk502y2rxZKJsaTc4zYdl6dbnj9+wdGtMQ9evYO1Yj1XJHLXMTpb8J1U8zt+S2+0aHWMERH2UCTqLAhir0XDVCAbZVJaDmVKhMwMmWvaSBGtCkO2omVBi1tIDnZqiHPIQifOMlYVR1qkyKJxkQ6cjBR3Cc9mSGWGQWhrvgxfTDmTIxgy85TY73punZ1z/PAxe5fn0LWsfUOdDONaxuYpyn08KSfE0YQOcKkXVL9KJC3uLBVllBJ9ENhiYEhoTkNmk8UPQD6lPMkFbh2X/Oa3Rvxf/tWGTCtsoNAQO4s3JV0fKAorwuEIOUhXpWlbQkpkn+iHDnxIov1CZ4rKoEKkQBHIWBKlNihl8ciYkBTxwZOVjFOzMrhBJNyHgI+Z+XzOS3dfhTxl2w1iYqXEPWsLkoECTW0FPljbwKQeMZ2OqP4/7P1prGXZeZ4JPmvae5/pzjfmjIzIiZlkkkySokiKtIYyS7LkqpJstdtqu7rVlmGh3ZIAwz9kGJ4gwYBhq9q25AIswNUu2w0ZXXCj7LKryyrRlEojRXFKMslMJpmZMUfcuPMZ97Cm/vHte1MqeRAB9x/BB5mIiDvFiXP2Xutb3/e+z+sqnLa/A4fw73v8vi9aDmYzHqeOOga+7Ftm5YimbbB1jcCMxHcf6xWrk1NWTc1a1JQnNcv5ikXn8YjY6EwQmPqipbAa42Vko7XGblZMlWeWA0aBrxvqtuHR/jF3Tpacpsyik5NZmTPDCCNt8PMF9fGU0do6w9RBvcAAxEzygZVKtNqilSFkRRMNPmfWhwMmwwpoBakcE7EXcg10wYWBYdotiN4TC03bdrRKoQuHMlA4ubnnJ3Nmh3NW0xUeQDt8t0SNt7l//wFrgwHP3bjKvMrst57WKlLqpCWq4Ph0KjbxkBiPRnzsQx/lykSxOnrE85dGDGpP0bZMHs1YcyMuv/Aiux98L2+99Sbl+hqTrQlfev1VLr3rnWxubPHV26+xWC2oGsfFK7vceHrMl978EtsXb3Lh4jbbV6ZcvGJ48PCQjY3MzesbVGvSwh4ahW9guaxRVcRNNE095/RgyoMHNfvHpzAYkAcj7uwfc3SQGFRahIeV5fR0RWcrBhuOqDradk4IgaPZKaqAcmDIJpAKxd7BQy4NL/HhD347b339i8RlzYUHK7aWirWRI2tDKh2Pj48pjKU98Zwc1UxDZJ/IQkchvvbuNW0tPgWcgY3RkNHOOv7GNTpl6aZTximQVIcqMiZr5qHneJydG2UdoSUxM5m1p55g+uotZl3HVlXgYyITsIAlU2rJe0mxI3vT25xdf/LrybNaNg1ikFaxEbG5zpmy7qiWql9xxXWkrcNubpHXtrBTzyClt5+iMM/PLa+ibEyoGMR1kiSM79Q5Gi1Lk1LiCLG9M0gjxYRGOiCp/7zW8nx1VDjretGl2GG1EpeQAO366A0Uyujze/fM6XKmL5AuBqINEQECOiVhpyglxVBUshCojEXa8En3AX3n7iKxzSat6LKmdBZSJCiwgwGqKKk7z2jgSAl8J5uCso7lsgY7oygqjJaxgkwsFDlEnDrLxtGQEto60f70oz7rXA8u0/2sy6CM6BRil/BdIibb21sjbZDxWvSe6eExufNEIu2i5cGDU2699ZAnnxjzvg/dpBiWsn72+PtuOcc/+jofdUNei49501ocFhXieZaPiJuV9D/6giUqSFa6FCr3tmKre8ChAWOwpUNbK+9X34UwvSbrDNl/lht0BqUTyJkU07nnoSStxfprNQbRF5qMFM4S+U2hDEMfmSTFIEQueM/u3iHDu3dZm53gguiLjnxDGwNlhsoVaPqwTKUZFCWttdRRwk+bJlBauQG00pKlFNP5fZtS77dT4vBJOclzT7EvLD0Q+L4/tM7tews2Nwpu3aoxOYEKFBS0PuBzprSivalzR9tmog/gIylp+SutIoeM6TOVOgLKKCpE8Nx6j09Rit8sFN1IwmpFaRxOK1IWNEMXIiEl1scTbt58AVdusVqAwnKW3g1SxFfK4IDSOkYZKq0xhcMa05PPNSGd9b/+/Y/f90XLwnsUkYPgObSZpBP1aoWelz1yWItjoa5ZrhZkH9idRfy8pgueWmVyn96acpATnTaU2tLFKL5+YwV2tDFhSmKxbCitpela9g8OuX98ysNlx2nIPJFhUBUMgXEQEWCzPuHW7IRHq5bBzkVU7nCpx1hHCdJbKjDa0PiWThkSkTUHTmVJ7fSJpmvpksID2pWMnWPz5lW2JyNss+Lh431OFzWxKLDOyCTZJxHdNZ4uwcbmCL+S1OE8m3Ft1fLOzQk+dyyCJcVIU3c4IyejnAJNG4gpYK2jaQK/9uuf5Yf+5PeCLfja4xM2bIE/OmGQIQdP48HYAavjGWuTbaqgKKPhiYs3eHD3FhfH66zu7lOi+eIrv8p7P/TtvO89H+Lh6R4HBw+4Oipouik7u5aPfdsFVk3g0eN9rCuZBc0iKrp2QR1bxpOS0jnaADlELmwnGCZOF0sOHwdMV5LWGgbrQxo/Z75YMHaazYnlxs6Ipjnh1p3bJKMZjhSukoO2KgOxjtw9fJOjX39ANVQ8PU9snMJIOwqjKEcjFqnDDy1+5Zke1TQ1THPiJLUkLYC0RIYetGacZjhwjHcmxPWSq089zenBfb77mUuoFHh9f5+HRzMOm8i+qBbPr/Uselms0rz0wffz3pfezSe+fo82KOYpsu87GiXz8kIZSq2otEK1LbqT1ngudb85qD6vRQoVZa24XXwgWwGTuQBFLY6p1IqWwZYVcbLG4bLlRpspQzhHjJ9xQ6A/6WfIIUAQ1DgaUgdHztJa6cSoLEJAjeotxFlE8Sn1nZreUQLnG7rRhqB7h8qZS8U4YooYLcWI1hprz2b2feESIzFncU5l0+PkEzELFVQlCfTrciAHoUTLGE0gaSLo7V0y5HOdiNJy4AnZUpSbAoZLKwqlGRUjFs0M3wRK58hZi505BZpGHIfGFWRgMhzJaRwIaLwy4kTR4mzSQQoqo7VA4rS8TqnrwGjcQCIYMpkuRWKORCKLZsnStzRNS2hr5ifHLI5OMSnyaN5w/94Rj+8/5IXnL/PRb30Xg/GQRMDokpwzXddy9MX7uLdanrr2DB+i5KCN1EYowynKeEadaUt6ndDZqOdMIM1Z8Yi4KpUxGGelaDYCINRaukm9PJZ+eCkFlDYi6EW6jlEBOr/tWGr7ojeLuyurRIFi6AO7KfNkSFxWhk0Ug9WK+sEj0uNDyuUCnTwtCm8103rFKnpC7xArjO21QB2TPviTmMhoQrTEYMi54wyJr5Gu01msgEIKsUAmBNnsIxKvcEYoVlFx88KEP/ODG2wONvnVXz3m1z77mCJKgeyzZtkF6k6cgTlkdM9WSYWl6aS7VCT65AyB3DllCMFLFxEp9iKZNnpQcu9UxuGyrCvaavA9EMBoqqLg+Weew44ucLTIKG1lpJYzKUeMUVilKZPGmUxOHsgMtWVoS0orVHadfpuu7T/w+H1ftBgyRmuCVgRnKIuBQJOamuw0UTti27I8nXJ4OsPNFgxOV+RagFYWhUcwyfThXANn0Uliyp0psUajS4d68iKjCwWni1NWvqOua44XHfcXiWMvXZCoHEUp8CqLYq6AyQa6LFCNp6wKCjWQELKU6LznNAa0ktOx7yQjJKtEZSM51qSmk5luMjSNBF55OtaLEZP1dYpS431LrRSqKjDOoa0mBYTKaRReG3RpuHBhg5PHC/xizloz5f1XtrjwxCVe9itidjjjmFRy6m06z3JZUy8bVIKdKzssm5rD6Smv3r7FwGZefv0BPiQ2VOaJ0YRViOyUjnnbcvn5d3DxqWsc3L7DZHOXHCNbW9sM1oeE0ymreMjuRThsv8Cnv3ifo2nDhYsKa6+Q0SzqBdPjOaPhkNH2kEeHHV97vKA0E65tOTZ3DG5UMjtZcXS8xFYjrowvcDgLPDppQQ1okmd1fIBpC3Ks2XYFz9y8RDkc8ta9B9x78JiYE66UWW85EBGg1gpjHIOhFWx26xktEsMuMSgMrqpIpaHJDcPCcXrq6ZJipRWHTUeLLAgxJ5I1xJ58q5RlWA6xgwHuwgUmkxHTLzzgqZGmHIwYXLvOje2a37p9wFcf3yOF2F/pZ0LazObWBt/8LR9lUFY4W7JOYmwESkWGIYqhNpQYTDLQgU+djPFyCZWVYsIkUIlsNOD6GXYmh0xScoq2i5a6jYQmoEzGTNaZqzG1z5QpSqfljJFxJljtk2PJCWJAdZ7+/E2IkZnRBAMqycJaaAkY5axw6UcAkdx3M6RsscaIiFArbBZhpEb3HRclwtUeJGadlVGDOZujZ7S1OGRchzorAC0xJwFFxohOFp0j0cgJPvfCUX3mgupFlCFHrJJRL1phcx/sONqgWxxiUiLEIJtqWUj4Zd0xUYbKGrwR50xuMvvHWngbIROrQAyRYlDidEHpNS4mHIbKOGIW27DWgqH3IfRmELH/4gMpeJq6petqUpY1pm1WtF3D8uSY0719uqahnXe8eXuf6fyYb/7ATT7y0XdTOTmp44R108VAd3fG9r05poXp8SFPDofc9IGvWFk3VT9xzCrIGLTfLJ2xMgqyGnrxue67e2dFJbrvYht5v7SWeZ9WvY09xr4QOXMf6fPiFvoCNqYe25/IPfdFxcx2TDy3Clw6nLJ5POUyiWGG5mTJajmlSJ6zVPJZ9iRtqesWHwMmizGiNAatMjkH6hRoUhRicb0EUxGiZbVKjEa9Rsrn/lqWrmjMWrQcKYk1OydClucbYxBGWMgsQgO65fmb69y5d8THvuMqxydL9h7XVMMSpRtU0gRtKTI4Z+l6MgdKE3vNo7x8mZAg+n6UqbLA77KsPyolTF90exWxTokLzGiS1gRampwoygFPX7/B+tWneXDsCWQchpgj1ljBApx1jYgCaVRIEW/lvi607VOmVP9k/8OP3/dFSx08zhmOVMQ7x1ZRoJEFU2WJSw8hMJvOWEwXXGkDg0WDCzIjpa/MAxlnFOOylJObko6L61Nh9eaAeneIH2nKPODo6IjH8xW3Tpc8rjtCWTIqK5LJMr/LYiW+r4Q/sHn1Gk+1HYUxlDgC0nrzdUtNYGEzmUQMGoOmyDDS4FcrQhChV2gjvo3oKlMWhhg9i6NjVr6FpsMEGSv4kGlXHc4ojIOTFdhqyMWqYmtY0bglO5OKd4xGPLG7i3riKouvfo35yTHWasqqlNmvzsR6Rm5abDnEOE2YtwwKS+xqsVN3nroNVJWjreQEPbq0zcnpCdsXd8E5ZrM5o+1Nll3NYDJmOj8h5MBcRYqBJg7nTIsDxtd2qYaKZdex2m8JvmF7c8zapOB07nnj9j63H2W21wquXNxkGaac3LlPaR1oOD1puL/X0KYhs3nNqp6ytmYpqoxSS56/cpGnL17jrQeP+OKrX2LhWzIJ5wDVoXUhG0/vctBnDpTk2Wk067PEBiVrwxG2KjnxK/QwkU872sWKpg1Mc2Cus7h0YiYZAaRlpdAxMsgGGlgFuHJxh+70Ee9/x1WemDhe/eodVscegub2nUf9TFyREIeKUhpjNe986T1sXLxMu39ImeGCs1yvLJP5KcOsGKPFqGvF6puCkHxz1+GqANmSs6gVlDJ9SCIyMkLsqmdciEFUBL/Ax4QZjelGE+adtHkr3+G8FyijRUI/2/acKJ1TInsvBVIWNP7KaI4L1xNSzzQK5lxwCxBCkNa5Osu06T/Xn+DFeYVodZS49mKSQicjv/6ODVDrc9jX2ShD2CKihVE+YLJ0TJLOdElh+5RqgOyFnxJTJsY+n0f1jJt+FKV74m4yjoh0CkLXkXPquxCWVRuJfsnAWWxpwAlFtPNLdFDkLtEOKqqqZjwZMxqMiU7s3kNbEJQSNo4pCRG8b+iCxyqDCppVuwQ0vm3IoaPLAhNr2xbfLmnrFQf3H3FycMp8uuD44BRD5g9960u866UbuMqQ6haDJkVJ+G2PW6pX93kHQw7DkntDw+TD7+X5X3mZt1JDJ95vzjJ+FGI9F7uy8GGyEgH1WR5Vyvlcm2O1jA9MX6j89lHT2TjoPCwwRzJKtEZ9CGfMAUOmykmcO8pzyXdcO5pz5d4x44ePqVLNZlniQ+Cw9eAzSifIUbAQwdNmGZN0nT/vZinAaokYUEqRNSyDJ0SLbzq6UhOzYTFNbK8pyB0xanRhMb0AXkTc4H3oHTvS3gwxEVIWkJ8y5KSYrzzVUHHl8iU+/ZmHvP/DV/itzzzENy0TO2ZkYZGkIA+md2xF6NoIIaPQiEpSmDAx9zEcqu/URQj9IUNBn18q/KOzROwYAmAYOculC1cYrT/B3klmWetzR5hLumf5SJcl5UyjMsOYsDGKwFdrXO4zoXrRs8r/yT0EwCoJjO2EiBqvYaw6D5jNuU9PrWvqVYv2md0OhnUHOpGUvInC90wMygEFnOOpnbEyWtIJe3WDZmRp2lpahTlz52TBkXI88e5nGW5soruOsp7TTZcMtcObxGFo8fv7dHv7mEuXMJsObeR0EnygXa6oTcKYSEbjQ2CIYpJhwxpy68kIZ4akSF0mNYFBVdLUC1zUDHpQmLGWelWzymCqkqoa0LQN5I7KKi5MJuxWJfupY+gDF/UEu7bGva7h0XTJRlGSlZwOc0zEGAm9SNkNSnE2kRgVhicu7bC3v0fnAzEmlDXozQkKQ7U+Yf/hIypXMBiPOLz9iHe9+C5u7z3GlI6T+SFtnPLEO3dhDK/cuc/29jYKx9rQ0DUdPrRcuDxhOBKPQN2sOF20NAx4fBr45c/uce1a5NJWhbUJV2RmsxXLRcQONbPpAkzCWI3J8NyFS7zziau8/PU7vPza62SVKIcFxiTGkwofVhglSv8c5JStkFPSEMX1aWRrqRiqkoEriApaC+vbm0xPTliuAtPgOUJIkCpK96DOqYesSWdi1xQkbQmba1TrBau3bpPKksPtdXa+6XnM0YLfevkWJ40nJ6GkKZeYTApWS8+FrW0+8C0fwU42OHrjDlVO7FjLU4MhlzA8yJEJChsjSuaPxKTOuUMpSoKsWGQ0OWkR45meOpKT9N1jFiF6TMS2hmKAmayzNBUdMg8f5YjrPKqT9GiVIspDDohmISeBMXZB2vzGsnAFJ6Mhyjl0pndd9CTclHoA19uz75iEMaJ7ovDZtMxoTUqyyYUQ3rZ1a9HUnBcpZ5Ay9TawTOs+zTaJQFNbQzpLgE4SLph6+ywAVrpCRtk+7VkAgbKIC4ZeaxE/x5hIWHJMFMbS4TFZCXjSZ1rfsmRFVVkGrsSUjqADszrQLBvGW+uUhePkZMbm1ibDqkJlGBeW0moK56iqgYwmUqL1HWQReOsMbdPKKC5HVnVHXTdCv209J3vH3Huwz+FsTlvXXNwo+JYPvosbz1xFF5rYRQptUSkTQyTULfkzezzbTBgMhgzXM6t2xaiLXA4tT4WGt6oBEeEGqiSdp6CQ8Z0WGZUUx28XpdbY89fW6N5xlM9oxuq8uHn7IYwfcsKgGQfNKHhGwTMJkZFKrFkjYZX7C9ytO+iHjyjbjnJoiSaxWM6EpYUsvjEKNXzlO1axIytNd7aZ554JwxleP/bjEiGO+zCkawKd9YSs8XXJajqn2jDSAfMSF62sjISbnEQ3YoSVQ5boiJgg9M2HztfYaNjfb7lyteLylRG/8G8Oee8HLnL/1pTVQorAYZ8OnZORa80nUgh0CerWyz3UB4FK00vI6j5EYl/YGK3OJwtDXZCNlq7YOV4hcunyFSa7NzjuSpY+YJXFKLHrZ2v6zCKkYCVjgiRFOy8O12At3ntS6CB6SJ4c/5OmRR464ZUmlpay0OhSU1YVxjmpHH1gOZ8xr1dUWbHWBHQXaFMmaE1Ikiuybh1DazFJxLhaQcyemEW7EC+t0xBp6iXLuuF06dGbF7jxwhXK9REhRPQiYL1BR9h0BQ/9iiZEqsWCsbK0x6cUWxs4rfHJE1KiW7Q0FUw2SvDyploNE2BoBe6TtKHtAnIc7l0cPrLqGlyEi7sb+Og5aT2rrmWeMmvjoYyrsLhSc2V3yKWNDXTKbAyG7KSOCkWY1zzaO+DodMqhj6ytDdm0FmsV8ybQJEnO9jFwenrCYGh45umrDEvH0cmcKOo7XFEI1r0aoZzGHx7QFgXNeERsW8r1ijdeeYs3Ht3n6uY669sd1c42B9NjsooMK0PqWtbHGyRf4yqHdgofIzmZvhBV1J3HJUXdVjz+/G0++P4xadPx4GDOvC6IfZdg1XSs7QxoVGTDWa7vXOTgZMGrt++QVMQWmi61jAaOovAEf5bfK6yGnAw6yQa4GRwXpi0btmR9MEANSx6fTgmXtwjjSzzcv8UywjQlFkporZmE7xdsImSTWcMwdobpxLF54wrtcsXhrQdMgmPvzUeo3Qltp/js6w+Z9xbKpDU7Fype+sgNPvNLd/jwB7+Zazef5e7jAw7u3MWGyNq45NrmRTbu7TFSS9aBQimGRlMYI4e7bDHOyusozHJUVr0FX4S5SlsJVLQJ7SFnhQmKpk7EgUGP1ljVho4korvQ4XzqKZ7CnQFJSBf0d0THSE5JxgQq0RSOunD9KVsW4phlAZRJS28ZUrqn44oaPCvRTJxtZakn/ApoLZOQ1F+rrYiSMChtxamn+1O8cqKLUAr124BkZ+j8nDI6KooIXkvB5EDAdQq0tYQUiRGc1lil+5GVOJ1MjihdEozBzRNBaXJREDuP6Hw8IUSazrOqW5xpGAx7RP+qxdQNtY9kJ52Ho6MTRqMB40HFWlVQFqYnZ78NnYtZNqdCTkHSrvcB33SsFjVd01GvWk4PT9l7dMJ01VD7lpvX1vjWP/ACl69elPFClyiNEfBelk7+/Iv3eGGxRo6Rznj0xSu8+Ee+k9nBCvOOJ3j+zh3ux46pttgkBaLJZ2+fiGl1fps8DL1FvT/VJ3V2QBStiokZRSJqzr8vpECRIms+slV7hk3HcP8Ed+s+5vQE5z1DV3Bhe4cQOk4fHWBTFE2f08RliyRVZXTKxNT217pmHjwn3QpTOuHQZEXRO+8ioXdGZQLiwqqc4eFqiWktftWSrSIYRVaOxTRSbDjJTFKaLnbkbET4nKRoaVN/EEZGRTFHopcueu0DiY6DpWYxbbn53BrPvzDgs18+5MPvv8Ltr55yMlXEqMgGWZt8oguR5cqzagON96K1ycJq0sbI2Db2ob7GUpo+y8sIhBGjyDHR5eacc3Pp4hrXn36avXpCvZJASp076XpqQ0t/GPQWckSlhCXiYyDGiI8dLRpvDF09wJcNWlvJ4Po9PH7/Fy1kGp3QVUFVOlzhqMoSXRZYa2nqlsWyJsXIZeWYzI7xbUd35mE3MHAlI2sxSvJEOAcUSR6D3V1jtjWmMZ6kDKsmc9BkzKXLsD4mxIDpPA5pkwbA2CyZQr14bOY7mcGfcyik/dktarQu2VmbcDCbM64MZQGmeRsrHXKibluysgzXhmID9FFu8tC313XCtBHd9ZtFSBSlYhk6nFVc2Nhg4Cr29g/YbRI3nWMYIsvDKcumZW0wYlklFt5TdAmziqg2MyhL0lD0AsHD2sUtnn7+nVy+9jSLT31BFnytWatKVO0x6yUqJVbzORdHBY8f3mV7d4tlCNypDwgjD3bFaLtklVbc2T+kjSUJzcBZhqWmqQND7VARDqeBw+kKqKi7ApcslRnRpMzeg5qvFBmnAvPjhI6GlBSrxZyqclTWUMSWq7vbOGv44u171E2N6xk62kA1LNDao3XGWmF+qGwJCYpsqJJm9wRGYciVZ59heLJgWdcsY+byhWvs3XrMcrpgmjKHJuGRLp0n95kmCmUNNnVccAPywLH+3HU2L+yy/5VX2U0Oh2bpAwd39nh0POdwsYSk0RrG24Zv+6PvJsWSSxeXfOijH6bL8OjNNzh96+uMQ4cxJRFFVBqnMgUKmxIT6yTNWRsgCynVWrKW0cyZ7ScrcUXIiEj0Glr1YgUfaVctecvgMXhbkJQlek8p1EYJJaW3ZdO3mns9S06CxldGND1LZ0nWop1YIDVa3G99IZVSH0Dad4ZATosKJSdUOM93kV+k2JDLsIe/9XlhaC0W1F6Mq/pxsOgrjGzOPdbc6t5O2oc7GnF1SgHbC4JzTmA0xvTFSpbxQe6F1iWGkCMMBrQnqneGZKwr6HyNU5CUJhtH09bUjWfVRayVSARbO5bLFlUVuLJgFjKJxHhQsj0aMCwtRmWGw4qke9uvkuukNArVBWzSxDZSrzqaumE+W3I6m3NwPKf14kZ55voO3/LNz3Hl4g4GI7ZqDTl2hKLAB83si3us3+t42B1DTqzFMd2FXdRwDDe3WLu2xe4nMpfu3mGqEgor/RAj4yHTFy0KKWA1vRPI9PoW0xu5tVhxNWBSn+OUFEpnNnPiWpu4dLJg7e4jhvePYDqn7laUOaIKhSkt3gdO7t4jqCjvi4Kuazh7t7XRIkb1Hm0MzllWMXFQL8HSi+XlcssID6gFYobSWqLKxJQZ2IqYZqg2kOqW5DTBKCgss5mmPI1UWzKijDnQJU/KAv4T5IAcuqShmfBR3GshRXxQHB10TI861t69xey04Zves8b+ccuv/NY+H3hxk+YrJ5ycGhqVUDrSRc+y9dRdOpcQpBghyvNNTv5NNsc+ygOUkoJDORl7xT5iQPhNmtHA8NyzTzDPA05nMipSOaGNaIpETiuJz9CPgJV0d3yKPciuoQ6JEqi0wWLIPrNM/6loAWQxakpNMRzgBkOqspJclMJhtaFd1ZzOawamYHvRkk/ntDESk6CiC60Y2kLcQTmCEpX12eKoKk2+vs1qraJrEk02PGwiy40t0mBEiWagDU55CtVnybgSoxM6w2b/5hY9YwGkWFFak5LAwQZ6yPpoQNct2YkKlSJFzILVPiNGlgXSp9YEeiuoFwX5/GRBtIp6FejaICTPlOl8ZNl4gsoMWg9tJjaRjcJQ+cjxouaR0cTCcHNUUYfIrFW0XYvKhqowXL2yw2AyYnO0xlv39lnNaz71yV9iee8u7WKJVgbQbA0GlC2sr61RzxZoYxhNxty/8wo3nn2Orzy+R+c6RkNHnRdcevoCp6tT5m1AGUv0icGohNxRtyvW2GK10rx2a8krb8zI3pCTw+QBVTnkZP6Y3BluvbGCEBkqx/okYa2jqxtKZyhsZrN0PLW7w/7hPvceH4gOIUtHYDgsKErIkV7Alui6RGFKnHIYn1hbZW6qTZ55+goDr+hMZtlFnnr/BzhKgUev36bLcGgiK6VwydGmgDcSL58DuKy4pDU7pWV2fZfxu56mqWu6/VOqkMiFJaRAXHrqpqOJiUIpimHmYx9/mhvveILf+uQDvuVbPsLkwkW+fPc+R298jfToPjEn7i/nrB0G5qnFJCHDOiWBmdo5KEoBYymFKqyENSYlEMNe0Z97+67SGeMM2pQk36FDLZj9oFB6QJvFCukCDBO9mlVOpESB06mz3aJny2BEv0HWLMtSwhqtaLeICastoV/0olEoL+MB3Sc/qz4zKEaxasooSTRjZxv3WYGTQVqVThbms1m91hqVflumjZJFOKV0PpoCxI6bwEa5TlLs9Qwosef2ycOSTKx70JtEA5Cz8GYm63S2YBACOIMxjuAD3gRC7+zJ2pKzxGM03mNbT+kcIddi6S4s2jlCSszSKcuqZFiVjMqCqmpEhxdaUBmrCxyZ1LaYoKkbz7JuqeuGWV3ThEQXMpWB55/a5ls+9By7lzbIJpFji9FWNm+tyMpydOeQ48/vMV1EBgNDLkv0d/0ButEa6eiENG+5++ghW1cvsfn1rzOJmtq5vqsl7+tZxyUlOfGnPplZJ6CQ4tT1KeNo0ax4lRjHyPUucHH/lM1HR4weHKCPD7GhwWlLILGhNVjHyveAvAzW9J31tkFrzaAfAfoU8J2kIFtrsdYR0Bw2SxY5sm4cqd/sz4TcHlgk6bpsTCYonwAxVoAUh366JBYOrMIHzTwXDA87hgNDzJ6sFL4NJLRofa3EM/i+KDfaEFEYY+lqzcNHR6wN4QPfdA1dtUwbzzi3/Jd/cJuf+xf7fO6LMz787i1e+fx9jg4VKTlCDoQgYl8fAlElSavuWUVn0Q8DJ+M4qyyuH8clJdES0SgiiYFSZKe4sJl59rkdfvlLkDDnQEpxQPbC3phJKfQHG5lKqCDC8yZ6AZ0SpFhVEgFQNQ1t/k9CXACyNvjKwLBAOSUnyV741dRLFicnhBC4UIyopsfEthOMeS+QLbTCKYTPktLvCALLKOzagPaJDWahY7FqeLxseGwK/PYu2hRiuYyCTR9muTCaHHE4NlXieinJu15JPkTnA6oNWNPHyXuPMYY6BgqlGRuD7yKDNmJTJmtLDH2CRy8GCzHhk8G3yA3UdsSsWXWBrIWcidIsGs/xwhOip9Ilna8ZVAXzUc2X5x33ljNOs+HaziZPFxacox5UHDUdD2NAFQWjUcmkKrm8tc6DvX2CV3zgxRdRcYFvF+gk6cbjwqLmHZPNdU5nU7YvXZRQLiKrEl558zWefX6DN7+2x2Ds2dotufe1A7Hh5Yw1mdFAoXJkOBhQFBUH04aD/YIyP0VHSzaRlAuysrTdSjJm5N6gVZ6mbXAYks/YoSOFjt21LUpneOP+HdrUSkaIUVgDVaVReFL2DIYWY6RVrZVDB3AhcSUNeeaZd9B+5QG2NdQqMbl+iQWJz332ZVgtObGZ2dlGFqHTRhrSChSBIYlLxYDJYAhPXcesjTm6/Srr2eNGjlaDXwkSvfFyahk4zVPPbPLiu6/x6LUThrXl+Rfex/2jBW9++VVWd+8wXtVkFG+0NdtDTVAJow0uw1DB0FkZ22gt3RVXSN0LcDb3zlkEtBo5BVsRxeYoGgLVyUYTyMy9J0YBr9mQqWLuKaZWxkxRskeErCJKBOFxiKU6+khdlKS++yFZR1augT7ATWMIWjJkROsgncmopaUtzR1xQiQSUcW+eWIBEccm3Y+reoCZiA4lcE+J2afH9mt0OusIiDjUR7FEy9+jJeUvS/AfVlgx4sKSXtWZaBMlWghiQrsRUZdkXcupWmfhZzgt/8upoj/p6n5jy3R1S0ARtUc3MjpLPfMmL1YsjePEGsZVJSPI0PXWciNW7BhpYqDxkcYHQsws+mDONat4/tlLfOilm+xsr8k6aRUxSiciO0V2jul+zdc+9TWWjw7ZsAXPF2sMJhuMn3ueuixpB46Hhwdsb2yycXGTZ6oxbWx5zQjFWVw3PaUYGb1pIOqzAMWMzxHVF8sGSxEjo6i41nZcvv+IrTfewJ2c4GKmTD0VVxucMaQ2klQih4w9g/31xY8hYV2BtdI9qrsgzBJrRE/Skwinbc3jdsb6aExOAR/DedxEVFDHxHFoGRtLHROx6UgJmuDl39IGwmxJN6nw1uBVwirHYtoyXvOUhUMpJJg2Jknl9tJ1g17QrSNRywGgXgmI7fr1DayJxCyZSm3jWRvW/OD/4Qo/+0/u8tmvwsf+wFP85v92i9sP5tRRYbJGaYcmYc9GnU5YMSrH/toUBa3RCqd6HpLqbegqYRSUhaZwkXfe3GQwciwWLTEZjLUC88tnoEHpEqFEGK1zPnfjhZjoYia2ER1buibQ+MS46ygWU9oQfk97+u/7oiVaQxo6ypFhOLKMBq5PTg0sZqc8PjkmasVWyNijBUSZlxqjKaxmaC06y4wxJbGjxX7garSlunyB2daYUM9Zzufs157FYJ02a0bIKbDMmipAETKVkZloHXvbWdbMo2cdzQBN3Uh+yNiKCDgrCQBrmo56XtO6MZnMyAdMzkRlxH2AEWEXEHzCBxHl6ty7XawlEEjGkoxQdad1w6puGA8HpJSZhkBsa4ZVwd5swePKUQ3W0YWjdAWzuqOLHdvFkHnyBGdEV5ETp4uZuJ2y5jNffZMXrq3x1GTMHgck61g3icJEhusj7j18wJM3nuTo8WO2dy9y2q5QpmG0VnG4v8czT11DmcjRUUtMJWSD1Zmi0GgFpSuxRclq3rJZXWXCmJWvqX1LFxxt6yUrxGZMiuLOiRqMpe46UhZctlWZnY0N9k9OOV20oEFng7FQFGB0xvci0aKQMYrWlpwykcR2MDwRK4qQKeoWbSrMeAil5Wtf+CLqeE6tEsucUBFKZOOSwDhIQTJvNrKidAX+ykW4cAF1vGRrMefZF5+gXCu599Ye3fEMHyJNSgyM5tnxkPdfvcGbv3yHoztLPvBt300uh9x56zb13bvoxwdsFiUxJu63DS/GAQOlCTGQtaJUMDC6NwufAchEEyVxPnIUVme/PYPB0VsEFKjsZIwUIxSOVltaL6dHk9N50aLQqLPWdIryo3q9iuJtEXA0sLRaaJ0p91qVnsSRE045VAiCuqen3EaFz5JqKwJb8CGitVRfWZST4pJA9zTdRFb9ja5NL84VXczZP1FGAUqIrBmcM6R+1h9iIJyNoEI4J+5mVD9qk9fszO3SU2pknISkjOMqfCMFlVZQDQoiYJxjtWrwbYOOCuUVTRcJRDoFMSZ0TNisZfTbF5ZeQVQZlzV66UGlt4FrvQvLh0CdPCEjAlEgmsxGYXjpxgVees8TbG5VIn4NYBDNhbi9DO0y86XPfJU337rHDTXg2vYGWx/7EK2d8PjRPkfe88x73s3OhYsMlOXLv/rrrO8f8r7nnmBaJB5Oa6JxWC3i+bPrSyHsnZQT1hiqIIdLhaHIkRttx9O3HnHh9fu41RJLELy8kly1pEC5Eu89mYTVji54Yk6UtpC3I2dsf2CLIeK9h6xwtug5NwIQXXaBu/WM1ils7O3H5zb7RESzSJGD0HISPa8dHfBcNWFoHb5eslENWKRAWHpWq4ZYWIKChkThFIOTjq21ElOejTYVqR+ThuDJSiB6TdMRs2dQFly/MoQs+p2oZFTjtKVylmaVuLDW8qf/zxf4f/z9R/z65zXf8Z/foPzkXb74+pxVYSlUYpDpMfmKqDPZidRBbOZGzCZZqOnKyjg3Ik4urUROeXmt5aX3XeZrU0ebMlaEnX23UveuIyn2VY79HSH3kpcgJ7qs0B5iF1DJc9p0DJYrSqcJZ+rm/8Dj933R0paaPCyEf1IYikJTVCUxtsxOT5nWgctb2wwfzsjHK2LMlFpEipUpsRpZrPqFtuvn0CYp1KgkXNrksGtYLlbMVoFTO6AbjMV5lBNGux59HjEkCsD6yFHTcBASKwdLlSl6R0MXgii6TSZGMMZRVDKmajw0KjExia0k7InQUzytteiiIMRIWZZEm1GrjI0Zoy2rlFnljFcKjCaqjI8tOQdyVhyfLmn602k5Lrm8vc2qO+jBTQkbNUQhtpqUMCrjSagklfneybGI0awihBpqzc3dDV5fm6DKko0QKTcrTOmolyvccMD8zh2uv+t5vvTwdSg9B49bchfY3RlxuKg5rTPJSkBXWSoq50ih7Vv1Bp3HbBQTBqWm60qWIXFv/4RHj/bwTcNwqNm8sMbpiac9iWidaNpOwFvWsr02ZFQUvLH/GJ/6lqhTaAvWiYIf+oNIf1rOKREjDDvN1ZXj2s5Fhk1kYCwLEsE65o9PaI6nxOTZjw2tNthsMCHRBlmujQanLCOlWXclXVVS37xEORzB0WOubE8Yjksmu2ss6ob9tx4zQlMEz5OjkidtwZ3feJ1uPODdL7yTKzef5fbxMUe3vk58eI/NGFkbFBy2LUcx86hZygKsJC25UJYqnnVMpFghh7MyhbOWg8hClIhXzyyJvfMjRSnoEtCVJbOYCQikTUdxuamc+kIlkoOAt5QBpfJ5M0fRi/0MzK3GZ4VKPffkTIeitVhateqpuvI9Pmaylq9XWUZuxti3KahJgGtvnxx7FkjfJk/QO4vkeZwJuhWyyJ/HoSgZjamEuIT6LJ2szgqXt23T8nrJ6xj7De/MyhuS8GD0cEg4FS1AyhlrDWUl2P2cE5XTOAWrDtRqxaqDxguOnhiFQ5PB5oyJmVYnWpMxOTIMCtOfolNMOGXxOeFzJCAbUMyZwlk2ysAHnt3hpXc9yfbuGGdtH0WQCU2LdbLpp6h5cGefe6/cZSsqLm1v8vR//ceonn+Bi5s7fOYzn2Hz0iX237iDWR+ytbnBr//GbxGXc2586B388A/8V/yP/+sv8tU3H2CwfayCJimEAyR6YWLOBAfr2XOjCTz76JRnvv6AcnmITR6cI0aLQQmLRUux03UtOiaqoqBpBAxqi0I6YL1o1yrp5uU+eDLrLBTgmBgVJa3O3FoueMPXvDDZIIcg0QcZGW+qTGcyMwLLDInE3bZmSxmujzfZHq9Rhpbc1IRlYDFvUVUGZ/BGc7pQjEeZYlqztuXISszvYnEO/bg0AonYNQyrgo21ETEHKSgyNE0EpfEoVGmxVcHJyZLt3Q3+7/+Xa/zET93i6DTyX/xnV6A84CuvTyFD2XdItZbuYMhBrl9A60zq9xKl4jnJ9iyJuygMlZ3zbR+5ghpu8trLkUAh7KNsxFrN2Qg5i5C3P/ic5SoltLB00ARjJOuqa0idwtQ1VSE5Sb+Xx+/7oiVWDj2owDlCVqieINnOVszmCwbVmMt2SHF4l7UExlUMnWVYOApbSKZEEkV2JOOygZSwWNLFTRY7I+Zdy2LRst8k5sMKr0GFiHIKo7K0HjW0OVGlBF1g1nXMM+xay5aqOGpakhKKoD1rm2qDsYq1tSGFVoRFTTd2rA1LxkEC5MgJbQ0mK2mPB8m/iCngtGHkHFlrmuBpUsBH0MoS24CzBYqGZlXj28C8k5PLmg1c215nPD2h6dvTsY24pqHUkdgndmoExZ3aIPk7w4qNYcFAJ65sj7l7dESb4F2bO7imY3LzMk3wGK3osgermBF5fe8Wl5+y7N1+yNp4wu7OBo9PapIuZOOM4vyy1tDEjI+RxXJBigOczgxNi8sN5XCFctLxetxFzMBSDT3lSoScWkPnA9YWlCSubK0zn015cHAkz0cHss4CstIKqxXWKYzuc2wQ9kEMiQ1vuTze5sYHXmL16degHOA2N5gtFjx6+JiuC5zmjtN+JkyU9mirJdhQp4RDMdSaVmfixoTJ5V2q+Qz9eJ9BSoT9BScPp2Sj2CpKQmx40lmGZQnec2Fjk+FkzNV3v8jKOU7euo15vM/g5ISNqiR7j1HQpMxKG7wWu2nMcuMXWSFDb4XKvSrvrKFChmx6YqyR7gr9Dq5EbqeNQTlLsTFmVZUCzcuWShlKk6lSFEt+QrgXSXJRoP+ZGSCRYyBHRactcyOjApGQyBefY+izkg6nlPUkIym5uieKRqFZgRaIVUSAdap30CSEEmswOF2glBHWUA49b0MYH6r/WUn3lNXftp7oJC4khSLoSAqajIW+O3vWO0ALDfe8YOoLF9UXX3owIGTVix41OisqZ0lRxLwqRnRMlEPNYFJxcjTFtoGlD3iPOP/67kmhDDpL0nDXs0VsThQxC0cqJrqcafsxWtQC9ro4srz72Yu89M6rrO9MQMtptyyKc56NtpaMZrXoeOUzX6WYZt5VbXFxtEExhS/+jf+eKx95CX1lg7HWnLQN7VsnfPVX/yXXTlec5pZVlSlLz3/9x76LL79+l1/51c8wnS4lU0pBNKrXWCiGKXN5FXjx6JQnbz9ke7aiNBqlHM6V1G2LTx4KR2Etje/ovEcpRVVWNKsVIUlArlbIOM4YjBJXjO47heGMCJwCpSvIRrHXLPnN9hRdOtaSoSYR+nVURRGjr0JgGSNdb3teKVgm8R9tDIYMcknKCtcsqBe1uHU0tANNvfKsjTTF3FMNwFWqH4NFzoi+y9USNOzubDIYlHQhyKg/eol1aQI+9waMzqL1BGUmHJ/MefbJTf6vf/wJ/uLfucXBfMUf+54rvPT8hK99/YBbdzuazoqkwUDRF9lGGc7SpUPqNWBkrFNkFSmNYVh2fMuHtnnqmQv85tcMR3sKE8WskFXGnI2RQa5fJX69HIW/ErWMs1SW3ks2RvKIrKdpPTlF6i5IN/f38Ph9X7R0AxGsnYntslbErmZ2OqMLmp3dHS5OO95hRlx8ao3CGFSC0EkGQ05n6Z+cV+w+BmKCxeVN9ipNvWqZ1oHpYEhbCB/BRo0ymRA7YorkIMnHyYNtAybKOHzlM6WCkS6olCxoPkU6H3HWsD0asFRA3TDoYKC05DaEIMIvBcZJtdvEltDJOERFGGiLAZZ1QxoaKWpcpssea0rIMq+vyoLT6YL5MlBVA+phS1YTNscDHi0jx13DMYlrVYHRmTtdTd2TKrsgRMrSldy8vMvlSUn2LSezOV+5e4oeDri+PUHfP2Tj8hX2T2dUkzHLxZTB2hq3j/Z5PN3jCXUFv+i4uLPGeK3k8288ZNVaqt7uWjqxC/qciNkQgqbzmdR2jAYSCe8GHc89OeCJG5e5fWvG6bIDY6iParqiokuZmGDgLBsjzc76mDfuvMW0rtEKRlVJyp4QM12Aga6wOp81/uVaiIYqaHbzmGdffIn5dEF5MoPJBHNhl7e+9gbT41MyipkPvbMkkiPCeciZIRIMV6nM0GiCM0yef4rNQUl58BBNK4GIeNqTJWVIXPeJYZsYdhqDpdtdZ94Fdm/epLx2ncerFWF6gNp/zCREUgHaJ8ZYVO5o24iO0jWMVmF0v4CHgApaUn+ViGFR9Ch76YZko/uOSy9GpedJIFqYWBacRE0XBb6WEiiTUG1NajwqAAWQszgnEtDF3i0nXT+VNL6qmBuFT0HsyH17mrNOZZJIe9HQKOl6KrGqSuCckg5ODOgMQSu8UpjYjyC0sGaSzJZ62JwIbXXf6URLQZTPtCJKv50UnTO5T3KWbUPsJFmbfuQFKik0hth/XtF3auHttSQa7HCdgEOFDu0U2jp8aCmtImtHbBXZB0qlGZgSG8fk+RLfJmnbRyBINygAIUd8kjGYVQqX5fm2WSB8sWfBgKG0kWvrFe9//hovPHeV8bCAThFIaCudC23kvU1O45Pm66/fo7LbvOM9N6heu4WqG5a/+ItcXNTsvfVVLt34OLf/50/yLT/0J3njS6+Q9h6wObA0DtaeGHF07002d6/yvnfe5J3PPcVv/tpn+cJrbzD3kUFUlClzIWSenK94+u4Bl46OKFLAGU1ZOpIzrFYrmtihe2H3qmnOIyms1rR1TReDOM+0kqgFYzG6H+0pmcumFPFEmtDhjKG0lsO24wuzOW/GyHeON0jB0/UjjZTE5dnlTJ0ybZAuMzlTx8jcyOustKLAcGE05ukm89bJCYcotDW0KaAi6EcNw4lD6xXr24O+vo04o6jbhsl4wHh9RMiepl2RlBFXXFRkn6hXLW1MGOdIOTGrG7QdAY66afnwRza4+c/W+MznTnj06C3+1Pc/yff+H5/n8P4Br7065823Vizmcu9aq1E24/vyXqsEyqF1SWEUQ5vY2fZ884c32Lq2yVfulLzyeiIGh1aKlCFIrKIE9MYkOVtJLOSqDzaNSiIAlC3wyaOsRecSmzxlv9a2MdD6yO/l8Q0XLb/yK7/CT/3UT/G5z32OR48e8c//+T/n+77v+84/n3Pmr/21v8Y/+Af/gNPTUz760Y/y9//+3+fZZ589/5rj42N+7Md+jH/1r/4VWmu+//u/n5/+6Z9mPB6ff82XvvQlfuRHfoTPfOYz7O7u8mM/9mP8+I//+Df6dPFDjSs0OSvscEw5GLGq55zOFxTFiA1XcGE+4wkc48lAmBUhCkY76HOXgu0FR1qL+n6aA+32kCWJpgnMombqLE0P1IlkmpRpUayCBMFlH4htRi9aBllGPo9ioI2RDS2Cw6wMsc/z0Vmz7mFt3lJXic2kuJQM6yFQ+CinQlTvbuhoW4/3iTbKwlPlKCJBrRgPhpRdZqQVddcyGlWioVl12EElF1OfhYFKclMniUHwKfE4NijlOIxwkBLBSbdGE5iMKlTMzE5PKVJF6z2PpjXzDO+6fpFBDkSdMWsT3njzLd558xqz+ZQF8Nk3bzNYV+TYkbzi2vUhOSceHxzThi0UGpfF6ZNiIngRiRnjyErRdJlYZZSJjNYygxHgSja2FBcvrTNdNrz51SlKG9qu6zeejsuXrhBRHC9qrBWmRmHk3NNpGRElpchJOl45CWETH9ls4OnNi5i1NTiaYTfXiRvbfP5LX+Px3QMGRnPcBRZoVM7YDHVO1DpRKcNQOUxIDIzBKM36E5cZ37zA5mxBFTuGz19htLOG35+xevktnk+a/dkpVRe5tL3G6ZVN3pjP0WsT3EsvsHAV04O76JMjur3HbBUVuVlyyQ047jqx2mvpvmql6bJcpOcE2JjBS9GSheLVjz5S/41ZKuyzR3+CzSmijSGWY5bFAJOdZC4ai/MaHYUmaryI9GzvwjEK4Z7oDMqhkidlzcpqVkVJP4cTTckZwC0JMp8sreycpVgxWkl3KEmGVu6TmFOKJCt24zOBZS9D6f/vnSym/z2qdzWdkY5Ba3sONTtT+OQkItuzMZrOUqTROwMFSpcIIfY/T53nBeV+JJbR5GpMdBUGj9EWrzVV4bD9yKMVoh4pRAnQXB+zipE6x/46BmUEXx9iP/Y7I7OiCH2LPyLOGEgolRjqkie3R7zvXVd45ulrVGVF19bSkVEARlKrjZUAT62YHbd87bNv8s7nP8yLH/kwr9z778irJdbKAS7US4phQTpZ8cWf/u/Z33vAjbpmMLI8/+0vUW06/OyAaW5Z+SnD9Ut8/Ds/xkvve5Gv/utf48KjmnHbYm7dY/L4EZPY4UKH0oVA3dpWAHgpUZUVSUNTt9Ld6rOIYgiEGDFW9FY+BAbWSSchnaWCa0KvcWtiwCjNsBow9R1fXkz5rF9yqai4nCxdbM7TwAGU1gLFU5qoDTlIzlQdE/vBc9A2bBQDxoWjUoZ3qBHHXcf/OltwNBoSvLjRVqHl4mlJoQwLWoqhwzpFxLM1GTLYHrJsG1LK+CDFifeJrgusZkvIWvSLSZE9zE5X+DozWVPiErKKRZ2IXnPnQeK//X/dwrcX+fYPrvHx797i25qOk6MFjx/WTE80pyetQA3b1Os5E8PxistXS67dGLNxecQiel6+P+DVr26xqteIuc/cS+KKM6Zv3/62wEPV/zYixF+jNMoocQbmElREpRLnBVTa6rfDL/9Dj2+4aFkul7z3ve/lh37oh/ijf/SP/q7P/62/9bf4mZ/5Gf7xP/7H3Lx5k7/yV/4K3/Vd38Wrr75KVVUA/Mk/+Sd59OgRn/jEJ/De86f+1J/ih3/4h/mn//SfAjCbzfjO7/xOPv7xj/OzP/uzvPLKK/zQD/0QGxsb/PAP//A39Hz12gBTWKKHYjiiDR3T2ZSQMqPRGmu1p5gv8J2nQQteOfc+djKut4OJDz3Sek8dE6ux4XRiOFrMmC9qTqNhidhjowkkpSFAbTJVCqTo8U2LWXaMfKDR4KNn3Rg6Y1jXCX1mMFWG2J9kbd0y9gOSAbrEpG6pgsd2gexF25FjJHae+ckCbEmjFCUG5VuwDucKRptblCuPtpqRM1TOEbIWC3hR9PbDKGySgZO2axYOgXIdD0PLng9kVxKMplRW6KRaeCbjypG14u7xipUPJKPZXK94bnfE6VdusT1YY296woOTE775m9/Hay9/nS+fPOS+n/HBb96mWSzwwOWbaxzPFqzqiBkYQlBURlFYRbNqiTGzu1uhdSLETMQRCVgXcE6TomY1XVAYTVEqjh+2eF+c2/ByClwYrfH0xUvcevSAVQtKWbLNLH2LtWC1ZuQsAy2bvEIssylFihy5nCwXXYGdLukenFDtXODN4ymvf+3r7KRMpxIzEkukyzJUsjmOk6ZAUyotIDcL48mE8TNXGReWrQeH7B8cUy9qwsWG8ajkhUsX2HzzmKm33Fjfobi5y6/TMD045cJH3ks93KJdtNh6RXvnLus5U6TEui5Ys4ZZl8Vqj/CBopKNTGf6Ai6hcn9K6gL0Th51hmk5GxWleM7QyOdZQiLebVzFSSt9Bes0g2zZbDQ2RNEWxCw1T//zznRSJEUKoRfAKlZG0VnTo+85p86mLPdiymK7PbMz5yT/BmGp2N9By1VakONJZ6LJZGMwTlgwxhj6eqIPWFR9SkF+m9liRJeseTvn5gxYlxMoq7BZE/t5l0KLPsYY6bHEfN5ZyUpiAURSk0BncShOxuTFkhBlvTBZkVQ/AjOGzge6rpNTMFY0DjGh2kAbux7DLlqCmLLkJmkpklq0fA5hSZUK1gYFz1ze4r3veoKr1ya4wpGj5GoVRqIbku6vi5QIKdEEw2/+0hfQDxcU68fcfOl9zL77D+J/6TeJITBvVpg6sX39Kmv/tz/OZ3/qZ1GPHrEYl5iru9z48HtZWDCLKd3xgnwypYgHLOeK6q19PnpnHx48pjk+ocqKUguJuDNQOHF3hbrGGoNzhRDKk5zmje65WVk+prUkTscUzoXz5wULvREORZcCxMS4GtKReGN5wmf9DK8T73YlKgZJyu7fW62ECh1UpkueLskMVSmN15rjGDlqOy6VDQMrcL/KZz5YTDj0nn89O+XEOkLKnOjIV9+Ys/bOCeiG5BPlmmZte8Rwo2TeNMSoCEkODl0TRIBft+Sk0EZoyinm/teIyXCiKj7/9QW/9oXHvHFrKYW1z5A1X/3qnHo+4+aTIy5sOjY3S164OsJZhVKi2fE+EUMkR4UrSlrfcLRo+fztY6bNde7v7TKflRB9Pw6S7klCnHwo3XezzsT7mWylG2Nyf2DQBm0syiW0kp+lBpEiJYpWXJu/l8c3XLR893d/N9/93d/9b/1czpm/+3f/Ln/5L/9lvvd7vxeAf/JP/gkXL17kX/yLf8EP/MAP8Nprr/HzP//zfOYzn+GbvumbAPh7f+/v8T3f8z38N//Nf8OVK1f4uZ/7Obqu4x/+w39IURS8613v4uWXX+Zv/+2//Q0XLWZQCoOhtJRFSdssmC1XWDegcprRwRx7XLOoE20XKJw7n0OX2vQLOjRdi4+JxkfqkFle2WA+NPjDwPFixYEdUfdtdJn5C/IqZLHMGZ/o2sjpdMb92ZI979lyljJHNnWFCR5nRDthlUR/+xBEMd7VJG0ZBEUxXzIyBttJ1pDG4VKEEAkBysoySpk8b7AtpAmUowGTzU2qx/tsVgWRkk4bjhYNXV0zqQYMXUFrJPAtZjiZCy1zuxxih2PuNok2Z0oECd6FQCYyKkqevLDJk9d3eePuYx7e2afUBmcST17ZJh1NqWdLzPY2t974OrPVksfNilfmB9ydn7Kxq3j3c1f4lU98kYuXxmzvTvjK1/aw5bpAnFrNxrq4GOa+oSwUk2HBog5En8EYPB5tA7WPHD6agg8MBoqj04bDvYyOFmzC+0hh5Xl5v+L+/h5NjDinMTpIR81otAVntbBzECx7l0RjsO4tN2eOwbYlnyyoT45pjeKLX/wSxreU1rIfM6ckQoxYFUlZxI0mBYreRm+yZmLg0qUt4vVLVHVLiA1rV7YoCsdyesT6vY6dtQuczhsub26xc2Gbx4PI/dsP0NcuoZ96kmU05GYG02O6h4/ZMY5RF5iUlm5kCZ1mRaaN0GVNkz0aRZU1DtUDaEwvku2t8xpAbKIKSRxWRjouudeiqF5IaQYlM+Mgl2hrwGRcSqwbhSNSKgGEpZxpfcA5h88i4BW9iDhcIpql0+gcUUqszUmnfrSizkV6MYPKwj6Jqf/eLEVV6rUkgSS5YT25WiIJPFYbnJZOSmEURqfezhylcOrTmCVJWL3NZ1GcCzrP6LZnjJlokNctJlBWtDq9iyn3heHZaDr1GhcZNhao4Qbx5IDSZorQ0RBJxgm/sn+NY8g0PpCVWF1NzpRaE3sJdMiJoNRZsoJ0nJCuTidvFIVWbFYFL97Y5sUXbrBzZQunI5qMqYRpExPi6OkdZr4O2HLCK5/+Kg9fvstHnnmJtUHJp/8//4oX/th/xVsh0v3m59jfm6Gmx+jDKa/+i3+NfvQIX3rMhQ0ufcf7iWtjCt9S4FB7J5i3HqC+fkQ4ahhE8KsWGxNDLa9T66X4cK6iXjXYQSH8qizPUWVDaDspJNSZwFk0JakvZgprKYzrM4l0320TbEWbOpZdzXo1QBvLg9kh9+uaJZnnbMGOFVu7IP2z2Kf7kWKXelZQ8ucp0zEngtaces9R2+KcZtuM0MZRBsVHyw3urWp+oWlYRsiF5vW9ls2tgvcMDLWvqSYDXGlpYituTCVjvrYWPVgIAdUlAXiGKKC4mBiOCsbrY06Wia+8suCXPzfjjdsdqZPXZnfH8swNTUwtdx5mTmeZoUtoE6mGhuHQUlQa58RVp62M3JsuczpdEYLBDp5ivtzldDWUQg2FyQL8kOFZ381LIkZPgNOWqBPxXO8i55WQNM6VoDNaJXSsSKkllIoqG6yrfk97+n9UTcutW7fY29vj4x//+PnH1tfX+dCHPsSnPvUpfuAHfoBPfepTbGxsnBcsAB//+MfRWvPpT3+aP/JH/gif+tSn+NZv/VaKojj/mu/6ru/ib/7Nv8nJyQmbm5u/6+9u25a2bc//PJvN5DcZEWONC5LytLOGHLRQJX1gfLgkz2pOYsBpRRUcpXFU1uEdhK4jRkFrtyHR+kjrFKtJwV7TcNp6DrAcY/BJxGQpCi9Lq4TPmWWEJiaMb7nSBjqlmeqMSXBVWWYINdChcUoWzDZm2iRBciWKhowOgUlS7JalCIJDJmnFrBUs/agsGRQFug3k1mMDhOzQOAqdubChGUwGLBaJaZNpu5bON5Aj49GQppUZ8Hy2IBtLEWBcWVLvKokkPJnSGSyZLieGw4qbN57CuczRyRt0UVqHY2u4ZBXt7QOJma/AdksO9h/xT3/pf+E4nGJtxze/8zLGBupV4NkXx7Rd4P7+HOwQpSS3pawM82aFtokr2xOsU6xOPW3foj1d1Bw83Ge0BTvriUmpmTYtX/v6ioNHmjYlshW0+oWdIVd3N7j3+AGn7YqgE4URQaDOwiMYDK24xhTYLFTTEAKjZHhqYVnHsbW9xexkRuszr375VdrjKRdtwTJGFho6nSQYTGkIAhJ0RuOMFmopihvjEeWNS8wmE/bfusNcNdx86go7FzfZePMBz95acvLwgGptxM7OBdqY+fKdt9jznt2X3k07WqOpPRu55e6rX2VNaQos17bWWMQV9wnMe4uO0VAoGACDrCiVYWAcyoj9NMYouHTl+tumH4j0QXYksTaKdUh+OctNmalMLgzWKLCCaq9UpMgZpxXZanyXCMHLhmTkZ4Yz4JVWRJUJpcOUFYXtZ1Gxv4Hf7jqjlMJncXV0KYigMomgRGs5hWYFbfaSbaMVqofcaSNBeMomog04A8pmyUVSssEr1QuMtUbpvguTexiwftsBlI2MK7NOPdNR98Rf6WKlszyn/jkDvy2MEZI22PFEOqE2oAwUyhCyRFOE7IUkSqTxHSlIqWNRlMbR2Yjvsedn3ShFOh9na7LY+o3i6vqYl57c5vlnL7F7YRNVKnRSxJBI3p+LhK1zKGtoQyQkxZ3XHvClX/4yYz3kvd/7h3niYx/iU//Dv+Llf/b/5Q/88T/Gp1Y1k4f7bKxaXv+pv0eznEMzZXO9YOuDz1G98CQpZMrXDjCff4t86xF6tsIleX8VCZPORgfmbVhfztR1TVVVMs7ECzW2CX0nRTrGnLmy+kyqGCPW2vNiU+uz8aB8TZcCTdcycCXOlRzMZxyEjpnJbAbFO+yIQdLUSSCFOYbzSy+mKOTbnIlkkoo4FIWyDLSiU5H9ZoXVUGrHpLCoDJc6x3+5dpUHB7f5DSJ4w6myfPnOiovDEU/cGJKi4eBgxmCrQg8LvPcs6pbYSBc0xkwK/ftpLQHP2vYQO1rj7qOaf/PrB3zxVc/pLJODBp1Z3zA8c1VR2cii04QusFglykJTuoyZKSEHVxVt28mhzDm8D4L7cIonr98k5qeYz12Ptugzls7CQPOZpbkvzDPyccBZR0WPJejvi+wy2YANBqOtvO9WoZmRUdLB+j08/qMWLXt7ewBcvHjxd3z84sWL55/b29vjwoULv/NJWMvW1tbv+JqbN2/+rp9x9rl/W9HyN/7G3+AnfuInftfHz+zAxhratmbVSoC2thY9a7BHc0LdErTgxDslSn6ntMCpUqLtOuouigArJvLWmONScXS65KBuODAFq6gxWoueUUkPOaRI27eKdcpMgudiP3q6iqXNCa0dPgRKoxlqi1WiJQgx0IaAVoqBNixVxniPrT2j9QEOiUlXuaTrvAhMC4dLCdNJsmkelbIRFFBauLK7Qbm2znIA0zcfoq2FwuBVBKupypKsFFaB9x0rn7i/XEGh8FZTZen85CT1tVKBxXLOw0d7GAPTeS0nlFKxu1ExqBv0IrO7sUFZKMYBYltzdHKEGsKFDcVL77zI0cExRel44okRBwcLpktFMoYYMqhEWQUqE9hcH7A2NqAj81VL3ZXYWPN4f497h6cMjjPvuF5yPNTcutvw+K0W7xXJZQiJoXPcuHGZZTNj7/hY2uZGMS4NOUWxu1uNk/mF6AWUUIWLANs17BwHtl+4RlsZTk6mHO0dcnQ6ZUcV2OR5FFqmOtEkTwmoJOMlnTOF0dJNi5HdQcnw4pj2iUtkbaiITLZGNPWKN76wx86J5/6DJaHueP8Lz5F9y5ff/Cqf3L/H+gffx+T6k+xHR26mnNx/i/Rgj0lWbA1LFJ6jwvLq4TEXgqbMInQcoLBKbIk69QJW3bNjDOcaDNXrP3LKoKUVLloMcT7TO3FQCpVN77Iywl2xDqciY6eoFFRlic/iGur8Ge/CoOUKJUTRgGAhD0qq8YiORCDgosKHJNcB6XwMEnqSacyit0rni2fsuxky5kDJPD0lEYvH2Am4TRmi6Z3eWhxEZy5lEd1nULa3LfcW5t5CnUl918PLKbwfbeUc5AdmGdmmnDgfpfU2avlP2v6eiBmOpGMSI7Z0fVcvU1UFPkJLkOwlpfAhkjqPTZkuRmnJ9w6fGFMfLCkguwyEnBk5zaW1Ee+7cYEXnrnI2u46ynrRRShNURR98RjJWYTDsd+o9x+d8NlPvkwxz+ysFTz82puo3at80x//o9z+5V/m5X/5i7zne76Pf/3pL5APD1GrhTSfJobxB25y+QPvIL5yh9WvvIK9fcBap3FWhNciqs80qxbfFxrdsj7XWDln5bkBp6sF2hqqlCVgMycgoZWE8smBsiPlhHOuLwzf5v+k/vpIOVH7Dmctw8GAk3rFcb2iNYrGdzxRDNnNhth3WaKWMfFZ4RnhvGBBacFXaE2lFCXgFex3NVYpBsZS6AHOGAKRq9rxfWsXuH/8iFvWk5Jm2lpeP/Rc3q4EbR8UjWqhkXU/hUho376mtdHi8FGJ8eY6i07z67+0x+e+VHNnz9N2GRM02WTG63BlR6FzIrQJU0QsmrZOKOWICOtHZQVBfo1R00UZpZUOLl26huc6J4cVXVRkHclZS1F/xv85g6wqCTt1Sjhh0SgJWO3vnzPmkiaKe087ccZqyX8y/WtsQ/NvLyz+d4/fN+6hv/gX/yJ//s//+fM/z2YznnjiCbQzqKHDq8Ry2bJogUKQ8oNpi5nWRBQ2i0BO1mJNFyO+TXTB08WAz5EuQFYatTXmtLAw62ij4lRpugw6S4tMZ8TelRKtEkEnGa5QsKNbbqdMJz1mMEHCD7XcCCn3qZtdIgcIJdKWy2BCwjQtja0phiVMl7iwBV4xKQqUMZguUtSeYjzhyMlFpgo5eQyKivFkglbgmpq81CgsRdZ0XcTniFWZC5evs39wIJC2MpO1xJ3nLjG0BTYHEpkuaUKITJcn1G3DqmkxyrA+KLlxsaL+ykO8Cgyf2KYoIs2s5jRHjE1kPIPtgs2tiuVJ4Np1RTkp+Nrrj+kaRR4E6maIIYFOlIVhMgGrJFJ9uvA0YYxfLbj/eJ95u0ANLbfue/YPFhzvKUa2wI4l+0Ypxc54je3RmNv33mTV1pRaUQ4cVZWoV2J/TNmRk8bR2xx1JgbFOGquzRwbdsT29ad4fHIMtmTetmxnzcAkpmQWRtFFTw5R2DZKEYGRdgxQ6JhYU5bNasz8ymXS5gZ5NkWVmp0LWzxxcZvDN27x1he+xO29BX/43e8hHC84Ptjj7tERbG1y5QPvpx1tEA7mDJjx4CuvcjFYrI1sGcOxVnxlPme/hk2tCbR0VubkOfSnH6FpiTguZLR25KIA28MIQ0Q5I2GGSsTc4MWuqx30wLKcDabQGGfAOKyFwmaGdaYig3EYn1G5Fuy+AudKIYfGKIVEb5/OGwPcKDHQGhUlWbn1kbaL+A7p1qREjB0pRNmss4zvIIEWGqpKYnE1WpH6kUdMon1QOUDSmKxJBGEu9cm+ui9etBZ9S0aYFSLIzqBEP5P7rg0pk7TGp0yyCpJwaAhZoHWpF/FkcS3lXjtDCuiUUeUIPRjRrubyepYyysihk8BGHyhNgRpoFnFF00dvROjdW/E81yUp0NaIiJiMNYqNkeXpa1s88eQ2480BVmWMLgDJSfJROjUpJ3muyYOtWE0DX/iFV/EHXoCQG+u8+/v/Cz71P/4vhNt3ePf3/mH+p7/9Mzz4tV+lWiwYlY7KliiXGXzwBrvvvMHBP/vfsK8dsBYMQ2txKmFypHCOpq7lve2EudT1GASVZUNyytClxNFqTsyBHTvBZNFjpZyxWojJIQfhfmSxdp9rrOmJyFFcLFFlmr4YW6tE6Hq8OCU7y6KtGRvNFVeisqIl4bV0q1RO6Cj3SasyXRDOjcVQkBkmQ2UcXUpolVllTww11DLGuzTewBWWFBreU475/vE2P9ccMB/KnrS/zBydZq4rcXYuVyuiUlBlurOUdad6rV5A6UxVrXPvQcsnfuuEz33Vs1qKakmjUTayuWO5cEEx0kHIuVljkojuowo0XRDGj84YrYmNl2sOOXQPneLGzjqmeop7BxWrDgm7REvBpqUAtFk64qESUgABAABJREFU0bk3gkgXU1qwEkoqa0zMgM0YA0ZbrJIebrQlzmaUj2g1QptEWv62luq/5/EftWi5dOkSAI8fP+by5cvnH3/8+DEvvfTS+dfs7+//ju8LIXB8fHz+/ZcuXeLx48e/42vO/nz2Nf/7R1mWlGX5uz6urKQQ18HTRE0TsjA/Qsfm8ZSy7STHxWisljfOp0AdJSGzi4GQUj/3jdiNCXFnDW8MXmnqZOmC0CiTTrh+AcxAMvJrjKBj4krU3BiMOSinvFm3NAnWc8k0+X5ujxQPPlIHiUZXvbtDdSIKM87QxhayIx8v4HCJJuH6UZpd1hRohrubHJ1OScuGsiwIzYpyEBmWlhxKhinjDw+Z+padzR2MylRFgUqBcVnRjkYs62PWqyHWOipds3IKMOD7oDtkhq+1oa4bvPcol5iM1yB2zOY1mzsXWOqIy5njVYcvFNmkc8Gr0R1P3dzk8pUhy+WKB48X1H4IWrOcabbHhoHLVJXDWHFxLRYNs2lDCJnDoxOWy4ag4Oio5bjNLBYBrSrsSDEYFTRdx9AZbl7d4XR2ysFySbaa0inKUgRkMWoKNxCHUEg9z0PT5oTNiQuNYW0WmZSOo7fu4TMc7x2i2w4dPasYOSQxE0ETlbGSr5ISRgtd2SlNGRXbgzHzSlM8dQ1TWeavPWS1t0feP+W+eZPmcMabDw74lu1t9PExr9w6YNF2NJOCqx/6EN3mBfYXNSPX4W+/Rbl3iMmRS8N12qbhlgncnS1wSvezZcU8SJJr0Xd9rDbnfIVsLLooUa4gm9wX771Dpif4Ki0C3dQrMmRMJKOVbJUULgbKSjO0MDnN4qwJkdD1oYO2z+FJksgMvTMnK3yh8dtDWLcMooGI3FdGdjJtBMnvcyB16TyZN/02x0LoeseOzQQTxLatMxiwJqN0RsuJgpwDqo8X0Dqjez2Z0Wedltg7cd5uf6csRSwx0J+9Oeu+iIFI2BZneSxncy3Vaypir1VAi+7EY/Hr26jFMXnppbtVSO5TDOISISe6GGQ0m2QkFHwiBqmNfMxCIDZ91ICGwhrGheHmxTWeunGBre0JrjBoRKiecibGjNYRbZSMB3PCU9Iu4TOf/BLLB3OGVIyvbPPcxz7Ko4cHfOsP/p/wq4Zf/p/+OXuf/wz5YB+HZmNtjBkr1r/lRcxowPH/8GtcOvKsjyaokSG3HuNKtILZYonvYu/wCpIVpTSFkoOFc47gPXvNnHnquDSaYPvaTylF13XnGW30eihjbC+Y1ufTxNyTbGNfaBIio8GAJniO51OUNSxzpImeXVcxSkCfB3Y2apO3L/dBm9IwcDmxrjWFKllGzzJ51vq8Km0s8+jZ7xpKAG25PFqjzA6TPB8fb9IaxSddRzsYUZawf7Tk8rjAzlsMipAy7dSTBwY7Fqda9J5iNCBYyxden/Hrn2945ZanaeXaElt+5qnrWzx1c8RyeQir3NPRYy8GEoxB6CIxy+hTEARJxroqg+rYGW7w/GKTry8KuiTZQlp7bHaclYVKC9QwIvgEdcac7CfH0YhwXuXcu/C0rPdG1vx0pjQKDpzcr8qmXsr+H378Ry1abt68yaVLl/jkJz95XqTMZjM+/elP82f/7J8F4CMf+Qinp6d87nOf4wMf+AAAv/iLv0hKiQ996EPnX/OX/tJfwnuPczJj/8QnPsE73vGOf+to6N/3yL3lsKsDIRoKU1EmTdEtWJ8vGCooC0thZJFpvXRV2hDoYuxFRhmdDM5a7OaA07WKpe9Y+MB+iKx64ZM25rytHrQQa3O/dhUm8Uxl2VzJvDgm4ajUOXGaI+MEGYOPkVnd0MRIaZTgLRYtTkeMj5Su6IuWIYMO/MECs16STKb0kWIVMOMBZnNMOjjCdJFBk1BhirvqMKWmVGNu3rjO/tEpj0+bczFkaUuG1YjgA2G+4JlqRM6SfzE0YLJh2gQMchIld0DJ6UnNctFJxZ49Knm6lWJ87RIXrj7J4aMHUDpuLxaoUSniCp0xKlEYi0qRqrDsH6w4OA7MvYZG4VdQbShGZcZZ0R2EGGjbQAga30WOj07o2gAohmua9Z2SBz4S8BTjkkSk0HB1a51Mw92jPbqkcEYWbZDRhbVnG1dGB2lD56woUFQxsjW3TDqFGRmC1Ty6u8ds75ChD6SkmBnDqkjkBC4bQfVrWfxEL5MwaMZFxTIH4tM7XLq0S1iuuLBbcvWFF/GrBa98/it8/e4RxipeLCbcu33Aa/tHrApFevEdlO96gaPoiPUhZZyy/5WvUXnPbjkgNC13rOeNwylNl7ElOK2wSDeALEA5iziYVcqkkDBlRSoK0YRYQAkXwqQoC480KcgR0IYU87nYPGopzpXJDAYa4xKVywxiR+g6uk60E8r0bgvf0nYdqiiIMZ7DqLpCozYGjAeO4KGLGqMjRmeBvKWI9gFtAtpqUhclUqMXXyp6iFxWYMBYcEbYHMZIQWWdQB6NOXMKyVhM9+DBM46HbIqJrEQELG6pjEr9BqiijM10wliFU1ls17kXQimEoE3/c9MZEyb3HZ9eJING7WxS348MDKikaGsvsLOsiDEQU+jT3MU+2iUR5ka55PGxh14qcdgVBsZVwZO7m7zj+ja7WwPKStYnYyxo6DqPIqJVgcoaozORjlUTefU3XmP/Kw9Yx2F0Yjzc4Ln//LtYzme88nf/n0wfPuLo0T1oZtQ6UZPYu5T54Pd8EExJ8//+LW50A6q1EdE3mNZjjMPHxGq1EspsSP2aKAwcqzSVttiqpEuBh6sZJ37FejViZAp0PqMZSwF5xso6A5oZbfvXv3d+qTNnXCYq8N4zLCtUhuPFjI5M1ppF0zDBsmlLSd9WfWGqzrRHqc+Ykk14qO05j2TZj1bPnsNZ9yprTQdMQ4epZ2ituDAYYXLBlu/4z4YTCtPwZaNZFY7DkNibRZ5YF92ZyRmdDSkkUlRU2lGOhxy0ml/69UN+40s1j0+k+yv6EnAkbl6e8Oy1NS7vbpEvb3L/rTsslw0pilA903f/lew9ZwJzYzUhR5xSXBiNYDbk9NYpu88ueWtcSmGPkXRtZMyjdCQmyeBSNlEoTVYW20dYhJ5RpBV9F4b+wCAuXG0sSXVgHdErUvbkXJCr/z8JcReLBW+88cb5n2/dusXLL7/M1tYW169f58/9uT/HX//rf51nn3323PJ85cqVc5bLCy+8wB/6Q3+IP/Nn/gw/+7M/i/eeH/3RH+UHfuAHuHLlCgB/4k/8CX7iJ36CP/2n/zR/4S/8Bb785S/z0z/90/ydv/N3vtGni86wWjXM5h3JjhiONRnP5qJlI2U2h5W0vnKi8YG6j/DuQuwBQgmrpP1ljSZvbXCYA03rmWbFcYIuS3qm6TzZBkLW50FUTit0oVmLBU+bIdfciu3iiKqROewiBbreXpmtJXaB2je0KTIshligW3Y4lelSolCWlZfF3uoC5jVm5BgMLEOrCF1HNd6lGFYUKcgNN69RaYa9PAJTYGzJ+vWbvBgDh597mePZlOFwnS7CZG2In03ZxnCtdNwJXpTzKgn+3SYG2lKsOx6ezDEhsKwXLJoatMbqzMDBfOm58Y7nUeMJ3d5t7h8vedw2VLsTchF6ImqWokgpYlI8eHDKwWFHGnRotY7RMFpLWJsZDhJFhhgyq1a0KvVsRdfVjDcGlIVnbR1AYxwU1mK1om0DF8uSG9s73H70iNlySdYSL6+UlnY/Ge1kg9fI5qSzjHJ0gkkHO0GzeXEdtTXm7sOHzE4XFFbT1R37XeSOkuul8AkbEiYlHPSpqSLmHJUWpxSzNcvW89dJSnHwtdtspRnNUFKvy40dTnjIt1cbmFXNgV8yNZHp5pDdb36JRbVOu1gxKjqmL3+d4dGMSdKUMfKIyNdXNfuNl7mykg6BSSLkHuaM1ZkqQYFkqWSUsBOclDLKnI0xpErJPSVXuisiaBZfnAhejRYkelFaqgKJWygUOgRJre0ECEiGhKL1CVQnhN2cSAS0snSTRN4oxIZrIiZmnOo7PDmSCo0JiiKJFRgV5VTdz9XPFJPaZEzfNa2MMHaUcRirMFaEt8ZmjFFoI+JhCZiOKB1FPO0SuR/pxCiFrfx80UsIVE9kL/gonAqtyFl4PkklsfIYRQoZE8WZk/riKMdEjAF0phqvMR9vkk72KZxjUBRSJGpN0KCJFEoTrSMWidZ7Ef4qydCxttdXOBiXA8bOcG1nwhPba2yvjymsI8dIyoaMVDrFWafC9BqOkKhD5PUv7vH6595ipDWVLqiGEy6ubfBLf/e/ZWuyw+6Du/jDfY7bmlXqKMead3/svbzwsRcpVhl+4+tcNQOM8qgQKLQT67QPzFZLiTBAY5RiUBUUzqJTptAWYywr33GwmDJVHqthdzzC5r7bdaahspKxlrtETKrvFqZzsTNkGQ0hADjvI5UpMMpwMD+hDR2msCx9R4qBtXJATolsLClbPOIYMrkHGyKi7EJBjBJe2/TC9NRfe5FMUBmlLBYBR6acabzneLFgoDQb1RBtLLsh821pyHaX+U3t2cdw56Th6prFNpJpVRWGJiiWx57J5pDHp5F/86kDfu21lqP5WYdEOrpGK568tMaLz25TL2tm847Nq1tcecbyxitfFrCiEV6UNtIu0lr1YmIphksFa+Mhq0PNW6/tsWaGXO8iJieiFr4NRuGM7TVv9EL8vijXBnVGy06StRdJInJ3oKxCaUsCYSdpUJRiCFSx57Z46H47DOrf/fiGi5bPfvazfMd3fMf5n890JD/4gz/IP/pH/4gf//EfZ7lc8sM//MOcnp7ysY99jJ//+Z8/Z7QA/NzP/Rw/+qM/yh/8g3/wHC73Mz/zM+efX19f5xd+4Rf4kR/5ET7wgQ+ws7PDX/2rf/UbtjsDJK2ZLxvqLmGtFj5L59maenZCQeU0q+BZth1158XuFsSVkFWiMNIWM9aixwO67TGz0HHSdsxsSZ1zn6uQ5OZKcgMJhEpogMEqhk5zgSETa3jPZI0vNQ1vdJ5Z8pTWsglk3/UpuDKesP0ppGuDXBwZCmNZ5EybImegXoNibX1CeLCPCxlbFBRViQFG5QA9rTGqpUhDLHIRdinx3Hu/iWI04dU3XudBA4enCzajZmPg2N2YMN6dsHzjDnUXiaog5oayMqhsODqqWdaBtWFFG6WwSTGhVMCZzHLZMY+GvdffhMWCmFquPGHgque4CzSNRiVN7CJd6Dg5nXPn4ZK9+57hdmY8dpS2ZugQG7Ix+BTIZFZ1ZFUXkhuiAj4mRsNEdprHj2ZEnxmPKzrvGZmCpy5eJsaGw9NDfPC4yuGcE2YG0koWt4gmhygI9iDv4wDF1Snsbl2g2FinTpmVb9m4sIV6eMxjn7itPKuqpEqKVK+wiZ7HIsVKJLBpCjaKAUe+pnzHU6T1TRYnhwziDOZzHr1ac7hqeO3BASMsL+aSr5wecNAGTo2h+PAH8DeeYu49A92hF3MOXn+Ta0EzyZajsOKOhQeLFa0CrBK6KdJ8iGSsMfTZuucpu8Y6YbMYfc6eELjc26dMAKOEdnkmVs0SjCUY70JRFBpXKQaFYeCAGGhWrbzHCsHio0Qf1kYwioHR5JyIKpFGhjTSuBJyNCQvmSxoOeX6HHGlI6qEjRHrFV2MMqrMEoxqUH1XxaCNuCiU1RLLYOV5S0Fj+v97e7MW0J22Vlx/MmUgJenE5J61klNEZYEvqihIa03PY8lKPqZNDxYWjgyq/376Vn5KvVYmk5In6ES5vU04ORChtHNoRHjr1LCn73qUtkIJzoZBGWj6uA9LwlndxzI4dsdDnry4wc7WiKI0QlbWSmINVEZb6QaLwDfjVSB6xd1XT7j16beYeM26MdgE2xcv89JL7+Ur//J/ZvraXYqRoiIz8B1bmyXv/9gH2Fpfx//WPU5ffoPLjUGFjBtU0kXLmabraHpyrdVCTh2WFRqoilI6WWRO2oaTek6jJCPp0mgdF0VcrI0hRYlOOHvEFDkLyFT9Pax7wF/MmUCmCwFrCgpXMlstqbsOW1hCztQhU+qCYWlZNksKNyDETgivWTZgpRTOGhE3+w6rFaEX+cZeCaKybN4+JSkOlWGlIpXRjIwhKJg3NYXWTMqKodIQWr5plRh5xW/qjr3guHWaeGGnIK9q5nWD14ntK1s8vJ34xJdmfOqtllkjdnnVF85WRa5MLNfXAhtFplQj9h8d0LZLDIEy9+83Et2Q6LVYJOk25ow1sOkqTh9m9l6t0VGxmEQ6ZISctUK5jLaSSwS8LYHQfUGi+mTyfsqQkwR5KqslpkIjhyEFXsuBQeUeHKkdShmi9nT+bffvv+/xDRct3/7t336uqP63PZRS/ORP/iQ/+ZM/+e/8mq2trXOQ3L/r8Z73vIdf/dVf/Uaf3u96LNuWk/mSkArWXEFCU65qNhYB1UameOq2pQme1nu82H9QQGEcThucNtLa2pxwPLLUsaOxlgeLjoWHiLRfU8hn66z4961CO0NlLRtOszg65RfvHfCp6RGvdQ0Ps6LKmfUusu1k1m7IjAclUTtKbVExoGPCGU1AUVmHVpo6eUors0kdM8454rKjCBlXlTS+k8q49iS/grKT9qcz5KwIdcOj+T12rl3nD1y/zOO9Bxw9OmYyHrG2tc7pyZQ6BYYDTdktCRH+f+z9169veZreh32+aa31SzudWLGrqnNP98z0DCdxEilTNAHZki7kQMGG4T/H8L19ZfiCkGFZhAQahD0Eg4ZBMxxO6ukJ3V3dleukfXb8hRW+6fXFu/bpEWyZcyPYanAD1YXq2nXO2Xuv8H6f93k+T9tAXxJ9HYkVqIY0jHRtCxWGoeds03E7HHh6M/DRn/0pr5H46bNjnpaX/G/+V79JXlX+z//5v2I4wLJrSFPi9npg6IWbraHYBVI9JUbu34OTdaYNAaxwGCLGtsQMQ6xMQJIIg3Bz67nZRS4uMk3XkWqhlco7D854sF7wo88/IxZomkY9BzOUTD0OUGrFktUg+ipxYjkbLA9vDbaD3kYudrcs1ivMVLm8uuLpOMDZirdOj/FjZnvoMYOuBoO1kApvhSUnTcOTw56b05bHX3xDqckvnvB4YSnJMhwmnjy75Ho78O93a6YSedLDhbHUL7/Og1/+RZ5VoaQDG275/Pf/DSe7kSPbsCuJZ63nR7d7tlnIjaoKWF1HlHnt6doFNliqd9DfxYHUeSrWUPO8/559L6AvdeVdqCdE/SA/psCKqVgveF+R1iGNpTFCl+fqgqTJtOqgzFyRmDJmsjRdp0k1U8hLS+kEFzLeBgr68jGo6tVUR2I+cXcGklCTJotKnv/MRr0d1qo50Liqw5idhxXv8U7r+hrrFC0+p4OMNfPAoi9CQOPRtb46leKUnW+kgtHXFk7/nYjRtMkMJEtSyVXAWsoM8AJVhkots4JTGCWyONlQQgO1Ki/HeyRAEkF8gCmT53hzaFs8gaXVF09njRpdreAwPFivuHfWsdoEnJu/f9VQq65lWmsRZ+dyPD3tnn9+xff+m79gva8cuRah4krkzdst8lv/gkfTyF+UHU3vec02/MLqhLVz+N/5IaUaOuM4NvrncPM6fxgGcs6MOWGAYBWXr9Rfg3caCZ5KYjf07NJEskpQXnctx6FTIOHMt3HWUlD/YwhhjqjrYYP5OrlrY05iGONERYtWp9SznW7mQdZSsq7H1i6QUXqwYIhSKEaxFUbmXqCq6/CV96RayEX3UFUFnnk1oopFRX//bSk0xrEg0zn1VBarA3trHW1o8CXz08lyhuV3+4HzaeKeNWxWhqZp2Nw74kcvJv7xn/X83oeRfTboQnZe9bjC/Y3j9WOwDNxevGR99pDHZyv2/Q1xOBCcpppMqTOOSQ8xWQwS1ZC/qRZzGfj8gx4KnEjh8eKYrbccGkvbgAkyqylKkWY21Iu5o0gbLF4LTe9CKEbfTd5qtUZBv7c2aPu6czMHyjaIrRTbUqb/d0/q/6ePn5j00H/Xx/XtSL8XVuuOgKNOE6t+wm4HrvY9E4UxKwBOC6T0oaeAqXm3acA3gbzquM4TMVauUuY2G2pVE1RNlYy2B9/1kCB6ejet4XVaHpw4Pv185P1x4LmovBesZTSWnXFqVMJxFJaI97gixKlQc8ZXS4sWoQUCvTFsWqPJzGCBhtxn2mJYPjjlKh4o+xEZlMBZHNi2UfqrZCqRvt9h+5YslSCeN956U7PRTumcFx9/TrSBB0crZKrsasYEg6+BaZqwUrGp6MllikxlItPx6csdz2JibSI//fgeyQjnsiecwZPPnrHvE1IajlYbbnYTN7cHDlPl5fNJ8djiWDeGk+OJ0KonISXLMIG1ScsHKzqlu8A07rl9MZFzpGkaukaJqWerJe/eP2VIhWe3B+JsJLOoubELai1z1mmUm5nBUCuOyml2PLwpLLPHjpnLskcWC46PT/n8j7/HdR+5mXue3FjIuwOhVlrvCHOd7mtNy9eOTvho2DG5ysOvvMH60Snlasfm0PPWl+5xuK788e99wIurLScC7xnPxeGWEcftwvP1v/WrtA8eYbZbVqGw/d4HlA+ecV8a0jjyTCI/PCQuxwreKTsEwNi52dkwZmiW+rCvjcdNWjRILJSoYD39b8AWg8mqHOKdkipnL4aROatgHNUasqvY4AjBYX3ABEdbC20yNNZRTJ5f0IZUZhhaKYxxoCwavAuQInntcJ1GIS2CzZbgPGZmsJRqCZJoKkxWTb0uCATBlKIKUXDgDb4JujZxHmfBB4M1BWvcDCWzr/wPIHqaNwa4a7hVpYQ5ZquqVJ2NKnM7tdPTvVRNmThrkJqZzSozs0KTgNFpPPQufl1MUXldgS2UtqEsF4z7G1bBImZ+0VWh1FkFlLs2aUMIHqh6rXvHUetoGuF42fJgs6HtLL7x+vyySvi2UnVALwXjLB6HyZWblwPf+xd/zmYqnHUtoTpGhLbxUCIv9ueMKfK29yyt4bW2YY3HyxzlN6LR36Yj58wwjQx9IiVN0N2Za5dNS9c0eGtemWb7OHEz9YxSqMEwloIphte6DY3zgMLJtErDkEqeGTqBWiLI3VpiXiCJ+jfGkkk5c7raYDK87PdUqbShITLzr4ywbJY8Sz3OeEqBqQgWNUILWl4bayV4p8kmsSSpeGsJUghmVuREb5wsYCSjaCbHYAQTI7YIrfMsl2usD7RVB6uaR94xHQsxfPd8wDWF9qsdrvF8/3tb/vEPRv7geWR/Z4xEBwJjhZOl5fHK0Xq9T/fjSLp6SXGG/binAYJTnIU3OjRGtLS1FKipshHHu5NneWX5IEIrwk8tG94+OuaPVy2ls5Q7yKKd7x10+EkWMJ67UYr571X0ea2nd+3Fwug63jmrVgvUQK9Mlzwroi1+/DGX7f/bx0/80LLfDcSxcHyvozpDSJnT7Ui62XMdJ8YZVHVHwH3lQBfIRU1+3nmKs0xnSy4ksY2J6wL7KAxWp/LAXcxZJWBbLb4aGjEsjOExgdfaJf/eW+9xOyX2Fze8rJbNzEdYWQgGgtPaALw6+IZJuQGN9SyMFqF5Y9jFRBRt6QTRioAk2DawWC0pT69UZSmCaQPG64vYxEoZBso0YYog44QFtufX3H/4EH+0IEplKAeeHA5cTyPESmss26mQjVCNI0atUpfZ9zONkVwNn13uMJJx65YzZ3HGczX2nLy+JnjH+x+9ZMoNKVfatuHmdkSq5/x6R6Vl1VVWC8diUVithSY4/FyWtr0Z2BxtGIZKSZDGkbGPpFSQaAjOsl4omhrg5GQFHj5/8ZJDrDjrsRSszKRGrcnGiODMj1MeVQQvhqNROBoMy2bB9e0tl4vA2eN77J5cEs+vySZxdrbGH6/YX9xgDhmXLNYJjRHuu8BPrU7Z5pFihXdfe53pK18gxsL1Dz/jrZJYuAXbW/jsZmKolV/rTvCxcp3hJZnjv/YznH3rp7moDtnvcMM1V9/5AY9KQxMrL2LiM1N52g8UozC0gvI6fDXKYgF6ZnprAbNcwtjrtV4q9jDClLTRd5Z7Ebgr4bHez5FfVF2ROu+1DdWrIc95S+M9rTd0udCUQuMctTHKVcllLlTTHiIpQk6FBq+nslWLCQ5n9GXu/Z3ooz8T75RW3FhDEwLeqdfJuaqYftFdu/Vz4sFZvDNYh3ZLOTuvx+Z9glFYl6mWKnYeNe7WhczGztlwLBXrtD7AmLlQ8W49YObuFQQxmmhi3vU7qzAyhw4fpVZtpgZMsUBVa471OBMIIhhJVOPxptEXt1f1K1l9KQbv52qRwrINLIJn0TiWDu4tlpweb3QVJjMYrejv4bKhaQJtCdirQr48sL3Y8YPvf0R6ceB+oy9PI5CNo3We3a5nleGsaTkLgbW1+BleZ5zFFWHZLdQYmxJ9HBmmiVyLGmydrlZWbceyUeUkOE9Mie3Uczv11ODAO6Y0EVPktaMTVqHFGEPORVVA0Z8vWD0QzhAyg36O9x6ZfSVjzkwxcrJY4Yxl3w9MU2TRthjnSNMIImzmOpLbceRxu0SdS0YPmujqZP5NGHPEGoczjmB0cHHzZRRRFa0RKHq70MwJpiiCk8qBzNVwUGVvuWEZWjXmVz0cPrQNX/NnfPDJOS+3Ex/Inv/6auR7o9DLTGWfG5UxlfXCcbLQYo5cgWwp1ZDyhDj1TonRr8GJLpSKQB8LNUMdDavB8HCsfMt0NAQ+tlu+sTzirdWCjxcNL06OsUpI1WeA02HfWQs16xcKYN3s39T7VoquQrUBes7XGTBeKxm0nytj0OesrqrRv7f/PyDi/v/jx37f48OSxjbkEjkZR7qbHYfxwCHrjtpbQxcaGuvVnT7zAFKp1FrJUlhslmyPWoY4sZfKdfUMd6kFVFnR4B0w7+vEaO/CAsPRmMmj46g4/lqz4gd2y/eqobOeE2d4r/WsrFN0vHWI06GlIuxSZNN0etEbQ2gssSQSlq5alkkYL25wY8IuV0z9yPbJJTIkTHdHjkw4r9CpIvrnXa5X4HTQaldLNvfO6J1isPu+Z3cY6CPc7ka8FZpgOIxZX1bzgys7Q7GGYipt0P6X5B1HC8fJpqEaw1Xc88V3z4hp5JPn1yTTIiZhbGE4VNqm5eNPn1JkwcPHHUdHC7omsV7CctFijWEYB9qmwRjHYaiY7KjjDsmZUkBsYn20wLdAgfvrlofHK55d3PD5y2sKFWcEQ8FZlf71saTcAavvHYxR09pygkcXiYdxhXSefuU4/uLb3D+5zwd/9AGHVJGjlpP7R5w9eI1PrkemOLKyniCFDZUvHq/ZMpJT5QvrI27evc/+wRnXT6948clzFsbwne0Nw75nmDJn4niQHM9i5LII0+unfPVv/iYvTeD5+XPWNXLz3e9xdNFzlCzTkHjhLJ/cDsQCplHp2BmDqUJrLO3M/olGH/Y+JXIFaTySC1IrbopIApzFBI/4GQwVmjmNYTBBTXIajjHUYpF59ZFd0aZio8CtBZU2JxqnA5QVhdDpi1uwxhKso8SCC5YUHGbdKWiK+XPqnMipQBVcVThfcpamCTQthMngrRCdzCkYxx0cz1kzJ4NAywJnBcRqxPeusdmYdgZlWU0U2btwjx6jk/5HvHL6cpdQUZBcrRVjZFZudA7Wc+dd8kpojSFTyDOIzglI0WHSWLC3kfHDC1ZLS24E0whmrnwwjSNNk95/3uKsZ9k0rDeBZWNZNq2qODnRNg1d03LUtJT9xHS1RQ4T4ZBxlwPldqTfTZQ+MkyZj+JAKom3/Yp7rqXBUp0lSsJMI/eaBQ+PlnTG0VS0v0vf6zTzwFKKti3HODKmqGWLAj44lm1LG1qWXUdNhSLCMIz0OdKnSdvGgyPnRJ8iXbA8XC/xM5TMOUcuCo0rpVKSMnUsdV7RGbz3Wi5YK5OF22nkKLQsXcN+GtkOB5ahxTvHNK+QGutYhJbP6khB1e0hZ+odp2te83hrqaINxM6hqx4DoRpctRpQmL2MS6kkNIofRIsZi9OVVjSVvRTsMKihfWHogsOLZxoLjfE8sJXbuuTz84FVdXzTLLlvEx+Vwsckes1xs2gdJ40+Y1KFmAwp63VtUB4K3oJ3VCyNDYrtKFAnS+4N7Vi5PwpviuPxcUdTDP/J5gG2ZD4skfN3X4NmhbdaSOqdn4dwbddm9v8ZZiTHvJFwxgMeYzJiZ6A1vFrRitGKjYzgAV/BhLmhQ+bP+yt8/MQPLeMQOd2cKiAqVo6nSt71DDmSRVg3ns57GhswMzArVy2kSlVTQaYNmMcn3PpKmWAKHdtRnfi+qLycjcqJQYyWjwEYQ3GGUCsntyP1MJLGyPnQU0R4YOHEGU7Dgq+slnRWTyKC7gOr0cK4q5QpU+Ks6Rgl0nqHd4UUE8umoxkjw8uEKYl6vEQ6Sxx2kAuN6/RBbiulaRHvlPQLLE/WxFqRWNjcuwfLjtgf8M4wDgML46i+5YaepgtMU8/tEKlELepqLMtVQ61CWHiC8UwlY9vC0cbw9rsn8LIwysT9h0fcXm3ZHQq2GhaNYdF6aokYMcSxzujtQttVTo9htdDESn+IrBdrEEfBcJgK4xAZtj1SMs4X2s6TPZRYOPWeLz+6z7Tv+dHn5wy5YLyA1VbSOwKqlIJ4XQ3cDZtjqfgs3Js8j/rK0nZcrzyLd19n/dZrnP/B++z2Oy6D8PjdNwjLlj/7oz8l9MLSGlqTWRjDW+sTvBjO+z1Lt+SpL7h3HlJL5uajT1lm7XCS20g/jYQp0Y2GJ2VH1zYcLLz1q79AXJ7y/OoWUw8MF884/Ohj3qiOqR+YvOOzacc0FQUImoJ7BYJTX83SewWqAY0xHAE3Y6J0LdmB1IzgKKUiuWJSVnNuE9T5P8ed78QXqaDWb4vMfJu74jTrKs57Qq6YlDDGzaY7ebWqKkV7R7zVk1uqmVJH6sbr0FJ0nZOlYmvVJlk9YOIrLEIgF+gaIS4gZzPHpi3Be9oQCHdeL6fPb+c12mlnDpM3ZvYtgK6E1KxoRWsAsOpJkztvCzInW3UgsqbOcVP9PlvUgFjmwUVENPYpWdUta/EGKIIQdbVUDa4ImMD48VPy81tu7jVslhsYha5REzAOlrNy1HbgnedsueLR8YbjZYMZRurtQHcQTnYjy0/PMdsRdz0hNwfKGKk5UZOAzBkwb7jIiWwM753c557tWAYPtZIL5ASrtecsdPgCOWWSUQMzVWiq0LUNRSr7caBPEzUnjIHgHY0NLBcLVoslToQcJ0SEISbGkhlqRmbmUqqVXRyxufL66QNaG1QZmJWpEMLMYnGaMLH8uDhzZv5QhGzhduzxxrFarEg5s58OQKbzS6pzSI7kWliEhiiGJ+NAZ1W9KXMvlDW6PnbWkaXMP11PqlpEunKeYA17UYO3LWlu9obGNfR5IhvLUCrBCh5DX+aByFraNNI2Dqyn9YHSWCTBqg28yRp3yLxlPD/vHKZ1PDOO3x63/G5/4EXVVJNLyrkKGPJoZk9eVvaKBXGGnkojBWMtU67UKKyz4bVseM80vBcaHthAHHp2KTOK0FPYvfc2t6+dkgNI4sdRZ6OdSMZrD5Q1lorFOA9z55Bx6u0EQ3WzKRe9JqzePrMfx1NLoRrltcyTokJY/wofP/FDi+Bol0uyh1UutLuRuO9prOW06Vg1HiOKbJ9yZaxZYVLzwSoYQ1i3DA+X7HIkYnmJYVeryn9mpliK0jGN8frDmxkERmCdhTPjCFY7aT5KI9VZ/sbxPVYW/ux2y750eN8QXKCiPT+gYJ59qcg0ca/rKDnjQpgr2g3FFZxkpv2ACY7u/jH2aIn1Qli0r9gBtglU20KGOiRcVZm3SgZjWKzW9PsDKU5kyVxdXzONke2hxzWWs/snPDlPZCIiwmEYWPk1VewMV9WWWBc8YQPf+NoZDx95DhcH1qcLlquWpy+uiLHFVMfxokFSolkbxCc65zV10zRUEsuFoW0spSSNJTuDzG24+9seKZZYIk1raJcdYmGMQgO8c3/NqjF87+MLbqeI9dD5MBvF5hukzuqK5mS0n6aqn+O0BB4O2uPzucv41x9x8uZrTE+vOP/gI0ZTmFrDQQo/9eYXeP7nTxDZK9LbGtZtQ+sbXpSJZbMijBHefh05PmJ6es7q4pbHxnBkhDyN9PuBMmSe3wwMeE7XS5Y/9yWOvv41Prs9sN3teM2PfPqHf8LZmKEfMU740BSe9iM2GH2ji3biOGMIOIKBTgwdMCLsYsRLZb/dUx48UDOmyOzTUD+AsyiPxWh7uHog/KvuIWccUtRcd1f9p0YYTQmIEY1LVx1grIEqFlfnz0lqBnROe3TwUG1BVl5XOgaK0ai5fkmGWua6gfml0riGJlja1lOyw2ZVy1zTzusThw+G4CF4gzNVSzCNI8xVGX5ODRmj3TfeelWEHBQzr1bMnY1lXiMafcSqCKpNzdYqfI/50HL3QA+1Mnk9mXrRgRkHJt1JOQ5vhI0NnGwe8Ic1Y0/PyKWwEFi2jocnJxwvl5Aq+6cvyRdbNnXBZhdYXveE/gbZ9ZghYlOlpKQrlVJxGFrNRiMuYIN2aBUqL2skI7y5PuFBs2RhvAL5qqHkiC1FwwQ16X0hs4dIdGhqg2XMiTFGhmmiiPomGh9YdQsWtqHxDSZriWHOScF4tbxSMKxXVbtkXTPfXx2xcS056SqulEIIc+mhaHFmFVUN7/D9c5SNYoU+jlALx6tjnLEcpj25JJZdg7NWn6lFyxhdCDyLIxdx4uvrld73dl7tUzURZtUI7Y2uFqdamIrQWlh6x1mwbFMizT6XLJXOt0QyeykUb/E105igSnzOer0NGWzlsTuicwFvhWR1dXo2D3n7aSQj9Bm+UIX/tDnjb3Rrvj8d+KxmDkS6DpqFYcyel/vElA0xq5KOCC2WBZYz4ziTwEMPD5qWkxC0hDFlbmMklztAopAXgfKFR+RFo2u4OfGj6yEzAxSZ10061Mdq9bp26m9SQ7T+isbZ2fOCKi3ocKimdTMzcVTd1ufLf0+R5/+hffjQYXyDlMzpNHJ8s+fINqw3La31WKmkkhmr9v3U2d+iJyrBBAMP11x2lXioTKHlKhbGuZgtS9WiuaI7R/1Bz30lBoIYzsbCG3h8YxmnPYsqvBka3lq0SDE8CAdsyoofn1MMyp/4MZU01kyxhoUJjBV9wAjUUmiSoTEOWa+R0CBYmuBoNwstuZKMXyyosxZ3B02SPD+cjMF6y+3FJWG5IA6RmiFj2I0j3cJze3nFdntQKTYlpmmiaQIsFOyUY6HWQlhZjo4t3/7ZhxzOn3FFIhxbbBCevLwhJkPxmS++c8qqqYRO6MUyWrBtwM6pmzYUgis46zUxFCPWGMbJcnUl7MeRaCPro4Wa0ZJgTeFkueT+2RmfnV9zfjsQbWXhlPVRUlS6qr0z+c1msHlt4aplk+CNwXK/dxy847Y1vPf4Af2TKy7+6H198B4t+Pp7b1Ik84f/9J9j9pGVh3XoCNayCp6rPBKKcK9YzGvH7L/8JodUGZ9ccFQFXzMpZQ79wH430W8nEo5LA9Nxwy/9xi/TL07pd1dsbOT6T/+U1fNbFqlgJfOssfzJ9ZYJi19aTEk4dGgwM9SuzmqLMxAR+mpYGkM/DAz7AbvpkCxUm+Z0ELPRVk2lpgZmEhWS0aFjjlvOrDoqoqkLqTijmG4jGVNVsXE2UIvXFm2nHBVNBaH9R0ZXVSwarLPa/iqC8+Dr7GFotHOoZH2hOauntxCEReNoFoZUCyZoI3BoLN4bQjAEp94SZ4TGhznq7Gejrv5a1hgcbkYV1Pnr1MG2lh+vgtTG4zCS1aw/s2IMlZrLnEaanwlYNoPQVUttDAdXGCSTDYxOX4iIZR0Dw7NL6umah198F77753xhcry2FbpPXtIkKIees92A3av51FXtIbtDY2h8VPkrNnTYVpvirdWkYBI1phaEnRSeT5HVcsVJs1Com3FkMrUULbHMieIsCWi8DiB29uZ4KwzjxDAlpjSon8P72VvTsG4XtK5BqhBjnFH7qlpjLW3w2snlHWNVuvGRb7m3WOML2OAoVYsBSymvkqopJZx3SNRDk52Tb4nKvkQOaeJ0uWbpAzElDnEiWE8TGpz1jCmRcmbRqML4tEyMBo5Rb5G3TinJ6PquihKIvVNFsYqwrwXrHPdty5lPHIojmsptLURTWQosbeBliboWBAbU32NM5VAjBU+dJkIYscbTzhgCasKUSmsd+1xIFGoWdjUyDJlFsPxC8PxK2Gj6a4pQBOcdLCxTgGHKjLmS0SLKhjnqXjJD1u6vz8vEVCsDhUhVyq8xnDhLd7xmenRMbAI2BbQ5W9eBd1A/LbWcjelee7g0STSvjY0+JxxwF8N7xVJCP68aXaMxJ4+8UTt1lX+3HgIgdAuMcficuHeIvF4sR+sjbUZFCaulGKa5LbaZne2gPyyzaKiPTznUSizCvg30Q0GMw0l5BRcy6K5e0L1vMwN5DJaHCRZZJ8xlt+BnN2d8coh8ujtwjeXML/jS8YZmhoFhVIBPVRWcRhR13qdE23Xku5tqjAQfaExg1QV2uWKsJ7iW4AP4CbL+GfAW4xuKWKacMU149SKo3tL3e+Kwx3htsa1SOUwjhzyxlEDuI20R/R70I4IwpUgsnkVoMGiU1eJ49PCMhw9WfHJhmYDTI4+YysXViLGOnAdON4ajI4vrhN1V5CYKpfVYH2iCZ7UxGJt1Mq+GfkysVisurhKH0XEYBryDxlvsnJbZtJ4Hx0dc7iY+fH7DWA1N43BeT43OGry3yuEQmXkjMq8SBOctq2Q4PWTCBBdeOLp3jyPb8dH33me7PfCCTNd1vDx/zv3NhjYmAnDUdoTZEKFpM8fbYjlp4Om7D5hOjtm/vGZ/u6eSGeJA2kXKbuK6j8SsJ/66cHzxN34J8/gtbg4FRyZsX7J9/wPOChAHDt7yR/ueYawsN54DOnS4Obp7Z5KNVZSzMEu2jfUEWzmUgX5MmI2B+YRkjQ4g+q2cz0elIjEhqLfCMCdmsNjgqUWI1ehpC5V6A+Akw5Sp1WGNrm6suWswd0w5qc/KqRkP77Fdg3HgjWifkID4mUZa1fDrgpphrYPgDK2blaVGCALGB6y3SsOdawUaZ3Q4NULrvR4wrLaHq8JiZj8Ar6BkUi2vbkTQ39M02i1kBMFpOeCcWNF0+PxyM0LbZ47/8BPevqocLdYMrnK7Mdy8d8LVynJtJ3BClxrSX3zI+P0PMbbw4nf/nG++3HIie5xx2KL8C1uSqj5W2T/eGpr1CqhzA/U8ZM3+rFIqk6hfz1k9CVsHQxWe9wMmdGzCks56rLFkI8RayPOgoSmlwGa5xFrLEEc2QT11h7HnMEVSqRijXWTrtmPRBrqmoQmBaRrJuerqmUquGec93vtXZs4KpFQwAmfLNZ33BK9Fis4q1iGXCe/8TEZvsN4zjsrycNbpMCTC7XigbRpWTQul0veDqg1NQ9u2TDETU8J7T9sGrtLEeU6E4FmawOgEyXVOAenwXkRfoqXWWZFWj8ahZFbTxKZ1POo6bnKmR70aVQpL41jbQMyJ7Cw9GYelE6t+vJzps7ZVp6lwtlqxCR7feFKMWG+x3hKHkSjaTJ2k0JeKTBnLpD1h+nrB2wJYqhFqyYhURskkKtko/bYIpAqjqQxG2AtMUnG6rEGAnfE8OFsznawJoaEq+U2Tp6I+uTtOv0HTVKVmBVSWef6wDnGqvBqZzcCzWf3O/17vdr12Vrg1Mz0/f/5qHz/xQ0uzWGCMsCqV+xMc2UDXWEotMzwLfUnPESyPvVtMg3WEow3D0YoxJnpjuKxwiJXMnKIQh0hVE+MsE1vAVN3rmVp4NCVaHC4XXUF5z630fDgmfr/f87gJvH684c3g8F4vpRyVZmtnX8CEYUwFWjV8OQy7w5YHy47GGExKjFNk4WEcD4z7kW52jb/qkTGekislJuyrvbF+Hw67Hd4LJY5UYzBzdLdtAqMRXKmctC231zfUIeE7+ypqt7CWt08WvLi5YTQZbAapFOO5HPe8efwaV9cHrq4y1q6o445FYxHJeNsw9je4Yii1MGX1EzSNI5fMGEdyKrTWYYrjxbNbXAYzDSy7oH6KqlP+ZrkACk+ev2ScIjYYWu/nqq+Kc4ausYjVdaBhjqaW2RAJPNxVTneQTWXhDPdONzz74GNubm55UkbOTeYLqyUyRD7/0VMWGe1Fcp4aI51zuFR4Z7nmnhE+X2RevHOPsWSefvYZu5tbVjEyDSNX+4FwiEy5kIxn5Qyv//QXefwLv8APr0emuOON08DLf/MjjkahSRPeOP48Jc4PkbPjNaOfkEleGWbn5+4r4FkwlpVxLKoqilIywehDxRhU2iUgklUWF6u7ZcMMNqsQ9YRPuFt9gqDxVGVcBKxaJlQpLJmmGEpR47O1onA0Y+YuJm0TrqL3nVSwocF4gytaM1BF/RM16IMulwKJV4C4xlnEg28tE7qWVR7L7GVxRhECTl/y1mipnjNWE0ZmbgKu5pUhWyyUqiuHeVuIQSm3GB0NSkkUo6dzBWoZqph57SiEaaL+k+/wrcOSbzx+h+7+GXkZ2L4454f//FOmt+4xfOmM9/2BIo7t9z+imSZeXL3ga4sNfkoU4/Des3BBQXlGScrOWO1/Mer5yVl5L9q6jpY8zr6Bxig8z1slTycP23HgIIaz0LGy4VUScaqFVCs5JWqMHDct97oFJ82C/dDjsDjv2R4O3EwHSik46zhqF5x0K46aDmvAe880TsQYAYvJ81DpNRHpmFk21jDlxDCNLEKjUejgFc1vDCXPvBzniSlrMEGU0aK+JIdYXTdt44gYOF4u8c6Q4kTJmc6FOdnkiWVCMHRtS6ZwOU1cSOXtpiUYR5JEKkU5P2jpZhZDFIsTNfBjFWg3FGGwkVVtOfEdrzWJXdWV0FAiG7/kxLVcVx3arDUa0UdYiP5zMsLFOFCmzJgjD1Yr1l2LbwMyZU5WKyRXbqaRfEdflrlSBoVs3jFpZL5Gs6jBNc8pqiiVOHtNClWrC+ZV8dpYNr7lLDQ4sVzXyAWR/O5r7NdLQobs9KAsopJqwQKWWjRpqUReSy7z6rPOdFyZByGNLykd+m5tLPp+vEvhgcFVQAquVpj+e4LL/Q/twwSP2MJprpweoj60qgHnySm+qi4HxRzfPcyt0/hzvbfmGjWQ7ZuGZ7ME58RRzJw2EnM3PBJm2mYzI2yPY+a9ydAaT+l7LvfX/OnVJT9IkRdJuJaKqZmxiKaP7qKlaAturarmJCpjSSRpVfqdeQRDqSpnxoothrYJxJtr6naiLjqMqdicsUUU2laEnJN6WSpgdCBI08RqtWI/Tez3ewSh8w1L6ymmIhZiMYqZtp6mGGIsTFSG3PPT77zBsql8MF1rc29J7MaRbeo5ubfmk0+v6Qd11TcitK2+/GLOrNbHWHtFTRnbwLJtCLYQbMNQCyIGaxbcXjh217qv7VrHaDMxVWwVFq6hbTqut1uudjtKhU1oaL2Ww4lUQmdwQeYeHqMn51kOtmK5fxDeuNBBNLWOk/WaZdvw8qNzXo4T/cJztFrw8vlLHoY1fhK6KjirJ9QgYErh9XbBiXie24mLr75Gev0ew6cXxMsd+5uBfYwMh5FtnzgWy3VNZJNZPrrHV//2b3CJI6aex/c7+g++h3nygjWGUCrnJvDBfsvxuqPbBPaHSY2yf3lomT/KLK0HY2mlEqWwr4UFcGoNphY9PloLuFkpUDe/Gh91eDe5QipIKEjrMZ0m48QaitEoLtWSjCEh2FKRon6Gwqxq/SU4lanmFQ/FOEuWrHh2p9f1XW+TdXNZoxEt1nO6frXRYJk9Mc5iWkvF4b2qKlriqT1SwaiHQgwzfM7phHpnrhU/dxfdwSENVfKrtcQrnotRqmjRLnZEBfDZIKz3baVgf/SMxx9dcv94RdwfSClzO+1J/QiXW55+9wM2rz/gr//6z/HhOHJxNfBsu6XkyhfaFYuqX1s1hlTmdJfVP0vmx1J7Fv0z645O1HNiZmib0VO4M2ZeGVrOp4Enw0C32rBoGk0pzqfimtUEX+PE6bLFW3i6vSKXomubuWRwO/aUWulc4Khdcn91xMLPB4dcOcRJ6djiKI3D+EJgTnLNA5SIAuR204CtwvFiRdd2lJy4K6ZMSY3jxszoeGYPWph/Vkabt7d5YphGzpZrVkb/XR+1eHDZdnShYciJnDNujsIfYuJcCgfJPLItAfUcudkUao36O5KBfq5wcbVQTWGqGWM9QxHGHDh1hjeWa67LRM7Kq5pqoZ0HzqEkCpqgq0bX8sFo2Wi0sDMZmfZkKZzmBadtR9sEnPW0Jw0nKXJII7s0cptHdiUxVl1T+spMuQVQTxHz2szPfqYyX8DOBpyHpfWsXcORMax9Q+caELiSgT9aLdh++W32IeBED90eOzOWQKr6gpSwm3VtK069LaIqVS3gqnrTynyHWDFQirJ5ZPbDgKbAjCEILGJmGSfCof8rvdN/4ocWrMFROUuVzSRI0ZdWMlWNZHcUXGZR/G53Vyth0TE9XNM7oTjL3ntu+kkrv8t8KpU7INWccgCloc6fc9qPvB6hdo4hjuzGyK5WzlOmF8cay6NqWc0kT2sscZ6k45TUy8FcmGZEjVZoJDNVdeQvq+CygWSxeIbrLWmrXIDGa4eOEYMlzCV5SWFaRtH7NRVKTLBsGcaeaYocctKIoHWUacDiuBkGeiksqnCMY5sKfazs2soHTy+oHRjnsCSQyn4YWZ8u8Z3ng4/OqbJhOkyctI7FwnFII/2h8OGTkdtDZiGBFcJRaEipx9TIsDvg7JL92LG9DIS8RGoPDdogXCpL29C6hsN+4OLqRrk2wdO2BuvuzH+OpoH5bqOK3lRmHjrbsfL6S0HGxP5BYBU9Zw/fZH9z4OXzl2xzpX18xnrVkGXHdLHnfrW0tVBLoRR9QSyblrUPbKeBF49a4juvwVRITy84uh3ZDoltKZxPmV3K+LktfGwsX/xbv8zi3Xfpt8I7jz1u+5SLP/4TXp8qPmYG5/hov2cdAovTFaPNs4Xu1ZyryPF59VUc9GjTbTVCJ5rumqisrLJPjGhZppoz5jVP47HNrIzIjOyvAlkbuk2pmNZirHu1965FT6ciIClRYtJSNwvGM79sdAiQWqmlkHLGhkA2VcFwaHz4bsVlbJ2VFUOZYY93xNKKntizV3WnEfWoaCttwFmLc/oyEgrW6tBiZuXBzPgAo8dATZJhqJS5FFdXSKK8a2VOyN0KphCMrqRWReiKYVEd6ek1h3/1I77kljhnOUwj5WbL7e0V59dXvNjteHJzhX/+lO1izfVyxacXl5zHA71U4jSxTRP7IsTgeGhbNgRNhKEm5FTzfOLW060T+0rJsFZhlW4+MHmUA9IbeNH3jI3nXtPRzLEqMVZftrXoelt0HVhLZR1agnVMKXHd79hPI8YaVr7luFtxb3XEwqtiHefn0FQrh0dHNL/2CzTLJYd//YccP7vElIyZ8fqFyqFkDjlzulzQ+jCrVHodxhixztM0DSklrDXknLDWM06DPm+x9JK5nnrW3YKzsMBi6ONEyYVV07HqFqpyxKgJliYwlMghRa6k0hnHIxN0UJk7xzxay1AFYi1MCGOZ6ybIlPk5PxVhlzNLl1l3Le+2K/qcuEEYKDTiWFn/yn6QDEzM6hfqp6MWRgoL39KnjGGk1MKm61h5/d57Y9g0Da/JEakW9iWymya2eWJfIkPVNVCt8kodDGamQaNpwdYHHaLmQUpXghCBiGWfJlIpLL/4Ni9PTwgWMIU6r8ysmw9DVe8OM9dTaFzfg2SoZe63Ek1bV71fvEAngisZPyc0rffUtkVQL1kolXWC1Zgw4/hXeqX/5A8tzrEuqrJIqnNfjTDlSCyZIWlSwOv6Tneud6eosxXDaUei0tvKpRjinLRQgNwcA71L+swnMmutEgCT4X4/cNIeE5YdedWSrjLLqubGvRQ1S+Jp5xRGNZBKoR8jfT8SU2JhLJOxYB1jrlr0Zg2tCUwxwTAgMas5slbKvsfkiKmGYALiBBMawCHThEyJ6h3VWwRLLoUyG/diifrCq4ZdSmynidZbxlSIqWoyQSpDiUzG4HEQAp+OGUrEbxyblSNT2d70PH5tw/n1ls8vetzimKEf+Kl3jplqYnc7QOPw3tI4eOg0eeDKmucvEsvlxKbd0O8gxoY4GYZY2Q4DOMvCNmAri6DliOfProixsl51tJ22kcZUsA5cE1TyL3VGWFa8mQ25sfBoazi+SKRjjwU21dO4hqc/+IjbYaKnMn7+nLRYcJIKq3FiocI5w5jAGVoxrMVDKci6pf3iawwuMD2/ZrNPdN6y6+ByN3EbJ8YKxRlOm4azn36b17/9DZ7fRuo0sGwMn/7udzg639PtI8bDhzXiveXNN064ZKKO+nVYM+O10Z+/tbq6KyJMxWCl4rEsBHqBFkvrVF0xAtj646HHOegaHSLqHFv0BjKaHrJ6vKu5UhtDkVkNlIKpgisWk0ZNrhQ9VVIc1WWs8+Siw32pQkpZ+7l8hcZhXJmHSKu9UGU2uc8JFoObqbZac0+thBnz7o0OK8Z6fRg6p0Z6I2B0ILL2bn9e/1I9wdwZJoaaM9VUXR2KSuAaw6x4C+tsWVfDqTgejsJxFOphwA4Tw8UNP/i9P+YLN4nN6UZ//ZK5ubni9uaKw2FHHHs6A5uH91m99Zgf/vAT9nGkpxBFD1M68utLvvGeznn1E6DrEalVlVL9aaEvwIxzOsSJ114pr9ZirLHsYuSmWE6XHUe+mePelVItUQrJVHyMbLxn03UsQ4tUGFPkfHtNLGoyXoWO++sjlo2+VGMsHGRidIH+rYe4X/9FHv7Nv8E4WJqTI07/F/9Lrn/7n7L7B/+IB89ucFUH5mGMtK5hs+woc8ImCaRS1bztVJFxzs01EY44JTACwbKdRi4PWy1UdTrU5SpMU6SzjnUXaLxjnxOpCr5tSFS208hWMs/TxLH38zCCGlqNw1bteIsCg1QilclYEgYxCv0pVJJoBPqQI4vkeBCWPGgT+/Ggq7icsB5aNxs1RJhK0Xi10/Vnax19qeyq1jaYmiFquEPEcNwu8K4hDuOslljOwoqzbkUFppoZaiLVOgcr7g6zbg6S2PnnP98D80FGbQJ6MEhZe9+uGkv51leoXceyZJLXIa74O9attrkzG5MxBk/FiLCai2FdBZ8LtmZWYmkKuJIJZMQWxU24liwdYj3FgZfKMgnHY6GdKmP+yzrxf/fHT/zQUoxwUmDZZ+I06c6vVmJOTCVTijIjrLv7IWsniQsWHh5xcIFBEpdzGV1MajgyXgcWPY3NMrx1BOepRsA7Frnni31hfbKmOEd3vOZsv+TB3tOKcKCyE2G0ENowF0iplFpKeSXN2ZneGUtgrJXGJSyBxhnFZVcdnXJVGX+8vMVbR3WG5NVANWDxYuaElEZdZXZpTSUziZCtw1RLykU/r1Z88KyPOs7PL8FB13qiSUzoWqBpA13rIQjSNTRd5M23jqhSKCVx9nDDB59dsh88q2CpdeT4/j3Or28wRlj4FdubLSE6YhxxdkkVy83NwGHac/zWfUrJSGnox5HdOIHVk4R30JnAumm5vNlyGAf9MxWQ6vQFVHWXW5yuAY3RdVqD1eFChOMBXnuZWYfA4aylvUmsfcvFsxecX92QGw95ogw9roJNmVaP4wzVMBmLmTIPQ0NbhSiG/nRJ//oxWSrT9Zbc9+ScWQImF7xYjhwMpXD26Ihf+zv/I+rilHE38WgVuP7T7+B/+AlHh0ywnicyMiK89c0v8NH+Ct8zv8z58arF6LVz989WhJgrUoU1lrWFl1JwWBrRlxt3qoY6PalNg2laXQ25OoMv1Zx41zdk5kZBKZVYCqkIpgglVUpjMFPWlZsPr3wrvgpQkKo4/ylXUhEsCdt5pDGvTK3K3xCcOK3JqAaKFmw6cXijKyPjFFxX5t2sd14BWMbg7cyGQCsE7uByqkJ5lMmkPgC58wfUO3ia0dWaqSxiZd0PtBfX2E/Paa53PDg65c2zh4Qs3Lx8yWG/J8bIWTEsl0tksaAaw+Xzc/b7PVNSBSBgebA6pX38NhefX/Dk4485KYaDtWSjxtnWGBpjWRrPKrTa8Dx3FeVSmEomlzLXDqjnLXjLsmle9Sl5a/FoyeiNRH60f8nQBR6EFjdfHzJ/fUOZsCXzYLFmt7vh5e6G+6t7xJjZ9VuqqbTOc+w77h+fENoWl4VtGtluOvxXfpH2V3+Fo9N77L//I87/d38PPn8G6zXtb/4ip3/377C/OnD4+/8PXKnsY0KkcNqtVI32gXGaZkaTrqzu4s45J2pV6m3JQtN4pjRxOfaMOfFwvWYZPGKEFDOI0LUdbasdNjlpyqt6y27YM6TELniuJPOGa/GigYq7FnaLJrEKMGHYS8GJIYr26hSBiUovGVccjSt0OXGyWPKF5RG7lLgphWyNFqZaDSCI6NpxpOBKZT332QVjGUrEiiBWYY2xFHLRwWXTtoTVEsmZNMVX/VMOwxJLK+EVkM3MSlXOMm8MIAnUuZqi5Ep1czjEQa6ZnSQubCJ9++u0r7/Jvag+tFgNUQxjcPprGKfxd6mEUvA4WuNoC6wwNAJOVLFKVEIRFjHS7fY0JWIDDG2gD54pFWqMNM7QlcoiZRZxxKaRcvirWXF/4ocWYy1nfSTcDqSYOJD1RqiFNE+w3nuCs3rhGi1Ta5Ydh7MVvXFMprLLlX2uSHYzI2A2JNaZzWAt1RmqnXeKufJgiLyXjJJcG0PeC0OpdMdLuv2OY3GsrOE117Ix84lBZDbX1Vm5UeNhHCfEBRZePTqdWKxUYkxz46maxuT2QH25xfuABA9dQ7tckX1LLDDlOD+0VHEQ0ZXTJKIqDo4pDirVTiPrZcdy1WK9NvVGm6Gz1GwVyz6TcMVnioFH99Z84c0zxmFgs2lxvvLsyS1l9EQ7cX/TsGozh/3A8sEZn1+NfPZs4LSe0kYh4Aku0IYNY4l8djmRhoa1Mxz6W2ihbQK5VLIIC98yTpGL62tiyfjQ4PxfJpgarPHUok5252aw2EwCC1m4d1tZ3EbSGx1t61mOCdcKz86fah/KesVps4bnF4RxoilKTR5s5rYICccZluPQ4kvmymUObx0xdg3T51f4ZzfIdmQaI5sK7SSsLTw4WbMdJ37qb/8q4e03eHEzsLKWcn3J7R/8GW8fMiEXptZxJYWv/dzX+LBN3J5PrArUnF+lSu4GFf7S2q9Yw8EWkoVQofGGcRISSpitpYCf+SOzRE/jEXeXFJqf5HfnLWdmsqX+P0aUCJpKJVQt5hMRrYpImUpC0PRFqVCqJaXKkDMxZ2pRJkYxaGlaKVSxM6FWd+RUXd9YsSAzCwgdWqxVI594rykpq0wNa1VBmsOk8/++sttq67KAtQ4/12hoNLgoCTgXNklY3m65d35J8/SccL3jUbdk2R0hU+HlDz/i6uqGJy+fcXNzw9QfeO/hQ7r1EYdDz243cHt9w34amGqkL5EkwoM338R+8+vcfvaM//jv/s/4k//s7xNvXuCLSutLq4PXkW/wGF09SiWlRJ2N86qkWJahYREaWh9w1r0qIdTnnmGUwke7a24kcerWLEPzqt1bgFQTVoSHruG+BCqezeaEoY8cxgksLJ3ndLHidHNEQ8e+em7efYPml77N6u13uX16zst/+NssP/uck3EkyEg1hTLA4f/+nO4b7zFiWc0K9Zgzq27Byjk631CtKsw5Z5xzxKj9YdM0vVIPSq5Y69lNI/sYGafE8WLJUWgJ1s7clkwTGrquw1rLFLUgNoRAXyb6nKjOcsgVK4YHzuNE5tSdpXXq6SpUYoXJGCZr6ankedWGqSQRkoOEYRRhkEpXM6eh5b3VMX++vyFJwZRKYzwLH5hyItfCZJT70hlHlaIrExvIVZU2VyFTMHH2yJTEuus09de1UIWctMuroh0/hnlANwbbOsqs/qsxe/7LKDRwKoVtmrgaBm6mkScysfrme7z+8z/DNBTul4MyZ4wliWWswrZC7w3ZWVq/ZGEMnQ0sXcPKNzRiIWbKMOmKuGQwldAmltHSXt1i94m2c9gVeJ+ortIJbIqwGCZC7JEyUP9qPtyf/KFlReZ0jNQhMlRFSavBTQjBa/voHCUM1lCdnkJZd0yrjt5mblLm5QSjOKKZEwZVNDY5kxmNET21OoNxeoK8tztwr4A3gWqF3La8v9/xZIw8WCxx08S6WfDN9TFH7dw+XAoyl5s5N0dycYwFYhU2InjXkIvm8MeSGaeJZDxDTsTLK2Q7gLeaQjja4O+vMdZQohBjQpyh5IxpPBI8SQxRHLXoOgALNhhWC1guDU1jCU5lxdC2gCFSKLkQp0Qi4zuHsZmTe57NuoMifPWrj/nk2ZaL5wcw9zgc9rz13oIcBw7TRKiVH358y9R7Xm87+lzplmuadkEdHB8+GZEsfP2tt5HWMJZIMoUiBVuFlQ+0zvL8Ys+U1A/hnaL5uHsRzyfo+aeFMUXXaNnQSGad4exG8OIoa4vZZcJoebm95iYeaE9XlLDg4uUVK7FsamYhjoLGFw+ie+svNUuWNXO6WsM7p9y8dZ/DIWOeX7K+PtAPIzUWTBGOrOfsG+9gMnz5nYf87N/8VT67jRz6PYsjy7M/+g73zwe6SZtRP04DZ1/9Mvbd13n+nT/GC9jW4Qbdwd8lhizaLnxX+Gms0FeLFcPGOY69B5TgEtyr+UapuM4gYTZnzvFdY90rFVHc3XV+Nxxp1HK0c1WAKXiZ0fijqAKTCs4bfdgnQyyRIkK8S72IFtSlrKulWg0lC1I1kZPwJJm7t6tF6l2lPczUKx1QZoK08bPh1s4FiFWwc6kbwitFBXiVirBS1dg6R+t9rhwfelafPuPo83N4fsHtds/j+/c5399yefkB4zAwDAPb/Z7dYaDWwsP1BieKdj/EkauLLZdjz1ASqcAwDRyd3Sd/8V0W732Zb33lGzz93X/JaYIxRo5NoJFK4xrutYFj6ykpaZ1I1UZpqZXWuJmL0rJwjq7RqoUi86LL6JVejXA+DXw+JlzbsWoCTnSwq5LJkjXKXeFkvaD2IyvfcL3fEWOmtYauazler9l0R+zXG9LPfJPmZ75FHQvn//r7lL//2xzfXvHITHiK9kaZqsOrtbQyYm1m3O2oJPqcaL3npF0Suo6YCzlF9WDMRvK2VSZTnWm4GIOUiamM9HViG0dOlgvOQoM3XlfaaVJfU1BcAjB35hiGlLkZB1LOGN/yIu1ZGM+ZCWrYFj14tkZI1tAnYTBwqIaxOLLNPJzXq9XAVC1BFBI61syQDC2GZmF5bdGyTS0fjQei9bR3ELVZQdfYtGFE6KzeQl6g2HmMtBbnnQ49wNXY06fIpl3QeR1Og1MYas6JMhf9xjgBc7Fhndc3Xgt4nVPFrWkcNWWQwjQabiXSnK344le+StwWkh9AppnH44lJGE2j34fOsds00K3plh3rds3SdnQSCKViU2ZcTAz7HbLvwRuyKXSjZRkSNW8xY1LPm69gEotU6DIsp4ifBqRMxLs+o3/Lx0/80HI/FsJtT45JC8v0sIjzOl0vfEPn/dxPKFoM5RzpbMPWw5gze7vgZTqQo8EmjXxhgFJerXOMMbg5ImaANkYWN7dsFmewbJA44cVxslrwr29u+fLRQ75xFMgxs0nKshDMKwIk6IP1TgoWA8kodTdnTYR0YtnWREwV5wsyRW4/e46JeY76FczxitJoEqo/HBiGERsCuKAnFMnsxoEkhTgNxJTZjYnbaUK8YbluwTLzTiwmG2ItWFN46A1vrpe82N0wNWsW9yzvvHtE20yUJAz9xG4rHHqnMeMkNF2HDyObRYex0O8Ti7LkuF2y3e9ZrY8xvmEoBWM83gaCW1GNo58qOerKzIll3XQchp5hGvHeaKzWVpjrGNTH4F59LxEoMekDUrRk7X5vWE4VOe2IDo7PM+OQeJYislliXMO47Qn9xKYKx7ORbSiZ3ij07KEVXmvgdWtpNy37RyecJ5j+9DPevNwRxgRFWIhwyIkvvXGfL/3Cz/IX73/AV3/9r7OvLS9vX3B8VJk+/hGLv/iQMAxQHJ/5TPetL/H4577F5y+fEl/c0vmAN56ShSKGatXhao1jxtm+GlqyVd/GY++45wxLlOR6Bz8EVTS06Vjx4livMooIMkctjdWHH85hg0GcRuXVw65KhiLVE2ZMlFhJqRBCp8ZbIBV9sYrIbP5FOUkAs2JTi0bYdUCZY5LzsGHmOK8xSt/1VmOYxtj567XzumtOJ82pm788tJRSXq0gBKjVUykspLC57qkffMTy2TlN3/Ps+QumfuRstebDzz/jR59/TOwHFs6/6kayWBbO8WC5JI4Dz0vkNo68uNlxmyfEGGI1HPmO5vQBi5/+JoOr/N7f+3u88ewlUjVxcz94ulJZNo7WWWrWdncLSFGeSXCeZdPSeKd0X/9jgqidr3nn1EB8HSM/2G7ZN45N2yDGUcRArlQjZNEI77oUOhFeDHsOaSKnTOs8R5sjuuNjwmuvM/zKr5Fee5Pdn32f3f/pH2D7W0zcczL0LH2AxpOON8S+ZzVMumITTVsZ7zC3A7s04mrlbL2hbRtK1XWX955pmnSl55XJIiI0TaPMGANZCskZrvsBQ2VlPZ1rMM68Mp23TUPn1YCda0GsJc0ppSFNeOc4mMp5mTgznrWZ02dGr/1gHTZro3auWX9PhAz0c8fciMaIo2iSayyVnkJThWWqHNmGryyP2ZfEy5xR3I/F24ATYayRbHRAjmJojfqOwvz9ijUrfsE4cilkW9QQXDLeeVZNy5FrFIrqLM6roVUV8zqvYfXa987jjLzqR9pNkdsUuZpGXsQDNJ5vvvMlVhHGXWL02tLeWLCpICljUmLwnhtvWdYV1a9pFkesOh1amqIYD2MLnUt4aZk4UGLE1gnvMtYFnHjcpKiN2haKrayGieN+ZDFFTEokU149q/9tHz/5Q8uQCLsRM69wMHqRdy6wdJ6lb2lDgLknwhhDDIbDyZKtFaYKt1iGpBwWMQV7t7pxuv8UAKNwMDtHJI6GSNhtGbs1L29u2N875uirX2fTjpSLc56nkWO35OmmYXOz5VsOkEqewUN3D2qROw8GTCJILYiHIoVj2xIMpFRVJRoj/csrWmc5uECxGt3OMZL6iezAhYBbNYpPH1SGvLq9xbYNo/FsJfPZ9TU3Q6VpAqFpqWRySRgrVJsJLdzrAl9erPj5tx7z3fMnfDcncIXjoxWmNlxfbrm61HRQKgpBylPPa/cf8NoDx/l2z83tyO5m5IE9xsSMaxZsjk4oImwPPbfbA48292jbwMvrl/TTQB41vti1CrvaDQd8EyiSgYIPTl9uVf0YVWth9aUmosRWoxd+h+Nk0MhXPmlwQ0b2iesUuZREgyFOmWm7Z4M2cgeEbU0cMIzVcVws316secs2nK4WfHTS8LSzHH7wMe++vOVe0RfEOkMoBto17ekZl+9/wNf/2teJ9475/PyC5aahu33B9o9/SLufaLPns9Zx71f/On/rf/0/5w9+93d58f7nTLXSNY6pjwzjpKBBIzOwa+b6zETXBjN3EVnWxvDaquPo2jIJrx72uhVyamC1AZxHjEOomJnk5towU4SNmj2ZU0IUCvMpz2r3UTSFUoWMxVj/Km7ep8yQoiYc7k7WqONECblCkUqtllJ0wDSC4r2relJe8R2MmQ/Sulqwzr7ysjjnfzyM3SkrdwrR3dfMnFCqwroI7uqG9CffZ/jhD3kYHLe7nj9+8pxnux1vrlc0MfP+k08YcmJl9XTuxeBnP9vpcklThV2euM3Ck92W7ZBIBhprebBY0xwfc//b32DTdDz5rX/K289fsJHMISd+vVlw5AxHxqpZM2ey9pKqt8c6GufxziFGZf5EwWdV16wxOKsmu2IyxVne391wJRotrWKpxlIwytaohYwOjmetx6bE4XDAWMODbsXi3n1Wv/or1G//HFeHyIvf+X38f/ZfElJBfvHLlP/x3yZ/csX0ww9ZLJfgHe2v/jzt+x9S/qt/xHIaMaki3hGO1sSbLU2cOA5LFj5ggTgrKcMw6PO46/5bCktKc32HNfQpcpMnppi4t1rSOk+uQpiTLW1Q0nHjtBdH4+KZPk5sxx5BYXS9RJZYHhpDY4Cih1jQAbgLgX2MyqwRXaOmWslNIBVUtZuH1WIMB1vZysRNqaSsab1VcLy32BB3W/paaYzF42isVrOkmqjozyLpo4dmjllnxa1pymYevO8M8oIwpEgphca6uchQuUNhLgq1c7qu1koyhSSFMSe2ceAqTlzEkUPKnLZLvvn62xzbJdPtSIqWsFxDG3De09SMJyFxj5squWnwC8i1AenwdoELHY0PuJpwJmGx5MZQqoM64EewZsCFBm8cNkesKCQxF2G539PudzRRfTriLc6Ev9I7/Sd+aDnZR0I1NMHN+3+VSBfOs7YNq7YlzA22di5+qwvD/rjlAAy0PNsNpGQxVQvpvFVyYxZ1Qho0VZFswVZPS2G1vyXuei5PBz784H2O3vwNvvYrv8Lpz36Nv/7uO3zvX/5r/uzywL52fP3tdwlFuSmOOZ0hdTZRgXWFximXJVZlxPgMtTU4MjFNNM2SKJmmWIJtsEmjZwGoZMp4gKnFLzpMCLNcq4joi6trDtbwiRO2hx3XQ2R/yCxTxQdhSNooirdgLUeN5SvrNaclc73dUq0ndEoLtaZycXngs2d7puzY3UzY0iFGH/HLVcsgI223RPrCojY87o7ZHQps7tO0LbvpkqubHXWCk3sdrbVsd3tiUrOdx+Fc5WZ3o8WNRsmfVQohaH9NLTPfxVd1rBolF6/wiLNYKRzthdXLilkEpHO4l5FxypznhDlesnhwzIsPn9DmygrH0lr6YrjMhuodoSS+1K54TTz3miU3nePZgzW72573znccZ03lrMTQAOu2ITnD08sb8s99kfXXv8rzfcJK5qytfPZvvsPq01u6WMnGM7z2JmdvvM2nH37Ov/lH/5jzq3PcXMC3zZlozI9ZHPOVeBdNbILDW1hYqz08WB60C5beIElmA6JQZxWuequli668IsRinXbEhJmdKYBUxDooDmsik0A2hlAFxFFFT8otCihMGVIt7IaBqWjaYdGoYqBNyurHqqL+DUXcqb9AJyMD4pRSi70jg8+nMoNxXgm3MzLAz+qD1KqeBVFToxUzJ25UHbNUmvMbxt//Hp//0R9wHA+8drbhL55f8+nzl+xSwuTEYtnw5NkVKdU5KzYDx9AKgAY4alu240DEcFMO3E6JXgor7/ja2SlHixWLn/9F6ptv8Od/7/9Ku7slaDyJTc685RusD0gxuOKo2YAYnBecVyz7Nk2kcucWhYClQ3+uCxuwc6xUrOdFP/KijNSgqo03c18Sd2mzufhQMg/WxzRD4uFyA4vA0Re+DP/h3+HGLPns//aPWf3whxyXA2IK25/9Fqv/7d/l8Pg+52++4OTf/xWu+p6ze/e4tp7VW2+zfv6S9p//a1V82jW0C4bbC85EuLdezFF2Q2t1YLFW+8Zy1rV3kQypkOf25GkaGTJcDZFgUMZW6xDmLiGvypKRQizanzXVyi5GtsNElMrCB4x13A7C0sCxc3MhrZmThCrKLTGsnfZjRRyRzIAQBVYzKsEYYbSG1ghBDE+qcJMG3knwU1J4QzqOmoY3lh2fjj0JXWm2QGcduSamuben1qTDhm0xuqfS5JqxtDPvC+YVj5khgaUSi060Pqvk74yqxlXqPBgJUYTbeGDKsM09g81sXMtXzu7zaHHEIham61vyVDHZUkwDJiBDwudElwskgy0T1TiC7YndQApr/IwiMMbhBVxUdbXGCFMi9xMyTNghs4gVnws59via2SSBUgl9j5+mmcANTa40fzWh5Sd/aDmeCsdOpVRj1dTqrMqr69Cy8Hcyq7I7Jiqy6dgGbcq8LJXzfiIXry/GWWVRs5O5ex9CFRbWUm0lxIlweauwqmC5ng48+7PvUjdLXn72KY/PzviFX/8NXmx3jMPI2ZBw55eYlNVk5zz+zmFuHblWvFiSCIdcCM5r/4pozfokFbdZUG6vSVWLxKqFaRwpUhDnSDlDGsnxwO56YF8LhzFx209cTiO7lIhMZKn0pZJLxFro2o7toNCfUiveG15fL/ny8ZqHBm12ro7Pp8hAZhwTH15cMU4esYGb6wnvWnJVCupnFzvi+SWbzRmffD5AdZRxYtt7jt44pnGG8/NL9vseUwybzTGHKbLb94DFmczDozVx6hmmCawlNIEyx1eNqeTZYGxQOrFz9tU6AhFMqiwyPLoSllNletyQDge6q8LlBP2897i9uMaVyjGOTTFEKXyao5rSSHzBB97zqrAQLM8edmwb4b0nPe9MhvOYOEQlb/qF5YO+559dDkxvHfFrP/8zPE+G/tDz+NGGp3/wO7gfPee4zyxCizu9z9vvvMEP/8W/4uj8q/gSkbFnuVlRDhPDGInGMP+4Z+edxiwb72idp7FaY1CbxDAWVqHj2Fo8Sf1TFmrjMT5gGo9ZtNi2faVUgAKlRORVWuWVUmHm7i1rIRjEVPUMlTuYn1GUeRKmkmYwYlX4WCxUqXShAQScp0idUzLaN6RUADv7rMycKqpz7Fkf7LrOMq/4LM67V6taMcyN1PpbKE9QzcK+GvKHn/O9/+ofsnv/fd5aLjl7fJ/vfPaMD56+pAkOVya+0K3Jtzv6PKGsF0uVShYIOEytrBYtba3sYs8UHPth4lCFx+uO//ibP8/91RHf+eQTyrZndbnnxsD5/oZj51mI0BhonCcXwyI0qrSmrF4LxczhG8dytSKJqG+tKqvEuMCiafC1UnNmN43cRsfHU2R0hoVzLJ1Sof2cnBOgWoPNhfteAwBDLdjTeyx/+Zfg136Nq9/5C3a//U94dLhkQthtGsZv/wz5f/K3+cQb2jEhiyWXzlKXa/phhJTw2bHoNngCzgrSeCZTGPZbzlbHeOsZpvG/5StaLBbEGDHGz31WFeMtNhmGkhmBizIxmcybZ/foMkzjRAhaC1DzvKY0StIusyIx1MqQk6oRzhMRtiTtpprru6vIqzg58zW+9J5WpVqqEWKFfYUzaxEqWQrezIoOMJjKuansy0AcMlOpvNG2nDYLrnPiIlXKTEz3oqWdsSg8r6CQQKqwnn/NLHdUY1X+vdMKDB3sdYDVNKUwoIrVWBKTUSV+qMIO4bZmbiSzrZWvhI5fP32DM9+yEEtJogOTD5QYSf0BXACj92EaR1xMhGkkpJFFHzG1QfyWwoKaDXlIVL9AJsHe7gn7PWEYaeKBNN0g04CbEu1uC9db/GFPcJouyjXjYyLM+H8RTTq69O84LQCcxMKisSy89mJgwGPxxrJoWtouYBXQQk6JmCNl3XFoA5Mknu0ntmUuiptvNu1P+PGu3KCAK0FoS2HT94y3NyxATWISyc8/4Xu/dUnbrnn8BeF8e8VhSpwdbWiHTJibdZ0XfMkEp9XlqQhGLMFoRHtfCr5kls4hptA4z1BhX+IctDDY4BHvlCdjDbhGT6wlk+KBy37kqggxwXZMTDPy3QZHnrRYLATDchUAS3/oiWmW8RJ0xdNgyEEY4kRdeoJt6XeR85cDBlisWp48veHF8wxoc3NoPTeHkVxht0+cP8+0tWE7CtW2PDpZczts+fzinMN+5Kw7pVkseXlzxTgmbDW8eXLG8TLwo9uBMUUlojqtOlBfkJo9rbGI0TZSSv0xth0IVbjfW+5fRMJyQZ8y9iIxjdCbyur0jKP7Zzz/9HO6IrS1koHP88iIx1g48Z53woL7ztP6yvUatscNb72IvHs7wTRwVuEoeO5Zzz/fj/xfnl/yYtXwP/3bv8l+c8zzm2senq548en3uPmjv+DtQ+GkbVgfn/FTP/fL/GC85rsff8AffPox7zy+j2+WHKrhKmUO/cSApq2Ev3Q9+greUAwY51hs1gx94eqwZ6yZe9azJmNnnL1dtNhuCY2nqnPvFXitzm/9u5pE7hJGkgFPBqJBUfumKLslqaF2KhWb9VSY1aSCoWoiBvUEZRFNgol+XiqFWjQtVAqUPCsw9W5VqvebNWY22zotUHRzf9Csor7y69yxWEQQDE2pLLYDfPaEf/Vf/Jd8+ud/znEwNPfu8d3Pn/C9F89pcCxq5kHj8aZySNPcDjz7e4xRbwiWBsODdsGmGLILvBAlXN/zjv/wna/y3voeH19ckfqJw3f+hGe//0c0y461Dbq6q4l125BHJadahzKTpNB6S7dcYMRwO4683N9wkSeel4ERTaYcG40xv9F1PFht6Nolw2HHzZQIvqF1jsZbOiAYQApiLMVUXM48ahZMfc9LIzT/wX9A/9oXGP6P/znh/BNCndieHXG9aBh+82eJv/Gr7Ns1z24uuRcjJwvH1Pfci5Y3/Jqjbs3VP/wtHv3OHxNqBrFIG0j9gaMkHDdLUsrzCs8xTROLxYJxHGcjbtVeIaOKYU6ZjHCTMy+HPW9tVpw1C0Lj6Evkan/LRGBhwww203s9S2EqiUNWc3ljPc5qRYitsLSO5s7TJa8e6a+yhgHDJnhkikQyOyO8kMpDo+byYtQnF6USRJXxLJXPjTCUiZxhNIm37IKjpmOXRiYLNyYTUIYX1RDVjDIr9hmbwc98lFiUXVNmK0NGKziGqn/lWZG8KZUdwkWduEyFHXAjmZ1Uduhw/UXn+Zl7D3jTLrgrNNTzhyizKiWsd7gYqcOgq8NpJI4TZdjjxhHjB5oqWqw7FcLmGOMCQRw+Ct2Y8P2Betjh8kCpExIHXIrY7Q7Z76g1UjJ4owkjnyutaahWtF4EcOpu+7d+/MQPLUeN46zrWPrulVJicIQQaJsG6wFb59OkItm364bBGXax8HSMpOII6ABQ0DZna80sO7/yLJLFsCyZ493Adhi4ZwLLGggSsaVix0GNZve/zTt//Zd5+f6fkb/7p9h9ojk6A/SCqjUwZa9V71iMjSwGS86VsVb6ktRYZ6DzgSFGbq63qjA4oUjBeIcPluIEGUdqPxGDQGvJOdJPhanCFDMpJ1JV8+6yWdJ1mcY51sHjbKGfErEKOemNf307cmOgPelI1hJNUROkEw7DxINTT7uonJ8PDIPBLRISC13jCKayWnR89OEAY8CK5cVwYHW8oRjhs8sLbm/2yGRZnW3Y7nc8O38BFF47WvHmg2O+/9kTbvcTFTeX/SXcjOtHLMGqKmCdEkwpqrjgDJMIx73h9CKzjEpNDRcJtoYecJsV/qjh6dPPqX2iQ/AeXoyZvVhKsBwb4auLIx7jCY2nNJ79wyVvTsKjXSGOiSdxJPeRsOz4B9sd/8WLS545y8/88rdYPXrMR88uOL3fMk3nPPnt3+Wdi5FHOI7XLb/wC7/Mg/uv88PvfEgZBqZUeLnb8+h0zWW1PBsHmCoOKF6dJdaCC3d+FKtlkq1jcbQg7Xp2pXKRKqsQMMNIFYMjYJtO0fxBu3uk3nlC6lwVrydRkbmnouhKVGYpNwfUMFstaU5o2eqU91C0H6bIXTzZEnzzylwZqyLbTfTYaCnFkO6IxajXRQ2GYMRhZcbzz0ZjZ3Vosc7hXFAT/bwGMaK02zpfE7YfKT/4kE9+67+mnD9n/8lHLKXw5tF9Lvsd7z9/Ng+7lTPX8Ng23PQ9aZbydQWh0dfWeFosS2d5uFqzmCqNdzzpDxyo/OrpQx5VxyeffcxlLtohhkbOHepHKcbSUPBieFESmyZQ60hjLKvVCpzhdjhwPh14niLbkuiNMGDpBZDMzhauU+TJtGOxvaL4RpumW8ey8fPhbCYbWy2ftFIwpXAWAkdNR5x6bk7u8YVf+nW+/7//P/D2s89I0pMfPaL/T/4O23dfY1qvOBjh2MA3Nkfcty2bywEud5yVlsXSs7Mjqz/6U1bbK6xTg38ODnnxkvdci6Q9ItC2C/VlNICR2QwNKSeMtTjnmeJEnuGbz/qBVbA8Xq9o0NJMSqHtWnZ9TwpC4zwSMzEnklWQW85Za1XmkTtafba3s//LiFNPlOiqUBt6lGR+EgLdqOm4SOFahGy0mNWJoyJEo6j8IwprlDx9LYbvpozgsHXgKDQ4KwwlEhE6a2itVeP8fI0mES5KZrSFo+zIc6FnRyUFOJC5SROXKXKRMpdSuamFvVRuRNhKZUfhgBY8WpmrOIATa/mN0/u845eqYonmoVVo0r46jTQJvhiIUTvYctGi1JhJsWDGHimRJkfM7Q2mXSLWEYynLRabInXYIf1AU7QSQqyqOXLoIU0Y8tztJ9iccWIIXhkw1upzIPy79JB+nHYrThYrvJ/3fjNOPDR6YhZBaZ/GYsUx+sLtytMDl6NwO+kONskdFltmyRy9AJS4pY7tLBzFRL3eckgZ17Y8NksaCtQDJkaORXj+z36HH332kte/9CbuvXcpHz9BTCUYO1NCK4011BDmLhGhvSs+KzpsxPnP4Y3FVSGNI36O+VVjyShQyCWYUiSlxBQtvmTyPKT0RdilzFQSxhQMlf2QqKNwf9niqqYYhiGiQ3llszAs2kK39LRNy7PDLU8dTNWwXres14b12rMbJ64vR2p1tM5pAeEqYFImjo7dpTJVshWKh1Xr6IcDT188Zb8dQFqGWPjgk8/Jcc/ZuuHRvVOeX97w9OUVUxJd9Xn1jRg/iwBzURdz9LfOPBaqIAV8Es62sNlXQmgph0QRYVeEK0mMsXA8BrpisJJpjKfPwjYXsrcUm/jS5pT3qufUOcTC5cbgGsvpy5Hzyxs+HA94F7jfHfOnl7f86eGWRbB8480HfOPbP8PFMEEzsVw6Pv1//je8dr7lDes5azt++tu/xFtf+Ap1zMR+r6sCLH3JxItrdsYRDCwQIpVRBaZ5aK7oq8oQrGW9XOjgsux4YYTnMXKvXZHYkmVO4XiPMQ21qI/CWnllYsbcpeFmGFmd/9JnrprqZmy+ndWHSSpJKpGMKVm7SQy6ghVAZlMGaiYvVShTxkQhJwViWWOoxWiSqECtBlGYy6tduiaIFHpnrcacvbGzZ0LXUwh02z3puz/k/J/9DvsPP+Tm9oKDKdgaudcEVgY+ePGUFiFYeA3LN5o1NiUmUfx6QWV9a1GGkxgCwioEjlxDYzJ0gevDFQtj+UK3YZwmLoeeg3OULGxrZRtHOjw+Z1rfEKzDSCHniPeB467B+ob9NPHZduQyDdpPI7AwnofWcdy0+KCdZ50z+DmJ1Yvh05jBKkW3wc6t3l4L7maqMEBbKo9Xy1fNuvb4jNQPuO1LUj1w6ALjf/QbfPbNLzMVoW53fGV9yhuTwNMXNFHV5qX1RJP58P0/5/HPfJUwJpz1mGoYaoZUqf/q97nfTyAV37ZM0/hKxZOiBOaUytwt5RiGAQF2CJ/3O8YaefvslNNmCXlW/qyWMVoxXB62tE3DxoRX7C2pVVlMRn2KIspf8QJOKtbPnCq0rgWrQ3UVHYaXRr+2khMZ2Bstf5Uqr1JaGKhSWFg4cZ7rmojWcEHh+znixPGmVIz1TCkxWavmYxECBi/6vBcDQ61MQERLGmUeMKap58M88cMYeVEyOxH2wGigzoplFe1JUjCGrslWGM4M/HLb8Qvtmpojk/Xqw7o7hKCpNErCphGTRmyvOqgTg61zGrBWXd1sR+oYaZY7ivWIV+9lLiAl40qixKieOqMeTzenUzFqppda8c4izqv6DVhT1M/jhVD/3dACaKJnKkIsE5VCnVcFNqoJ6q6AS2ol1sLNgwW3C0+slovJMdUGY4pCsfW5PhsIRdcRc5lbrZVgYDn07K6v6NG46SFNPF5ueM2viVTSMvDy5iVPvvN79J98wM89esyZeIyrSClYKThTWTYeIxWXK3iVk1U0UEDd9TTyqOlonZ0d5PaVkSmLStjNag1di9RRGQNpouSGMY+aQKgKdTK5EBqLBRbOUkyk5hHbZpbLiDER6ypNazheLHm8WZOHzLWM3PpC6Szpesvxfc/xcYMRYbed2G8TUiy2qBS5PAqM0dDfGMZY6VZ6kfqqlMZhOLDb3dDv9yway8vbl5QSebRqeP3khDgOfPTsgj4pyddIJnglGev9VWeOSMEHg4gap9X0BiFX7o2O+7eZTdEd9WQct1Q+Z8KfrVmsOvZXO476xKntKCJ8NkWis2Rr+OJiyZfFckRl0TbsOsMBoXxyyYdXWz4Z9izahkdVCMbyjXsb/r2vfpFPfOb33zxj3y2QPPD6owVXf/DHbN5/ybtTw8Mu8N57X+fdL/080mwo7HGnK8RbmqSwvJ3AXlTPOHOOhXHsxkLvhBqUD2Sq4J2hCw1tG1gsG2TVkY3h+/tbfvPeI5qLF9pdM2PMjegDROZ6AyMGxM8rHf0+6sJdH2La2Gq07NDqkIxoEakpaCeOEWUY1buyPPAuaMt4VS9UFY1jSjXkWHRQEV0JIY6cDWRLyRYpYKo+5Kux2FdqkEXDE5U697UEATdEtn/4Zzz/rX+G//wZabdD4kCXJ5zAQoSTtoGbGx5Uw2K2M//c0T3OcmKbMytjGSgUHLYqrC4INAiddRx1HS32FdDNl8Jj29AV4WAyk4F9yWRT8Gni8bIjGWFwwtUwcL9ds8mZNzZHnLQLtjnyYnfNy2lkW4Ro9VnTrSwPjze8RWBTna5EquAQjl2LcZYPh4HP8y3BOtY2sLJe25MEnJmNzUCtmWPrOHGWMk5QDeH4lDxNuCkxOcv0sz/F906PWVwdeKsUTvvK6+c3HL73AeniEt59G/fWIw6dozk5ZhEA66jf+Co3H/+IzZPnjDHinj/l9LBHZCJ0LcM4YtA01DgMqJ6m3iRjDH3fgzHsa+HzfsfLaeB+2/CoW0CpWgERCykWhe3N1/D5YUvfLdi4QE1aOWC96ifGaAxeYqUxWiqpptUy/+4y+0UEg6UYocGytg1iMhnLba2MCCvvmYoudQxqZmyxnGAJBsaqXKXPapm5XZV74ihY9lUTQr4KnbEcG6u3k7VgK6NALJWDK0xYXqTIy2HkBzXzCWiTuTqZKAgjFQ8EC0uxNAgbDCfGcWbhobf84uoYX4RJKoEyE6r1Vi75bhVTXpWUGqM+RpkTWKbO7zYE5xs9Cw69rrCopFppsdSqB2hzt7pFhx4rylESe8eSqhgs4vTnIlVDFcpWstjy71qeAfj06oqla7SpsxalSsrchluq+kA0S0nxBt55l60RbmLhRV/RFg8tTQONuolVqdhVqEH5KsZbjquw6Hsux4FaoQmOSwau9gfe7o6x1RC+8WW+eP/n6b/7Z0xPn+HDQzobaAHJghdNRORSKUVfwBVDdXPEsgjJFq6T5SbBkYOFt/ioNQLVWYqzeOt59LUv4e8dk4drUkxkb6klaoVBrozV4CRz7AUTPHuSGl27gJHCZpP56tc2/PH7iZd7Q9s43jxd8cVlxymO68byla8c81OvL/jtf/6HvPn4iFUrHPpInhxEg0yCTIajxtN1hkNvePJ0wHYLqoWSlW/TOMuQRnaHkWoN4hO1TJhaeXzvjHtHHX/x4SfcHA6vkN8SDHgQVzAz88AZ0cndqEJQ55sHYFEtDw/CZkBVJGPoreE8Ri4oyGHgTHSNd1Qq2QSupkiulmwLJ23Lt5oNj2PlJDR02fJ8P/H+xZ6rw0SycNa1rFPi7c0RXz17xEnouOp7PjAT7u0vEGvk/oMFu08/ZPrOJ7w1Wk5Dw+nRKV/68s+AW2ERLsstTxcTw3HA31RSFvZV6NGB1Emlw7JygShCPxWtj7eWtg2cLDds2gXr4CE4qoEfHA68udrTGEvNCamqrtW7ksI7B65Rc6Mps4oo8qqHyMynUcToimd+aCWBZj4lOnHaBO6KxjExtPNJOovW/RWpeGegOqahkA6ZlApVFBZXM9RUqUWUjFsEU7MmFtyPqzNMNRTxBGNZ1IIbE+GjJ5z/o3/J1e/9HmE8IM7OiYjMQnTITc7R1EpJleAajki8ebThPuqNcNbR1konTju2rKPB4AVap8PRMjSYO0otjiOj914VIUolGsMhRhrvOGobUq3cknm23/LIBUzNtCFgY+E72wtexMhBKp0Ruk3Da8sV9x4tWbzzgMdvPeT2Rx8w7oXGWba7Afsyc0ZHSsJN3+OM8pS89ZiMkuPs/AISLcd0Ynh9saathkNNjAU2D+5z++wcUyLJLFi+/RV+av0Wm6sbFhZ8XxgNNN/+CswJxsXjU9bHR5jgefz4AXUfOflP/yPO/9E/oT55RpHMAx9YW8vOasgBEawzDGOPsZa27RiGCesd/dTjrGeqlavxwNXUY6m8fbxh6TwpVcQZxikypkiWTK5Zr0nneDZumbojTkOHlKQDm4XGeJLRSohQ54y4KCulm2PygsG6WUkRwUllYw0FRfePRrgu9f/F3p/G2ramd73Y73mbMcZsV7v7ffqu+s79dVvBGGyay0WEBGNhYQRchQhkvhhfBLJBig0fjKygQPhApETk+ib33hDDxQETyn21rvZUf+r0u1/97MYYb5cPz5jrVCkOtqUgRQ5TOlV7rb3XmmvNOcb7Pu/z/P+/P1MxGL3LBlaXRks0AtNiOB+Ezhsp3M067jFWGSQhKYg0WqFNMMLghu+fyCQR1iWwiJlTIhNJXKkbvt0Iz+bAo5gJgBTBidAYGBuhKgVfHCOrIY1VDuQSOKxG7OLYDA5G4yEil0nbWYYMvaL3dYq9Hi6qoSQYGqopv5XZZQtIKoMQH8UtZOUdRWGwYL+FJxisKootsNtuX7lMe9ZOrq45ItoZ/L08/sAXLY8WCxrMpTtBxamanWLKkJCbVbjZ3NiHvSkb53i47Fn1CVMcRqwmyqY0LNgFYzXbphRN1my84WpIxLML+pwxCCOEfdfQtz0PVufsNHPyUcvmxlN885//83TdCe5rr5Fevg/LHjEFVwmSEkimQkh02KwWwFgUzY4Ylilxr9twvanwzmBCoXYVnbeUyhAEaCqKMeS+J/eRjcs4U9Ma1cbEbNgfVUwbw7kUTXo2CQQ2m46JKxxeH3HjsR3unC+YNzXzvZouwb020E8qnr25z/3NMZnIwcEIkY4uBs5OWsKmQIDSRuazmpx6zs57NuvCzm5DMfmSTOxqx6PzU3oDk3mj620w3Njf4ZlbN3h48oC7Z6rbUc1DUPuv84qXL5rm65zFWEfORfHfw6gkkphFYeci0AQd560l87BELpx2aJarDruMXBdNgL4IPRdS6CqhahzvmM642Qo74vBZuNdt+OjmmJdCy3QyZZIyT/gR13Z22asmHJ+c8VrseG025ei5t3NuLTv7DbJ6yNnHXuTZ08R1qWhcxbNPvpM6jzBtoJeOV9v7vNmveGASJ01md2MIKepo0hpiLhgK5KzJ2BnqvlADVILPkVnKzG1F73WktIyJh+0GK8rRzTFof9drca6Kcg9ELgfjw+pVSqLkCIhSb4shDp2qgiNk6KMQjadkPeVXw4lK0GwvBKzRDoEKZNWqXhdDt87EoJ1ECpQklGS1+6J98Mv7tZR8OSLKArPYc/XuMTtfeJXN577C6Ze+yuTiFJfWrCWxCVBnDbMs6tsmW4GYyAKjXLg62+VaNabbrLnIBSmZkbFMkmqHGNr6XnG8WGPVSpvVdeK8pyPhC6xXa2QypqBwyIvNip2qJhnhZLVg3kyZZ7Urf7Fb8PH1GW3OzJ1jfzZjf9Vz++nbTJ+qaRcXTNIScxQYPTWlL4mLtCHkmvylQLgXWAfPo6Bhmo1osrNYq8W7EVIBi8Y2zATm1hPboK6anBkd7nPnjTcYxYCPwtmHPsKtm09z/+gIu3dAEKj3ZpSDGaPdObu3riF1g61qmqrmwRdfosQ1sbfEZOmksDuqmVQ1XR/IQdGvzlvadoMYwTlPjMpkyUWL5lQK5+2G425NkMLVyYS9ekoOedDqodlxKSkoNENOClQbFcvFZk0z9uxap0nk4mi8ZxVVi+cYOuuo00hhfJrGnNJgiBfVRO34Ctfpz9QBK7Rj1YiOmuzWQj+I/bfBIbGo86cTw5s54rxnjuAShKyaEoclSCGUQJeFZIR1yrQGupKJGQ4oPI7haV8zthOi1UNCimUoQId7shRi0vc2p8BCErWr2XMj3a9KoTdOY0uG4sMZJUhrOLSQ8pZnNYxhh9+l8FawqJitroshULQMU3gtYnS5UBpzsU4LkDykol92wHVcp5PnrVZOwZU5lwEW+bs//sAXLZvYEzME9ELVSm+Yfw/zee8cGIMczjltLOcZ7vaJjdHkVMkViYixdnAn6EVijcEkqK3jWm3ZX57y5sUFQdSOXGdhFqBExzIXFt2CN7/yJR6EE9qv7HLl8Ao3wwUmgDYqtWW3JXpqBazx46VyGDOMiGKkiPBos+JsOmHHC8aoQNI4S3KGSOH03kMOd26RNz0pBFYxsTeBvb0x914/wYln7jx1LhznHu8NYFnHyElccmNvj/Nuw8OTBcYaDg9GPPbYFcK9JW3qOLy5y2jW8NpL95nszxAfFcaUhJwsMThKBk/GmcJ6nbg4S1gzwnlLIGCdpfKOyls2J0usGTanZKgNvHD7kJITX3vzIeuuKK/DZJwXrM+UElE+SFL1vajSLIZEjBp4hhXGybB7EZm2CmDrBO6njvuSSNMxFYJfrRhnYVyUwXOSCr0TbG15bNTwbHHsFKV8LlPLndRyP0UO6wmH1CzyktloTNUX6kqYzcYcScXJM08Qrl3BN4m6P+f41z7J9Qcdh8YgKfHslZtcYYxcrMil8JAFX2nvcffijGrWIKPC8WmnuVZRtVPbqyUM5M6xgQkwi4adi4BfnVFPOnaXOpOeFeG8QB+V45IYIu1jwgRN0C3WINmrSGbo2mwf4t5aZLItGBJRhFYssVgkCzEbUhxQ4qgg2gzCQuXqahvYbgW2RShSqJJBNoW+LSSrM9gSDQSrBUspGg6ZubRqb+0eTR+4+ttf5PaHv0B4403y6Qn7MbIykdMIIYBYqMQyNpacItnq2EuG9vxs5LlZTzTHCA3Qc6UwQjCuZpkjCdVIKNEXauupxV7mAa3WK9Z9x64dsw4dJVhs3bDrR4ysOljuLM/wTU3sA+uUOSVwvlnxrt09Hj8cMb89I81qHn75Lna95PrNx7g4mzK5d4G8ecGosqznjlhnqoMRbViwyomvbVoWBkZVpVZ3sVjnAB3lqR4o40gcjkZ48jAeTnTeMz7cY/WRTzCVjJRA5RN5IkybK/jZHpPr+7j9GWZvjtvZoTtbwsMlo3ddJXU9adEyuzginL/M7Ol97ll4cjRVR9BAu12v18QUMEaoqoq27bDOD3lT+n6supa2JIWyFeGp6Q6jQUCVRVi1G7pe3TV9VD1UKQbJwthoUvS63TCbTGnEDd1C3Qy3eg4jBj9wajBc6lO2gYPFCFYMo2ipMITB4bPJCYynzjLkJWmBHUQxGfHSWcrg+BEeUkgh8IyrGFuVHziMdsQMrKOmrscIKxGWFNocaRHWIpi0IfWRx4xjbCqsqGItx4CUSEehzYUohWShiwFvHNfrGZIKXYkDu6WQ8IMmZ5twIEPBopbswqADTBFj7OVes82Esln5UHawX5dBHqEylELKkZTeoiUYq68joA7Wr7O5y9cXJ1vdnAi/t5Ll/w+Klr5oazKiIipBK11Jg8PAAqVQjWrK1R0WVjjrM8ebRLKeMoilCgrycgJaVxtczlTeMB05rlohPTrSoK9BnV2GNOm27znKHafWIu96H+/83u/kyo2rvPTRD3Hvf/oY7uqT5NEYomLGQ4z0IdCFnj4ENhIoY4c90e6QQbstoWTur1fs7Mww4kkJvZAEnBi69YZwsaI9WRFjJqRENYXDXU99T22g1gY250ETSGuhGguLTaKzHVdu7/DyGw948HDDqN7h7c/eosLQkhjtVFy9tUOWwoOHSyZXJmRJxC6xXCZOzzpir+37ka+QDDEY+hZGsxpxCoqqrGVn3GBKInY9EpXPYYrhiRt7HOxN+fzXXud80ZIjCrCzCt2yomF8MWUgavo2hS5p0SFDCGahsLOC3fOALYZeYFkiJyXS1p4sjqPjM6YJRqhrYFkKXWVVUDsa8bzx7MeM9YaL3CITw4LEODomxlMk80Q15kY1I6eWa/uH3G8XfGXsWD59HVMnDsaZ+7/9Ka7dWfBMqCi55fZ0j8ftGLvYgKw5m655PS142C3oN2t2Rg6H4xFwbjOuhXFfGCdLNbSWFUo4tHOBVddjyaRNRzxd4p2nymrLD8PpDCCGQOnbQbiaNGDzclX7ev6LgHgV0ZYCEtVBb4QsDrLBFYPJhpwNcbAcG7MV3w5jipyH5PKtSFItnoVCWgf6HoIpmJIpMalTY3D/SDbq9hBDQjc1g6N6+XXKv/01zu/dw4aCTZnaWEKyg9FJF1xnBV+0w2IGHRgGvKuY1w2ulIH1U/DG0OCoRBNsHXoIKNZqyrqvmVReMfBD12i9XjPKmjzekcmilu5FpyLUGsGJ1e6tODoLqxB4++M3uPb2fdrmlPl/cYt123P4wpOc/NLnWf7i16iSOlZMcUPHa03YrVh85YiD0YTjqeNrx2fYqmI0BOcVU2BI96WghT0wEuGwGRM2LakUUgYzmsF4Qnn4ECkRsZbp1UOmoxGT556muXYVN9+BUc36zjHx5VP6B/dp9sZYMpuTc8xFS3v8JvbRp1nfm3C9qqmsYdUqEbVytRYnm6xJzV2nJ/iciSGAEQ0VFMMyK2fpsdmcPVfhjJDEsG5bQszErKNF/fmLRrKIdvQ8ank/XS84mMzxeWshzxQ0SkLQzxnndJRhttssGKvvsyme2ioDK2XNKlshJAxetEBRwb8Qc6YdAg+RgYqOdmgSwmku3Ak9N+3QrR+s+zZDZTwpZaJoYZRLwRhLKpnjUhQhkFoWxjK3AS96n7miv3ca3CCaPi2MRXhitodP0EoatCYD3yhmDBFX0BHrUJTkXAbXYKGPPcVl/HBPm0HMnHMmW0HllVrUaxRdHgi8ek+rSqhQsoah1kZ5Y8N2ePlQPo65FPOXUi5HUL+Xxx/4oqXNiWqo5iiJ2rjLl8Y5VdYbU6h2p6wPpqyd53QTiMni8/CmDS+qKwWbE+I8UQyVs8way5UGrqxWfPXePVZDzsrWvZBiIVeO9U7NybIl3LlP+5mv8ul/9zHe9sw1nn3vO0mPVhA6ctCCJeREDJG+V2xztDC9fsD47IK80KNjT6Ez8PrqgmujCc5UJNR+ioAb1+xePaQ7XbA+Wl1e4DIqxKon17C367gxb3jx4/fYpMRkPGZnt+H44ZK9/SnXr4z4/JfvEjI8c3vM47d2ePWLd2hLy+zwkGZueXB0wsV5YrxfWKwC5+ctr74ZefBIqY2VK0xqR9tHNkbD+NxIwGqQ5Fg8V5oJR6entH0PSRX+13cannvsGvcfHXPn4RF9UJePd+DcsK+WrQsArLMM/Uht9Q6kWARchP1FYb+zuCK0BU5CpB017Bzs8eD4GNslDkrFjjGsciCKMPaOaeO47YUbKVEXy3noFCi1THzmYsXCec5W5+x7x194/FkqEleu7fKV+3f5DZMI7/hmgqvY2fM8+MInmX/pLk+HBk9kVo15+/gK1SaQ4jm5zhxVNffMhtcePiLnhDVCF1WPZWvP2hQ2VeQsF3Y7mAXtuGS2o4BMFKEkjaJf5Z7UJopAVYQohUXRZO8YM3G9xgUFTeEr8D14T3EVYhXeVswgAXRmGIeoiDYLOuHP6EiiQBcjbU7q5MgFZ+0le0Pn3MOoqAwRGDHqtdlD7KE3msAtOVOIlKLdOiMagqihjfrGupDpPvtF/L2H2JQwWfH+yRRKzJQUB3efalBIiapR9Lkt4KpaM1qCknRz7FX4ar2OTlLECXjj8HXFRQgUYOwclUBthFG2dFmQkJgiuoALdLnwxdUZD7uOQ2u5VU2Y2kbzvXKkIvHEjT2uvG2X8Q88gYQd8isXVJ8+Jj94nZ1FwfZ2EKmCEUuoImkC/tqE/qVj7He/jdfOLjh//Q7XaKiMCkKNFNzwnqWsglGTE/t2hE9Cl8A6R5t7ymyHrg9M1isqcbhveh9Xfuj7aKdjZs+/AHWtm23bc/rRLzDZ9LgrY5qr1ygFzu7d5+jTn+HKe25xr/k26o98hFvO0vfaYbFi2GzWVFWt3ePyVqRCCJqpI0bYxMhGCiddy9h7bk4nNHVNSSikMEaNh8iRLoZhNKPdASeqkbAiVM4RMCy6DeOqVpCcoBynMDhinKEyRiMuRNklJavLTURIQbAm46Qo4sIIy6LQyYZEt2X15EIvhc4YQkpvrb9swZY6pn9Igly4IpYxhg7d7OucsSTWDBwplY7hRMgIKwyv5cxpCcxTZiyWsRhGwFhgZLR71FKoKTy9e8AMQyeJbQZZym9FBEST6EXHZJQhcgbd3+KQxdXGqFodq7En28yvmBMyjKgMGhViMUiMqrrcIgZyoUexGxhFcDjrtJguvOXogqGzMuzGRSNnfi+PP/BFi3axBuHsICZyopTUympQFt5iru5wOjWcFLjfRpKoMruQhw1ysFZazX0wxjCyhpk33HKFeO8hy/OldnKKKqizKFHU7O3xXX/jR7kw8OEP/Qpn977M8vU7fOkLLX/8ieeZWk8fOw0zS0nDxIYMImstWMO1557mtnN84SOfwxR1LeVcCMbyYNNyOKr0JJk0OTXkhiLC6uExi4dnuJlF9g3ZJx6dtxTvmB8K+wcjuiowbmqmM8N4KmQWPP7kAbtjx+lRz2jkeefb9xB62jYjTcX8cESUwOt3Tgm9RXJiuUqcnAqrkxqMxc83zJJoMGLMxOgwlcN53WCkQOU8IUUW65UurgUOmopvfv5xDImvvHGXZd8jlgHOtD0vmWFEG9WuLXbQYDj84AbTEWBm9yKyfwFNVEfBWQoclchpXxidLRj1MLeOvay5GC2GcWWZ1zVXRpZb2VDHyFlIPAiBU295abPibi6ktuWadfzQlceZhMhsfw/vGx5Nx1zcPqSfjJmODKcvfxXzmVd4R98wzoXoCk/vHDIt2oXKccWFF14zkTfOTnl4dKIOzyKsu34AmhWwljL8qsdVYFlg0urIKJSip7BBZyUFotERks3CrrHsCNwphUUaRICbSO4CBYv3Na4yMNKRFFWN9nCgSBwCCQcdWNEE6BYoYonFKMPFCLEIIRVCTFpMDZ3BgTHHdmwBUDDQW9Im0/cKq3MFZBD1KmsFrEnKZAFsMkRjsZsN9rU7TKIWCmZrg9YpO6VEyrB5IEKSQoOhFouUwsjXtKGniP6OYQgnnVYNbYw4sTrUGlACqxyofAU5471almsALGNxTHEcJwXQHfc9guUpN8HaxLpf04waFZBaSzU2XHt+TrWX2bx8h/zaguorLfZ+JptMsR6agi/qvrM2k3bAPTnj5O6Cfb/L4osPuff6G+yVmonzeGM152XInkopoTBWzyhnrowb4nAQSinRpki5esBqfc6066nGM6Z/6DtYHc6JITMNkBrBI7T3H+Lv3id5qJ+/gr9ySDrvaB9esDx9gFzMuf/mkndtLihJn6OuazbrFb6qaLsVKUds0VTqEIImdIs6GJMUTjYrEpmb013mvkaKJcZ0aXsPMSmAcDidv/VQXpazOvqZ1mNiSZxuVnjj2KlHNMHiBiu+KYIfxkQihii6m16i8K06c6bGYaSnlMKCwNJ4bMq0wGbosvWo6FpEwXQJLvPoEtoR6jGcoOJ5byxGMskUHS+S6BBigY1AX5IKXNFia02hB1ZkphiakqlLZmqEXRxVysyt4V17hxzg1dm07Y4aQylpQCFk+qR7XxeFso0JsIYStCsXcyaXTBfD0GA1Qwdk6JKSLiGI2zasNYYKp/dJUqBdLkXHalmznSoj+OIZ5LeXeU/bj7ff/9KG97s8/sAXLV6UXFmKvsC1cTSiYwlbwFu1hIarOywbx9mmcNZnyhAQl1Me1NZCskOibspYo+mcM8mMu46XXr9DSMOJE3072jLMO/vI+WmPefwaTzz3dvzNFU998DtpvvYazaMz+rMVVmUF2v5M2sL31pMN1AZWdc0TH3gHL37685SgiGdfBJuF4/WGvXFFI4U+RELJyFhPWP26o1+39M4TiqduKs7unbDeOCrv6EumJfLEY1extmU6zly9Ljz9zARSz8P7Kx67dYUnbu1w/iDj7Iid3RHzvZrFZsmjkw7ja6zTDoeNDS4ISI/xmaoesUyJXrZIfQtWRwCS9VTwsF2zCD0hFcbe8fxTjzGfzvjUl77C8aqjiMF67ZRpboJFRDcna81g0ysqXhhYOiUVMJm6TeyfBWatpRjPOmWOcsTtz3nuyjXefOUO8bxjYgrB6iJhTIWrHKORZweBLrHsIhc58WZK3Ek9CzKHzjASeN/ODi9MPAU4PV/xW8cnfHK/Ih3OaHbg7OhN0kc/z3tWDi+F1mfe2xxwO9b4rMndoTLc3RWO6sK9145Inb4+iaRFt65h+KEVnjxYqTExs5lUxBBpY2LeZZousSuWRrSzkoxQkbnqLc/5mvuim0NKSaMeyDjryTFjsv/GtcN7ijXqxipmEMICuZANRGOJQIkKo7MihFAIReiTjuPecglsdTE6LkqoZit1hbDqCb0QRDUidjiHGTIGgyGr8N2q+yHlQlxe4E9PgKjPU4bgxZxp+17FhcK2hEGGnJqcEyPraLyjDT2V86pnyJm6qtVhIXpC7EtimzNmjcHkgnfKP3FGSa4ZxcHXxlGI9DkxG0+Q4sgpsO46dkcTBrYXy80a8/Qh6dqIuFgzecPQf2yD6wzZ69hgYyLlqZruyWuER2s4OUH2LUxq3MWKA9nhMy+dQOuobMXAK3uLdkoeog8Emwp7zYhZ5dksN0O4JaQYqG/e4PjoiH1ryPs7ONOTHz6kzK6THp5gZzcRMZzfuwebFc3hVcx8jvgRb7z8NX7x6GucfPBxbh4d8W1feIlDMt439KVns+kQYwhDoeQrvU63hgaRoinfAueh5bzfMLWeG+MplVhyynR9T5sCfYh0sSeWPDhA3+JjWREqsYp9MMLYWJypcBkerRd0zjP2FaPQElLEoTEuzui1mQchacp6nWSjnZGptZf3wloKSzI7ImRT6HNGI6IEUww1GlDao5qNMsQAKBvGkIBHaFfxpjhW2ZCM57gE1iVrgCLqThVRC75FeTNG46LpixZTUjIbPK4UbjnD+w8O2cMhSejKUGwMie+5KNyxFyW5+CK4koYcrXK5VzHc1wUzjN4yRWQAqeoBIuVMMgPHhbfI1IhlZIS+9JTcEyVdjh/13ik0Tp1E1tkBiSDD/Q2gYnYdM/3ujz/wRYs1GhjmrKHynpGoPax26nAwYgn7M47ntQLGNplApRthHtDvpWAFrTLFUQwYm6lNZsc4NneOOTs604uOocgFwiBAkn7D537hv8XNd3n1Ky9xfzJh/+0v8D3vfYGdZoycfJlMIKSs7VxU9OQQgka7kBcbrjx/m71rOyzePFeiI5BJrHJhlSMVkRwNxk3ogSSZ5Wql1sBS0ZvIbKdmE1q6NMJaw7rv6XPgxtUxloCvhHe/6yo3rjScLwIXi47n3zbCiqdrE818wuxKDaPMo9eWPDxulYkQha6znJ8bulgwOMhCEF1AkzPkrFH0Mgiacyws25Z1SfRB81yevLrPtb0dXnrtLq8/PNH5rxGMzUMYoAUD1gveb/Hyw/wV1CFW9EaMpbCzgWtrwzgZ1iVxmjNLYLFYcd7dhdWaWVahZhs00t5UlmpnzMQZurblbt/xdDPhIAWOXSGsO67XE56qG+g3vNDscTCecu1gn0++/iafWi85PXyGg/0xm/6M5Sc/zzuXlt0krKuO52ZXudlPdPYtmWgyy4MR9/cqTtYb7jw8om0DlTia2pBrYd1p5pWTIZpBNATQeEflHOP5mJ3ZFNP1tGcLHpysuOg6ZsngNQ2G695zrRozkTNqo+6DlA25QMiRnAvWGeqQoO1Re5b2KrTwGGBcWcjWkorBiIdsCQgkTfDNeLpBm1AGkR7DYgwM7fjhdFWidrI3Pe0m0TmDlDgEEhpsSYNjx5BJRGMweOrckb74EjvnK5wYXNYDhRTNY9mERBFLzpFkM1EKI9HxZBsjc+8hJHJKjCc1cdNRWU/jK9XdFLVwrtsOU7st14wSE74ZabIyby3erqg+og+ZVSkcdz2L3HF7PKIEoWTNApvbisemI660lrHdwR0HwqtHNMHhKkcikW2Gx0fU37zDSZ3JdaHZqfDPPc6DX/oihxvPg7zk7npJ41R8a4tVJoaA+lospWg4oo2Bg9GYLvSkmKh9RUsiWcv89i1OXnwRrGX83uc5u/gKkzIhP2jZzPaY375C38Bj3/Je7qRIV4Tx4R7r9YbXH97lTVnwm7/5Ef7nrz3ihWODdAGRihgz1jjlqQydKYqCAUtOGG9IKYBznG1WnPYbEHh8NmNiLcUYVusVXUxsQk+fdWy+Te4Wo45QUwoU7S5VRoMGveh6sD+eEnLiottQ+4q5a9ikhCkWbxyVUZ2JiKGkoE63ApSEFEMjyt5yCIHCw5i4bTxNCWSE48EEULamiaFqlDJIw7LqDzOJdttwLAVSYiMZHzPnJRO2hRPaPRe0C+OHFZ7hZ2iMUIsgWQXFVzF88/4h+2ZECXrQzRRKFkyx2KRU4FASfVZu0ibGYc0sGDsQlEUoWwFb1hFzXyLeMBRg2sUE1LUoUA0jXraaoizgtOMSk5KXY1bBd7TawRFjqIzXwihrsrYRGbpP5utbMP/Rxx/4omVkhJEIXoTZcIM7Z6iGiHSw9FcmnI0tSywP1htC0SC37SJrrVaHEjJuMOk70QTdUex5+Pp9ui5SRK1kCWhzZJUC2QrWFprzh9SPHvLs/oxn/otvJu1c4ez+Eacvvcw8FYJ84xu2rX4FEJsZtx27e7vcuHmT9o2F4s7FDta7wr2LU26NlH6IGOLCsXzzHuHsQkdP4pHGQCVsWg1kGzWGxemKnBN7+w3riwXOwJXDCbXzvPTgjMXGsLOzq8VCMcz2helBYdW2PHjQsTzvmM4N7VnkdOFZLCxJOm1xD3oMcVDXDSklXG3x3g3K9EBKULqAyZmbe1Pefvsm5xdLXrn3gD5FSo44qzHsqThSAWPLoGsZXiPRcV3oeuygiC9FmPSFw5PErDWULCwoPEiBC2AzEGf3u8TM1PQhU5zDjWp29ybMak/edNzbtBgyTwjcamqOU8b1LckJD/s17xjNqIyKnx91K14qG46uTpg/c4j3iTd/41O8/SRwvXgWdeT2dJd3bibUwznHiCCucL5b0VnPvUf3lKbsRcmrxup7DWr7HfQhhuGGF0NlDfPZhMlshB1VlFnN6Mkr9BcrHt07w5wF5j1MjKGlsILLjB7nHPFSHCtqa84CqUBQvYEpUKxs189B3KmiVjEWHy29F0JWgWFfHGoMVYFvplyyXkRUI7MtzksBnwzloiOuE6ta6breaDJ2loRxQhCHL4KkjOs2vP6xj1L/21/lbcFjvRlgWZaI0AbNOzJOoXQ5Z0qIVOOaNgVqUzGxOqqprNqWS0zqIkQdE945zVqxqoFxUsgx4S8/Npeizq1OoxYQCudkHqFOnJIrUkz0JeCqiovNksPRDuPjzPGHvspB9NTR09SWkrLC0Mae+j03eO3Ry3hj8C5z8D3v495v32f/kcEU4dWLM9ZFg/Ya63FmoHQPy4h2iAd9WFWx6ytWi4vLzmTse9aTCVefvIX80i8zLZG0CuTbH+Bks6L91F0W66foX3qNgxeeohTD7ImnaEsiGMfxnXt8/I2v8sxjt/nWR2/jW75wht9s6AzEfkMf2kHHsD2pl0snCqCmCFtz0XdcDMGI1+oZNyczqsqzaltCVodTLPkbC5atNiaX4b2Qy3DZcT2irjQqAIG96Zx0nlj2HbV4dk3N2FV46xSQiAHJJNHkdzeQnRNQX7KftIv3oCQ24plmff6pGJaSSFm+TpNSBt2HXOZsMdxvgUxnhFXRjltFBDvcX1u9Bzpe6cmUknBGx3MVmihOVtz9dQPfunvADakVugfKHEsMziCDMR7JqteJMjgHDQRJOCCaPLiBhh9ysEGXMqAojMYC+OGAVBhszsP7oFf7oNMf9EuVc2p/Dh1FCl1OyhwrGessIWQCRkXORe8ljcMZir7fw+MPfNHSOMdIhElVMTVucA2oYM/kQmoM3V7DygnrDlbFEDGQ0zAWHORCRrUqWkWoc8VRSOfnnD040UbboAyPMjgrDCo0s44RFXMrvIZAMrz+2S/wrnrMfjUirltiDJegHX1CnYRoqmxk2kfycs3c17hSGOrlSz7AOgbatqcWIcfIeDJCSma9XurM1oPUhWgii0WPaYTxqOLk3hnz+ZjZtOLkfk81n2JKInTC3UcrisB0MsJZjwiMJ47RuOPuy0uOjiPLZcdsXtO3iYvjQl88fVH4U0qZLDqGMujpoKotaTunjoUcdLQwayqefew6WQIv3b3LRdvTp4w1RdkrImS05UkZKMYoJ8CIai0oZRulgYgwu4gcLoU6WZYlcZojS2eJGFwojFNmVDIxB/piiVY43N/h2qjCny456ZaEDOSM9ZZHKfPyesmazMlqxXjU8NzeLq4qnNvEa+sVHzeJyXtfYH51yuu/9hGeftTyLGOyj9yaTnl3mlPhL/OqioEwqTi+NuFubrl7dqYU3OIxqRBFWQsNhmRR3YpRbY4zBmsMo6ZiPmqYGEdxAk7Ym9aMdqfcONhhdeeU/KUjckp89eQRy5z0+WHoIurYx1qjm19OSp/tg174FEScvsbDnEqAJKhF2Ra82YpkPdnU6rgTvZBTVtbJZadliNLIRTkZYHGbTO7UoVGKFv+YQuOFnCM5GwqGpusYfeK3Wf7Lf81Bn6lmVy/f9zIsfNrh0WsjF1XV2MGt0oaea5MxlYNF6KicJfS9LrrG6mh2cE20fTdA9wyx79Tq7GvcMFowwxqbcsYZHUMLwkoEYse0rlj1ib5AdhaHIM5ynDfsjSeMDibImysq21CSFnaN87REzl5+helNSz8t7L79GdJpYP3rr7PLlDN6TkqhWE/jvLpmRLs+2xVku/x7CtdGDaXr9DqqNQIgxEh15SppUuPOLki2sDlZ0k6ucOfadT6UO84efIEfmc/xvibuTXizXXMWO7r1MZt+Q7tTc3DviLd95CVuXkDC4nJk07WD62Qoho0QoiYs6zqnBVWIiVXbso4RknB1NsNZw6braPuemDUosI/xkqtymdY+6AztYMN1w4YpGFLKw++vML2D6Q7r8xM2MTD1NTNTUQ/3jgzXvhOLpZCK6mtSUf2Yjhz1dV2VwprC3BpsyUwwah3XXVvHc5cdlaGIkTIQpgsWQ8qFDfr9p2JUqoC55HB16H3TkVmhG3SVCzXCxgrzYnjCOb59d4+r1qM9mLdGmNuCLuekB9+i04Q43BeOTJ/BGcHlhAWcsdiiLqSSs4rsKXQ54rLFJcEZN6wF2/v466+0LXBSC6tsCyl7zZQyhT4rCFCCFv1JHFkElwuuGKJknMjlnva7Pf7AFy1jscx8xci5ATOsJ5VQgAz9bsNif8xCPI82hZiMuhYQxZbrkJhss7afJVFnqExiVIT+7gntuieLShZz0WrVWsPuZKaJoiQlIRphsVyw+NIXkfWSh/fPibduD2CfTCnbAqkMe3DBjD0ZodkE6vMVE2DiDTEm7VIYBmeEpTWRHWfJxXDt5lUe9i3rTU/vLRsTmVdjln3i5CQxvq4ny6Y2PPXkBO8Ty27FXKbkmGltz9FRT+NHTBsDKZGlY1TPaKwlZ8/pRVBnVR252ERirDEYoijvZewrKl9jvIFcaCoNECsR1WxE8EnwLvP8rUMOZw1ffuMOd05OSEFvDFc7cJY+ausTSRhUX5Eomr1kFMhnjSFF1fvUIXP9InElOGLMXEjmwgg9gpDxkplZwyhXrHIgSeZwNOG9uwdMzs95mBOJTF8yTc4sQ+K8JB6GlpmruVks33dwjZGx3FlvWEfhRZMo77zJlaf3eeXjv82tuxc8bxtCSexMG54vI2adXodRVOBdBBZ7E45I3Ds9pu/W2pL2greFIFm7H04IudAbwWi7iWzAO2F3PsF7R8yJkjLTuqJ2Xq//EbirO1y8ckpIwp0uYACXLBmDt07za9D5/DD71HZv1OelVEjZCnL1RCdAMmCqCuvM5UImgxg6oeJsAFscYvIAhZPBjRB1oZNCMAXbJfpWR7BYHe2JKBFXRDAxMkqZ/Re/jP+1j+AWS3Iz0ZNpHJxJUpROa4rmXbG1kmZcbVj3Gyajhlosm5xYbTquTWbkPuNdjZHCpu/JTodcfck0voEsdEnI1mGcwxhDYz0mDowLq8RZK45gClGgdo6RqWgw4CqO1kt2mzFGjLqQnGezzoyLIybNZ5n4Gkymf67Bvn+P8/UR091DmtWIu//q8+wtLG5kefX8ggtg7Gu80S6QDG9OQS4LYkrhSlMzrxztZoOtLd56lm1HSgY/mmJHY6LR3sLsqZt8znT87377I7y6fMCf/MD38G8ffIV2p+LR8k1eO19y+8ohs5Fjvez58sc/xvsuMjcePcRbdbGtVi2lDJ0Ho7iIlCPGQUoBEaEZ1aRUWPcdm9Kzjh3Xx3MOxtoh2Ww6cinkVOizpl6r+/PrFvahy2JEqJ2jqbxqdXLGmERk22lSpvneaE57cQIuU3mwJiNW3VkmC5SkoLRiLh2JcdAgKXel0JXCctBHTsXSSGSVjLrx1LJxyWNMl71GtIgRPQz0RfO6ihFMShgMXjSEd9D2UrLmCQU0i6tD6EWY5sLToxHfNdXQSimGVCI9eUhkH8TtJSFGDx5WwBq9NoRCIhAG96nEgDjAqODWFz1oB3GDFibTlzRQeN0QnaGOzZQG7YyVy86LE3VklQLF6Tg5Bg1BjSi9OOVCNJZMpLJqKNFwRSGU/1y0ANB4z8g7vNc2MEmtbWQV9fX7U86aikdd4dFaXRoy6COwWtkX9IJyA21SD4GZZtNzdu8BfVKxpCEThrFSTpnFag2zPUZGcKlAEZ44uIJ7zzs4Cxt2v/YGrk2UtpCSUEQnm4LGn5di2GBYVp5RF1j/yqeR+6fsGsdGEt3AmNlWvW3KBO/xrtB4iIs1LZnx41PKroqCX3v9lLOHLW6eMJXwzHP7gGG53tCGMrQaLV3suFhkRvWMVDLZBnavFWy95s3jnrt3Os6Ol8wmhqYynDwScnbKT2ErumoAqzeOhaaqCKUjJSVZ6ggicOPaLk/cvMrDsxNeuf+IEPXUWdWC84VcovIShhOCtUOoQtKWoyRlGsSgxEib4epZ4fbSYSMc5ci9klh4q5thjIyzwebIBgNi2fOZ563jytEZpgTulkAr2v6/UY14fb3gPEfesXPApCRC17LKif/La6/ztZCYXtll71ue4vr7n+DLn/0k+28+4h1+im0D+WDEc2nK4abCBiFIJNqMx9DVhkcHDY9yx2JxprlTgxUTIzhbEQFxAdep1gIrauE0hbqpaKoKU5RYaWyh9oI37nLxNZlBlBs5lcwGXVRzzsPCP2SMmLe6IdtTY0lZxxauXH7eiFI8qRyVdYxtpdP3UhS8VTkt+0U1DClvGSjaOSzDqTkNDI2YoKw6XBfJ9NjKY5ylyYnHMRxaQ71eMX7lTUYf+ySL0zO61OPMRDU3hWEcIJcncmd13OJExfeqPxHmpqaqKk77NdZYHJ5IjxU9qRYjGGdZ9R211TTnVYxkYDqeYJ3FlEQtQkrx0irK0F0tQGUdU1dRSqHte6auwvkGkwtC4oKErHqmq0wO0FkYVzWIsJj3lG++ytE4cPDCu9h85YjTX/o81x54sh3xKAROS8Y4S2W2gtIhX2voMA7UA0Ylc62utSOUMs55upDp0yBq7lpGVU24vktaPaL92IuMb1/hsEv8qW//IZ7cu8GvyRt8qT1lZjyPj2qmizN2jws7AX60usbzL36ESbsi+5EWG0mL0pQS3ntCjFhnSamnFKiqStdUEZZEzkqisoXb8xFeVPsUKISSFAxaNONGV+G3xkMiCgj1YrRTYO1grlNX29drTHIRxDnsbIK5dgiLlQYupkKWoN0QKSB5QNsXkkAvAzqhQE+hpfAo9lyznjngMuzamk3JrHMchN+6Nm1BdVunkwybuk5e1RFkjBYADeYS5maGTmpC9TBBBg1JyXzzaMr3T/fYHa7r4pTVdTmDGgoKY2QYfQ237NBFoWT1KqSMyQlrHCkVklHelRnAemm4pkOBHAJFDL4kvDglKw/Po920IcBy0OWAPncthmIMxVtKUVl9LFmpxiWrU7ZAMhab9L1s838eDwHQVE5ncwwLslGclcVA7WnnIx7lzHFbWA+BbOowyBRR85ou6LrouSG3yJREPj5hc35+KaAyQ7dlJpbJZMLEOWw2TEtFXVaEHHGhMDm4yWq95uZ1j3nlVXIJIGHo0AjGKgfAZcvmfMNxXDKajagvCvVpy56veNS1dEOMwHZuHAusU2FCJi/PWNy/T9/1TA52qQ8LKwvni55uE+nbNcXB1YN9Ukh85gtvkoqhT4nYFe6dLDg7C8xG0PYb+lSBg9fvP+LO3Z579zKhXXN4raLfJBZnQlNVaJO4UEKiXSWM15gBvZyFGCHGgmSDs8J8WvP8E4+x7gNfffOB6h9IWFthbcK5QozlcqMzRk+6KUcskEKkxESJZTAXCTsd3DyDSXSc0PEmgYdFiDHjSmacDU1SQaYpketVxbOjKbdE2BtssuNcmEe4Wk94bDripeNTXpjMaTcbHkZoxjP+h7t3+cKmZ39/j+deOODq+2/z1c+/yOwrR7w7zkhdB1emvCANtxYGCcpfKDkhJRO94ej6iHv7FceLM9JqjQmBSjTPKntPolA7jyfqGGAYP1oLrnLMZhO8c+QYtV3uFXhoBMIwcrBFmFrPvKnxFvLZRvkTWXUBxr614OSs2U150AyUlCEmileaNIMwrxihVJ66qWmqRgW327ys2lOc1Y5l1u+cUTs06AnNDYvjlh9kQ8Z2CedVFyMxM12uufaFl3l2uaScLTFnp9huxaKosHactcOwHRuI2QKxZFio9aAwcRWxD+xWDVNTEWPkpF1xpZ5QYh66dYWQMsZb+qz5MiOrdvxNDlSjGrGWFCPeG2pjMDmpS2RYbL0IY+Pw9UTDV/vNkGVj2JTMpl1T1x4TYTyER+aSqYynHsYawRqmN69yOMo442hfumB6ahiXirUrPDpbskmZShx1GTbImBGr4XQwjOVKYc9X7PuKtOlwYqmso8uJLD2+SbiLY+LRMf6976R76TXqp2/z3LWb/K2LGd3/8DFmTzzGJ6YreBLesXuL5t9/jPLZL8HinPPQcnN1wZUaGtewXvfEMLBBBndQHPAN6iwbdGlJ3T9dSZyGlpjhyekuI+PpoubChZJpY6DPiT7Fy0SJbbOlZLUOWxHtFFqLs1YPpSgwbXvwDCmR0QiM6TPPcPtv/6957aOfYvmL/46r5ytqIiVFvQbNVruhduU26cDC6mWELYYA9LmwMZlmK4bPep/lkof6YdBClsEdMzC77BABkdGCoKDFUSkFl9Tpuj0sWCNYDHMSTzrHd872eUc9ZhwLSQb2kdITh4P19ml178qlqEB4e4geir000IfTgCXoyTibcUZ1cs4YsrHkXIhGx1mSMoaekS3Uxuo4zVq9v0TdTJZhxDwUPsYAzlFSofiMJGGdgnbAULfWNrvIojiCrlxWX//Rxx/4omVSN4wxlAxJClmyahTE088azifCUYzc7TKxVJgMqaRLcdJlZkKxOPRNcSUzSoF4esE6qrNIGJxDABbKyJOMw1jPuAiHYng1b+iOH/GZf/WvMD087kfazSEjBhrj2Tb5TLEkyeTYUvWB9cbQD6fnma/YMZ4+C9kMgXdFNQZtyoyK43Bvhn0j05dCW4TzkrCTEamoYDh3wioU7j+6YLVc8NqbZ1jv2ITEyUXP6UUktqjg9GHPIp/S9oG+jYTOsbxYE4sQJfPwfke7doxrQ5JAGSYLMUaqyrDc6C+VLUr5pVBbzQV52+PXmDSOL752h/PFkmJ0Q7ZkKuswJRBjIkYwkrFOlFNSVNORY1YyZmGw3wm7XeQwVywc3M2FOymxFqsz1ATOFELuoRRu1iOebjy7eHzWm7RLiVHyXKXgYuT143POk5A7Vc+7acOXTk74ctfDfMr8+UMe+85neOmlLzN98YTHqjmyXtMcjtmvap545Km7AqYgREpKKlIeWZY3Zjxgw9nygiyFaV0jGPoU9VrLCaSoVdBHSInGeSpTMalrptMxxUKJRZH81uGcEnpzToN4V9u/u/M5kxR5UDQuYBs9vwXdlmIo4i4LcKfDBk0IzsOOIZYt6j5WE6rKMarsQN4spCgYXyHOYYySMc1AwzVbTVhR9YWKuwPG6QmTASCWYuR6ToRPfZrPf/QTXDjPc1XDgWydBwoJrESdRrm8dULbWik7KWxS0aiAkoYukgp2lzkRY2Y6riBFjDVvdYJEsQOjWnksIQ9dDe9YdS1SCnU9RorOZq2xlAGX7pxQZU9OES/C7WpGTpmz2OEoTMYjHrZLdp3DJOVhzGzFuPJkU0AM1Rm88d9/nPT8jJvVHoevBZrOq3h5Ewiidlvn7WUwoxWLww32XBW+u5y4Ot6hBAWMWatAwDAIh51xlHbD2Uc+zhPf/728/O9/k+uf+hzdF77CuIscpJbwmRf5kXe9E17r6b/0S0zfuIMrgYu+I+fArf0p3tf0XQ9DtyLnwc4+WJPtEJS5XUtTSkTjeLTesAyReVVzOJ5SiqUYWG829F2vndUBN6Hdj4FoK7q56mjCYa1TPs+wKcecNBcuKQU4lkIoWgz5xx+ned8HuP3+93P67Nt57V/8t1x/5TVGGCT1SEnkHAkYjEl0KSn7ShJbNMmmZJbGsMmRKNCVyKokNkPR7MqQTWS2zsZhpMogYGUrmC5DgaZ3QpKCRw8YGEfJkX2B75nu8927+xziyCHSSlJnayoUq12LPNxfpQzdToEohT4H1Z3lbdK92vZzykQS0UCfDSaqaN0b3Ye8F1JfiCUSMqQglATJQa4MfmsIsFAwqgcqw1qRhhHVIHyrnRsOLaIdl6zPDaph0XaCOpFi+c+WZ0CFuGPrSAOYKBZBpAZrWO1ULMYVF9HQhoQZPOkUIYsqv7eJwqLjd5yBKkfmfSKfrt4KjBpasiJCL4V7JyeMqxH28Ba+ZObR0WQ9Rew/OMIAk90DzLhSm5xUGHGAtjWNZMq0YvTcC5S+4/zOXW5kjSC3Ypl7x6pPBGPph0XSCSqoCoGXP/s12vOelA1tX8A7rlzzLKTH2Ey36Xnj9YcsRuCt5e6DDftXp7SPVizONvQbNF0XwytvLLCnhaqOXL86oQBny46EpV3D2UmG4sgpYbwKbsUZsGrJbtfafrQuqP3aaEdkf7fm2sEeq3bJ2cUF8BYe2/iC9crs0FOKw3mDtZrS5IzRE0UqpARJLInI/jrx1MrhQ+HNEnkohd5ZSihUubBblPGSSuJW3fC0r7FS6Ek8yJH1ZsOjlNjEwjQXxgjjseW063ilPeddBzMed3Dj5gFHp8csbs5523e+nTeP7tL89us821xjtDylPpiwNxrzwrFhp3U4KUObWwu9aApnB3OOdirO1ke06zU5ZbxRNb+3lhADBj2lZRkQ98aqhsTCZD7BOMFszUU5453DidXNeNjcilPHQZOdCgQHi+PWJETWRaZQKBIvT7PWeu3/smWgDIm4Rp0HVBVVPcJXOnqVDJ0kzKhSQW3eztiLumKGsWGRt+bgRnQM6lLCpwI5s7vueM+9U+5/7RU+s7ngVCrqSWHqLSOjYj+L5ptk0RNun6Im+Yp24hSvHsHrEie5sO5b9scjztqNuoDQokOlBEVF0bHXUztCTwJnqazleL2iS4HaOHZnc2zb62nfVwBs+kITdOzWlkRIFt+tudaMqKoGaxz3+jU5wX4zGhgemdm4RsSSjaPNHalK7LoR1UlF+uyrjFcjcvaUlLC1o93oxlJQMraIIwpQ1BGCJDyGfeOYiSUmFcBugW55KGCMN1iTaD/+KcY/8N1M//wfJfzv/3sm3ZKmK0SfcZsT/Mc/QgSqbLAl0pVMFzdcmc+ZVQ2x7QkhELOO+7bajYwylKw1OOcux4HiLYvNhmWK1M7z+HyXqliCcCnADSnRxl6R98NIaJjQq3i2lEu3kEGovGc7DDHWqrZrKJCyCCFrQvL88ScQP8dYOPyBH2D07me498/+j8x+5aOMJZNyxxYlEIuw4esOrei6c0bhpdKxSZGAAkQtgx5MDFYKvoAH1baI6l0w6pAJRZlfWYROMh2DUNcoYM4OGqUbzvInrlzne0f7VH1mQ6Hf6n1zBIGY8uX4qQz3GbJ1jm0HavqwCAnRDisyIDy2wnW9f4xYvR+ydrByFIpJdKlnlS2hBPoCY+dxKSqk0WQUhzRwlUQnGduMp0ShtmVwGCUkJrAVfQqXcTNlGP+F/1y06GMybhiLkKLVPJ8U1UnghX424cg4jpaRbCrMcOmXrF2TNLQZt7hnMUU7AJJoli39Qk9eWqyocKqgArGd2lFlOLcJasibjOkc3XrN7HCPvdmYKjmMSVhxw9xPW3tK/iy0tqZ55gVm+xPOfuvDuDuPmFeeRZfYrWrO+yXLpGClSgyVQEUh9hvMucHFjEgixkIEnnpmh5NVz3hsiSEhUTsaKcLpoxW+qokp4ZMh9JmclALctT2VK9y+PmFUO95YtizaNXUFm00gZ6OjIRkARKLsRFdbimRl2tQ6OiooYt2I8MSVAyoLr56e0A4OjlKGVrePurknFSibgZ4lopqZklTjEkIma2IAHnh+ZXhmZXm46ji2mY3XsLqRBMZGGA9fu9dMuN1USI4ELH3uKVgWSU9NxRh2nOPx2YjfPl3yZgg8szPlbeMpb5/N+cz5OaPDHZ75zvew3pwRPvIS7693mPcL/EHDZDbhmfuZg6WKNLMU1U0IFOvo9xyrZ/Z5VHrOj89IfdBka0E7MsNs2ooltR1x4Ct4DDUWP6qpGw+SMUk7JdZ7vHOUqBhv9dsUpHbYiWdHNDn2dXSR2rIhiMOpqQjitMuo4zhHyXlgV2yvc32PsilIVdH4EcEaoiSKyVQWqCstIrdOj1IAM/yfIV8uToIxDjDYEGlCx5XY8Fi/Jn/t85TTI/pSOLKJr/ZrruG5OaqVsCkgou6SMkDBzNfd9xltfccUOajH1GjEQCyZi9hyY76LE8NwfEeAOHRtRsaRY6AXPbUuLtasU08SDVuNfVA9haJBlRFSVyw7SAvVwuxYkLomhcRp6ii9cJo1ydchtBasrahdgzGwoqU/9LjKkxeZ9v6KZtkooCsHklje7FtOUs+sbhiJZWK8bhZlC+3NinOgcL2ZMBVLMPnS2bFNU7ZGowFcMUxOHtL+n/8Nb/trP8oreE5/4f9O/egIH4JalgVstJiSiQSWqcdUwv64IQz8lGhUU7al1Oai9GIGeJzq8wq+rjhfrVjFnghcaSbsOo8Yy6bdsOk7Qo76PYd8oe34b4v+l6wFS2Ud3lgaX2kWjrOkFIfRgwwE1zJkFRWoaqrHr17qjoqB5tZTPPPjf52vPfY/cvJ//b9x2PdsQkRyIRnDRUyDlfktB1GHcJ6hEkdXMsuSNXUZkJIook6fKQZvBVsKI9Q6rMEUurfEohr3hI6BbEo4CjvG8Jjz/JfXbvJN9R4UjeMwQVs2Q/NUJeZDB2d7sNaDwNe7e8pwcBA9VDBc7kMGkuQ0uDrBpIyhUDtRXVAq1Oi61RnNc+tDoE062muMoYuByjtqq3GUCqIbDu/kwfiC3iclU5y6sRKKShgG0uQBNGnT702Ia373f/KNj1/7tV/jT/yJP8HNmzcREf7lv/yXl38XQuAnfuInePe7381kMuHmzZv8hb/wF7h79+43fI8nn3zyUky1/e9nf/Znv+HffPazn+W7v/u7aZqGxx57jH/4D//h7/dHBWA0ahiNRzT1iMY3TKsRk5Gnajxns5qH2bEoBuOU/VFcxlr12Dvr1UkxGIuLSWAT41xoVufYrtVRjmjOjZo3gT4xT3DVGVyGlTE8pLCUguzOufHHf4jH/tR/hblyiDOV0jUFBG27GSAZQ3+xZvniVwif+xLN2YZl1zGZjsk5M7E1M28xqF3MGU1SrkyhKoV6nfC9wXiDqxqiQLPbIPUQHodw/XDMc09eY2c8Yr2J5GIpudBMalLUuWckUtvEzb2KnZ2aLiZW644UMikUTh5lrKmxXogmK745DoLGWqto74Rs1a9PKowsvOP2Prf35tw7XnLnZMUmaA6w2Ezt1fopWcMCK6A2kUmlgYgpZ0LK5GTIRcFmKcOVHp7qDKHNvBojD1JkmXtcKewUw04RbE5cr8c8NZlyeGOPJ7/93TQ7U3wpXDGFJ8XyTb7hGVtROcv9NvBKCDw+mfC9B4dcy8LDkPmt3HHwbe8lj2ruf+LLvMtOmQjYsaeZTrh9Wji4ABuHxRZLEUvBYKsR8uxtFlemnKwu6Poek4q6hmzBWYUh2m2abNSkXpMF4zzFecazMcaKps6WrNkiFO1wDUWPDNbScVXDpMLbzE3UDbDOypOIZUiBHazfKRViUDV/0sx6TEhIFyhdTwk9oJqkVDl1pFReXV6VRSqHrSrdyETI6GZXBgh4KJFUNEtpqzuR0lP3Pd+3aPmvk+FPX/Rcu/eIt41GHDooWThJmdf7jk1OVKLhf77oiCkXdXekoRGdsoIaEUNXIvujZnA9CckLm1KY20qLySEfJUgixMDIaKHW5USbE8ebFWexpy+BnKN2AlPCDLZqnKUexmFnqfAgRXoxxKSdNXHCyFaYxtPHlrkYdqVi12gYYOgDq7ghToWz1PHK2Ql3K8+duOF+WtJJIQBnIfC1xRkt4MRRiUNkGFcPB6vKWtUuZeGgGVG2BT7QhaRBpKJjVS9OIWUp4377t1n9/P+J2+/8Fp7/+X+I/Nk/xvmtQ3DqGssidJXhtIaNEeazKd5YUtJtRy3GZeB8DDCfIpQsVH6kiIMY6dZr1qFlkxO+ZK6OG3JKrDZrQh8IMdENHXF9Z2U7t1QR6dBpqJxTkJxzuuZu5zAMVt/hYxkKSojExjK+9RilJM2PKwmTMkznPPUjP8zsL/8Yd68eIs6zER2rAAP9VdgmN4ei98oEYUcMDQUkkaUM+H1Diyaqn6fMObBjLe+fz3nfeM47mhHPNzXP1jVvsxXvdjXvH9V893TMD+zM+IHdHT442eEpqZGUsVmLJkwm5UhBLdlRBr1O2b7uA1iuvGULF7KK7KWozkkMJQk5qQNKbdZJC0USgay04lxorDqyKuupxEOJ9CWwzC1nYc1pv2ERI8vQKW6jRFoSmxIUVEkim0QS1dZYcdTWMak8I1sYW0M9XLfOqJja8HsrWn7fnZbVasV73/tefuzHfow//af/9Df83Xq95pOf/CR/5+/8Hd773vdyenrK3/gbf4M/+Sf/JJ/4xCe+4d/+vb/39/jLf/kvX348m80u/3xxccEP/MAP8P3f//3803/6T/nc5z7Hj/3Yj7G7u8tf+St/5ff18xpfa3uUiBkQ4OIKi6rwaOS5HwIb0cUlx6TCRK+JqiaXy2LE4RQeJxEfew5OV3TCWzkYRW8eU1BRUtfjEPY6oTGGJjlejRlfOUYh073xJuP1Rufsg4jLlKE4Glrt675D5hP2rk05fenL0PXMJzOOjs8oYpj4ChuipqwXHQ3ZwiBSg5qCn00IzmF8wJvBUeH0+Q4OJ9SVoe8DOQqmROZzDznQdx2qsso0E8vh1RojPetlYr3oSH1mEwwpGUYjjYGPKZFNRoYsl67vKDFTe09Oqg/w1vD0tT3e8ezTPDg750uvvsl5t6GUgBgLg9KcYdabydhK5+XWqZ4iJU0wLTlhClTGYGLihQvDdGN4LXbcR2PbXVCR2dwYdothd+SZjx17N/d4+tvew/3jE5aDdRgyV51jZzJmeXqOH035yuKYuYn84cPrPOs8X12v+K3FGe17nubqk4e88psf5e254kAM0hiqnSnXTzO3jgtN1turlAxFRw7OwGpmudhveNiuODk9pxuSgL0zGKPCb4PBmMxm02rxUKCyHmeFUeOYTVTgbKK+WDlH1aekpITZXC5ZIt4JcmXOyZtLRqMxlTmnJ1/CnFIaLJOmsM0b2ZKgt6JKkxIl9AqZkwLicc5hHENirAfRmbXxFbn2l1Z+ZOjQpDy07vMgGi1IjkQTaVZrHvvKHXZOWh4uj1mtFlwdT/mW0Q6/vjynK5YHfcsmjhExVAUqDLYYFfkOp8xY9CS4zqppGFvPCMejGPDiOQobgoVxU+N6gxnEkH2KiBi88yxjxyIF2pxpYyKVoJ2l0Yz53lXVN+ShA5BVtLnJgTfbFaclkjYrbvkxEhO5cUwkc95vqJ3hyWrMzDi88ZgK1iVytl4T9j2TD9wgHHnyfEYXz5k1c1Z3e6TX0eVRDhryKBpsMAzbsFKonKVxliolDqqa2oFIwTjDqg2EGGE7RCnD/SXaochxTfj0rxNee4P03d/F0//VD5P/l3+W41/9VY7/n7+KsxX+iSfZvXnI8jc/wcErd9iEHl9V9OsVeShut50WZ612bJ0nRSVUV6OaddfRC8TYc2NnD4dqX0IOhNyRJJElXOaqlfJWVMf2e9fOq83bWLxTQNwWAX/ZkRlItEaEynlSCHTNCL+/p+NNtY9u9bE4U3Pzj/8QqRJe+t/+M+Z37xFDoBGhGUbWm+FesYOt10mmKUUPKgX6UkgYZZ0AgUI2Qi2J6/WIW80UYqZLkTYF2lIUumkMh5Vw4Cp8irQJqqwi2RXhEqDZ5UAg0eVIEtGxrhhlVA2dy+0o6zKXqQxj2MGHLWjBqv+Wtwr+AqQ87JGCy4ba6sitKu6S2p1jT8yJvgiJSJ8iTbH0JdMP4ujKOu3vyhDcKUp2t6KOKCuazRqyZoz1SYswI4LddmZ/l8fvu2j5wR/8QX7wB3/wd/y7nZ0dfvmXf/kbPveP//E/5lu/9Vt5/fXXefzxxy8/P5vNuH79+u/4ff7Fv/gX9H3PP//n/5yqqnjnO9/Jpz/9aX7u537u9120MHRLTGUwTl+URGA5MdzxhvME3quVK7lCSYZQVCjp1CyBA4pEbImMU+ba+ZLDZceDnAeSn4pABYV/daJq8khhKYkVgS73jLPh9HxD97HPsT/xNF2H5sypaNJsLzZriDlwGlru3rvHE0+9l3DjkHXquWksO43nKEDjauwQ3WWBCkstMlA0DVXuieLwrsY7zZjp+kwehFkpB0KA9XpD5R03rowwBI4ftRprngtiDdXE46tCCoV2kVhf9DjRIs41Ql0Pr7UZTiQhEUMiJ8FXtd4gKSHGsFPVvO3Wdc7XCz7z8iucrcMlM0HEIKJOg+18XMQqAnqYxW7V8nqDJmwGG+Hp3vB8GHHWrXmVzIWxmAwTDLvFckWEw9pTW0fVTDh48jleev0Boxy4Np9z/3TNo9hzZezYxMCkMjw7HRO7JU/Nd7hqaj724ITPSuHimStcfe4mdz79GR47X/N0M8dJZro748Z55vZRoekGZsbX9TKNWtMIh55HNvJosWDR93Q5MDJQ1zrKss4TiuiMvXApRjRG83L2d8dMvFxSr20BBpiVzbqheqto7ApoakO8NufOS8c8PT2kMvfpSt5SuJWnwVsnNeDyNTaDdkhSVMvD1gE0sB2qypMwmKzFZiLhqhHB2YFZoRtPHtxfpRSSgTA4bwQ9/dlVYJHuEpanrEskdj1SZd42mnHWd3yx6zgzmQdtx15tBkKouh1iKAPoTbs7LYkVEbEVU1chIbFJmVFdc9pvmPuKpoBzQomGhBJXK++JObHJgT5lYir03mP2DrjyxJPMdg8o9+5hzi4u2+2SC0kKm9DjqpocLEeh45qfcDiec3xxQjWpGb/zbTx18yaTX/1tJmIpxrLebAipJ99uGL3zkLYKhLBmdFEztsLFyTGzOMZUhqOFosaqwQXkGTQ5ApUrNFbHDT4lDsZziKpX2vQdIaShSDHD+6bvq7Wevm8xXqhjC4++Svsv73D6q79C/JYPsPPHPsjV7/9j9Os1J197jTu/9uvceHRBimvaIJA6Yk763qZB+ydqa6/ripK1UK2amr4ENhTO+57peMRhM8IMmoyEbmJ9yoSsheewJw9J7uXS4mxF7fyV928BAXPUsdfgTtpec0Ys1npyMZSdKW5/l3bgdFnnEIZQSSlEabj5P/vDnD464+4/+z+we37Me5sRp8slp25wJhYGVZfQodk6IkKNfr4dwG3bdTAX1cQdVJ5YEskkjDU0xWNTworBAyOnqeObApsQmdY1ZymSsqaMMxwgNjkSho7OZZBpVvH51jiSBqCf4g4cMjhynEnDOiqD8F4AN8A49YstQjfkEhk0X8sXEOu0k1YKJSpDpk1RER8p06MGkMY4RrYQMDTeqRWffMljKkZUvF62Gh9dgLbamq1g+3d7/CfXtJyfnyMi7O7ufsPnf/Znf5a///f/Po8//jg//MM/zI//+I/jBoz2hz/8Yb7ne76Hqqou//0f+SN/hH/wD/4Bp6en7O3t/b89T9d1emIdHhcXF/oHb0EUQa8BUpEYCmdWuN93GHHUA3o/Y5QZUSBLJltNhpaSsKI3xaTv2D85wcduAPposaKdDiEZy6aoVTqKMLIenyI2W45Kzz0SN+OS9FBFaaFADEF/VNGzEzlDn5GYufv6q+zuTZnbCp54gnj/nIPZDqePTjWTRfREXYmijbytaYyjhMxeXdOkTO0qSqloU2JxsWG9zownyojIVaLvwduCk8RmvSF2Qm08zgaMhXUXWMWKkgyLtQprKyNgHWZkB2xzoiqF3EcIYIJufK6phoXB0gBvv3EFAV586RVOFi0Yzfsw2YAtiAmIFXIqWFNBMbogWrVQshX0WV18MoW9VHh38EgbeaNrOSlCLwoW3C+OQww73iLWYcTTbzKf/vhneOL5J3jqO97Dp09+jbUkbIkUb1n0PdeaES4kauc4HE947eyCj6dE98RVrr7rKe597SXmbx7x/M4OJUa4MmN3kbn5KDFtHUlUV2GKit5K1p+5uMxmZDg1idPzC0ofqRFqrzj+qq6UZdDrgpUFghjykANUNRVV00AxuGLUUhoiXegH3Lgq8lWUp/k9xnjcWLgfO55HmPuKVdyKY1W4l4YTJYMF2TlLKdpGzrkgqWCkQFDwYnGe5DxiK+XPZRRS1QPOEivVuahvAG1xD+Ivw0BJTVtyLcQUWYQ1cRXwvmJmdC0Yi+V9411O4hH3c+QothhTUcnQXi56qi4Z8mBbXsXCJgsTK+w57QJelMiuZI7bnnfMdmiyao2i6KzeAbYkLnKkn4yQJx5jd+8Ke/WY2EcW9+7z8JVjDm2PtZ6tLDnkzDr1NHVNFRZIEbpieLVdcZ47upFnfvMq3/6n/kvMIhJ/4/NU9HiBs65nsx+59U03OTu6B0vL4VOPQxBCv2E/1oyqikem4yz2jM2ICV6P8lb1a5WzVN5js44PRkYYeU/qIl3XafezaGfLWWHL77LWElJUSGGGSI2Xgksr0tErVL90l/ZXf5PNfMqqXfHowT1uOs/cCt3Q+Ys5vZWVdtnC0Q0xhjzwmRyCcLHqOQobYui5urOLzYUshmW7ZhMDsUCIg4NrKJ5lcN7YgcXixGh3xaow3IshxXgZSbHNJCpRN+56VJMRkgM338HszGHQ6UhRbYcxGkrqUya5iqf+yA9w77Mvkn/5V3gcQ2NXasUd+DG2CEEMZ0XhkGRwQ0dBSiHKMDYs6oi7Pa6ZVp7VJuAo1JWjMo6xHTQmMRGTBrWug27ep7GHGOisp7YabJiLXmtxWPMqM4QODvoz1YzlgQAtg2uOoZuUL+nEyBBJg04G0iC0zyhcj+K0MCsZY8NAyXZIZCh2LRexw4qli1Hhd1GR/yMT6Y2OWGOpcMYwsqorcs5iB83e4P/Swz6qtVJg6P8PCHHbtuUnfuIn+HN/7s8xn88vP//X//pf5wMf+AD7+/v81m/9Fj/5kz/JvXv3+Lmf+zkA7t+/z1NPPfUN3+vatWuXf/c7FS0/8zM/w0//9E//zj+IHtAHl44QnONh5emcp7GWuij9MBa15QYsIWd69DS4/TpHZrJYsn/RkvtMGAA+UhTS5QVKSUwLNMYxK0LjPQichCVvpiWj3Wtc/873s/ncl9g7XWvLPEb9/t6BaFT7Out8N4vOB2eHB7TzKb/6xq/zTROPPxOabC798l4MIytv6WLEMs3Ck7bG7e9zd1S4WGxYLVtCn7BzZZyEUIgh0YwdbRfoQkcqUXHlPoERqsYTotBvMrQjrs8a6j3h3tmSVAtt3+tiUAamRyjKDTGFXNKl3XV/0nDj2j5vPrjP8YVGBDg7WCW3IXnOabuzFEqOaqFTLx8xRk0WHcYCMWfqlHlHP2JvAV9arXi9WIIxNCWxY4QbBm54tUdGMdjK4bzDNJaubzH1BD+fU8ldrjQTrtiaIpmdyZzPnD1AvECAT3Rr1rd2ufFtz3Hn0T3sK/d42+6czvT4+YR5slxbGipTEcaKM5cUKQPIS4og2dNVlvWk4dFqSeg7Jt7i6hGVN3gR6toTs24KJQ+tcZSwXFWW6aRRITmGFDMpBFKMqp8wQ8igtZQcVYgrYCoHXaQjMxmNeGFvn88fPSJaQ5aMtQbS0Ea+BMx943ioZC1uBAWAsbVii2DNNmNFKF6IlSU1FUnU+snQJ/t6QSWl4I1SfBH9LxU43fRcrSquTubErNDGw3rEB2YzfuPslDdzjySorKUairKvH3mEnFiGQCia6TLzunF1ObFKgTYkZn6kzIysXQGyFvads8zf+wFmt5/k5Ogh9x+8Qd6c05+fsd9Grv/gH2Lzmc/Aw8Ug1NdQuOJ1IT9q11zzjmuTKeMnb/GOD34vL3zLdzE5vEWbMi//ym9QrI6eU0q0UugTZLFMHr9K/cYJq0+9Rugt05iwz+zw0ATuHsP5KRxKpeOMUhgVmHuHd0MSsTja0OGMJ8dIDEHdfIBxDmstVVURYiRnXXPAYMUSeqUkJ9ERUoUFWtz6Ebk74mx1xiQEps0+IWbUqq5gvW1Hbqs3sdZinB/Gk5baec43La3AYrPi5mzO2FYY61iuVrQh0CV1HxV5qyOnbh11mhkU8FY5h7eOy5yftH1u1dXYrdU5a+ErJLr1GoMwvXod0zTDyFk5SXloVV6mHAvIfMYTf+ZP8PkXP8tjDx4xN4YqaKihEqyFNarJcUCN4FB+ixXDGMVM5AIzazmoahxqT+5T0CLHONpYBnF0Zp0zTYqkYliZwlG7ZuUcGwpN1gRpa/R+JAuyTY/GqjRA3GWCOMNobYviF4U7I2LZNvKFgZpMwRhltzActIPRjK9YMqFkrPHDmM2i4Dx1om1yjxftOPUp0iforKETS5RMnwrOenqbdGw5gOm8NVQ4KKpnKUbdV5R8qeH73R7/yYqWEAJ/9s/+WUop/JN/8k++4e/+5t/8m5d/fs973kNVVfzVv/pX+Zmf+Rnqy1nD7+/xkz/5k9/wfS8uLnjssccAbWVrWasjhrWHR1NPU2lVWbLVsY7JdKKuISMWRxl6lCrFnfQtN87WzNaRuxG9kIeTnhlmxBkIZEWYi1AN9rExjoP5Dty+Sb+/h+zNaY/PKSGqst57JQXmQtf3nG42vLo5p24mRDti/4Pfwxuvv8p5zti65nDUcG+tOpWY1WbXGIO1qgPJYqkEbmeLdSO6ekpcnhG7QugTk2lDLoG+03HOZOoGsV7NaFrz5LOHHC1fJfVrNivPG6+25N5zMH2C2fXI6uIIK0IX9ERnTaXk1JTUQlvUWlkKlJSpreX24S6RyBtHZ6RiEekxFqrKEkLEGFXHG7GYQV1f7PA5dEGUwmUKr4+OJ7rCrWXh7qLnrjOUpqbZBKYJHqs8171nUjK9GLIz7N7c49rtW+zevspr9x9xfLxk98YNXuULVNkxczWjWc1L/YaHRnjb9ICvPrjg/s6IJ771nTxcHRNefo0PTPexBNJ8TOXn7C7HhHHDWeVwKTDarKg3a+ygv8lAMYXN7ogH04pHJyfEvsOJciW2+gLnVblvk2DCoFcwQmWF6aRhPp0gplyOjWDINxEZaM1v5YOYwSZraoNLhtbAw8UpT1eer5REFE2ZJg9uD96ai28ZG1u2hqBARoV2DYLHknRGrZXOEFOUcN5jqtEghBwW221H0hhkeD0yihgvoBlT1rJoN5yuF1wbzWlDr38XM880U1aTzGfXC45T5qboyVsX3uGkPehT1inQUVRQKFbF4UVYlYyIY9dOVN9mM7kNiLN04zGz97+P49WCs5dfxD99i5vf88fg9pOsH55w9Ou/yc5ol/VFT0yRXoQtvKMvibubBUchcKMaMXv8ab7rv/lvePmV+3zov/tl4ldf4/EnbtFfm3NRZdyqZZZ79kxhfgHmw2/S3JqyeuWCem9KGAnLnYrxrTnnd0752qMTxFZDXRaZ2Jp5VVNZFVuqVd2w6Tua+ZTUK33WDwemIkJVVfR9j7H2Mk+tZIghDnqUjLVqqd86Qahh0a+52Ky4tXuo42urDKauT2/lAOl3067K0PHwTnPe+hjZkDhZXTDzFVenMxyO5UadQkmKslSGcMTMADwUg2Xo8hWoKjd0M8AbDbzd6q7e6vCofTcO12JOEZzB2RHVE7fJbkgTZgjw3P7kg3i1DJrA/ceepPne72T5i/+Gx0PDp/olcVvaiBJtnV7SFJSWuyjKBGoEGoEeHXO90W6gRHadQ6wAEYbxuYZ8wtQZck70TcMr6w2SDcsMywQ71jMqhTpbKqPI/0r0gJFFx+qUrbn5rddieEu0IAEYHE4KfGRwrJbhntevykW7Ih1cjpUq63BoIKVFqMTrzxALLdAVYVMiXUmEVFiUSCuZOmeqlBhZBXk2yVI5Q4XR2A4cpuj9K0OeSflPJcT9vTy2Bctrr73Gf/gP/+Ebuiy/0+Pbvu3biDHy6quv8sILL3D9+nUePHjwDf9m+/H/Jx1MXde/Y8GTU6IYp3eoEUQcS5s5rRKNqzRuKmsKtC0a+00pSNJhax76qS4npm3P4dmK3PasSxk4ArD19kuRIcVza2/b0kgd+7bijWiZv+NdyPQAli3rtsNmXaxz1HljHyOrbsNJv+LV9ZKb1QzzaEE+2+C+9AbfUu/QrBPz2YQHm1OcqAYnDcm53jusNbRkQir4rmW8icgmEc46FucdqbM0E0cIheP1ki5mqtoSI6wWhfUmEtIF3dJojP15x2aTSd0OzW0hbTbkkKmMYRMgtwXbZELbI1mFoM6CdRqKZlNht3E8dn2Hi9UFfYgkgco7vDeD2K5o+3q46fRCLpAEZywMN5uIzkRTylyNlhdaz3LR82pJxEnFKGYcmVtNww2nC13MhWxg7/Z1rr7zOfrSI5Oah3fu8/pX7nBwZZ/kK0oxeG942PZ87PyMW9evcYrjc7Zj71vey6kJLD//Mu9tpow9xJ0pMpoxTof0kzH3p44mWppNx9w4psVQxwUuKIuhk8LicMzDElj1G1JJjLzVFqy3jMY1rrKkUMi9Qvo0WwYqb5lPJ1RGN5SQsgqSk4YfSszapZJtGmsilQim1mRfJ5jGc3e15I88dpsv379Ll3qEispb5Z3AsLjpsVkpmgUhE7MgQ6tfq4/t5NsQrcFjMUnZI1h1EBkZ8kwoQwt7EEnK1yHGtwVdLkxczblsOF4uGUvN/nhEH4Iuztnx3HjOcddyL/fU1WgoljT4zgyz8T5nViS161IgRoLNRCMsQmRkLaPh9L5lZNjJmKvvfR8Pjo/wh1c5fPq9LKdjNusx9n7HZPcaez/0Qzz4H/8NVxZLhEKyhpwLfYisusDdzYZODDvGc/L6ff7t3/rfsLxY0I8St97+DE/+4Q+w+7a38/+4/ypv/vqvcyVn5iPPoZtggmF194R8e0q7ZwjSMtqpWR6fc/K1M/J5YWQtmMzYeSbOI1aU21NU97HJiRz6AQnv8Y2n73sNq7SGtm0vC4rtZpVivgyvdM5dkpBjSljrOFusePX8IVemu4ys1yJFhC60g3aiXAqq1ewAJWcqX1FiIpREdo5H7ZKYep7cv0KF0MVANtClSBfCoOnLipeXrWpEuwEG8EOx4VD2h3f+G4pzPSDp+LiPiVxVnCxWGrTqhGIb5jevE1LBWH0OxFy+FttujTEGYw3ZO57+oz/AJ77yZTYf/yRja7gYRi1qtABjhwBdIKKU6iKiB0ixGkxYCm8OMMObrmJm9SBJAYZoCFdUDeB9xZtd4FEf1EIcAkJNRNhBx5hbqq0rkEWzffT8kt66n5IZxlOJjBZFW6MGgDFOu8eFS/F6zkWBfEXBeAlDlxMmwSYGinFUxmKNpspbU+Es+F6oh6nCOgc2JbKJPRvUeVdnQ5eEsa/oiqMuDp8MlRUqq9MBM9B0ZRgH/l4e/18vWrYFy1e/+lU+9KEPcXBw8Lt+zac//WmMMVy9ehWA7/iO7+Bv/+2/TQhBTwvAL//yL/PCCy/8jqOh/9hDhMs5fUZFXxfeECceUynfJEWt7nPYgq8ymHw5d89FW7LzxZqdTaDrevoUSBr2cQn3Udy00CDsGO0KHEnHQxKfi0v+w+k5/kO/xl+s/xCTxZoUBhjT0N9OObFpOzYhsI6Z1/vALpHR2RF3funf8/gTtzh77CrnL77ClUlNYwVvrQrYRG+eXNQ6a3IZFoOe6t4ZhHO6w0hYR0wQJlOHwRGNZdUGnKvUfrjuSUE4O96wWmbqPWFcW7pNYt1mlqcbWC4wfQslIEUY1yNi6jSnRlRsWlWqwcgFdkY1b3vyCbo+8dLrD3UsY8EaPyTr9oqRNgDDAjIwMTJ6CkESMvy5xMKogyf6TFkmXo+F46ombQKHMXO7btg3nkYcMnI88e63kxvH6YOHnD56wO3nnuRrX/wSt3b3eOPoDl/88Kc48MKT4ymnm56Pnp7y1K1rPHnlGr/yysvY9z4Ju47jF1/kbVXDTiUwd0g9oaluszCHnHmro7RU9L0l4UKP3SyRPlCMod8b82jmeLC6oI891mr/wRsd/Yg3MIx46qomhIw4g6ss0+mIuqq106THIrb93u3ibp1FrHZsTErqLvAOko556qbmtbvn5CcrrtYjYkoKkvJuyEkRUuSSyizDvLyI0iRy0XGCFKGIirSd+brcFGN1cbWCjFWPJkkdRNtNRjeYAQCGEjoNWvDXYpi7mkXoubc6xzthbD2maOFZ5cLceV7ebNDhhrbkkxi8tYgppBCJRcdWaehCJCmsBwv4lcriUQdEiZk8api97/0suxXy6stsXnqZsw9/mPNZQ/1t30xsdQFvTs6Znz+i1oO6xl3EyCYGTmPgjdCTJwYvkewST337U1z99u9g/PQ7qK9c4ZO//gk+9bf+IeHOy8xSprOFxVXL4ZUxF7Ii39ylAM2pMH4Icg4tnnv3WwRHbSyNcTTWUTstHnMubLNu+r7loB7RDJkvbeiRgUnSx6iOF+c0OmEoEgoGsdqFESuE2LNetxjjWPYt99bnFBGuzuaYIqxDIIdhJGa086ZZNzqmzjnTNI2OjVImW8eD5Tmrbs2NnV32mhFdCLQh0uVElyIx58EJmC87J9tunwyjA+90nbAiVE6D+7ZsEl3jtcDuYyCDrqExMLEOj1BNpzQHh8jApzFGyGWAUw4dlsvCRRziPKMrh7zww/8LXrp7l92XX+M09LRf91wq6xnSxUXHV5FCO+wHjRj6kmlz4iRr2rahUNmCy9oBMaVQi2MMHPiK475lrO07orFsBGxWV1tBMQNeVC8X2aI2tvMfBkikFo5axWTVpW0PGnkYL5VyeW0gDONf3ctS0ZDKIor9aHMY3oshT05UcOuNoRFHnzObGKgyNBlqoI2JrgycpAJ96BmljI+J2nkaI3ib8FZ1nM5oZz3+p8L4L5dLXnrppcuPX3nlFT796U+zv7/PjRs3+DN/5s/wyU9+kn/9r/81KSXu378PwP7+PlVV8eEPf5iPfvSjfPCDH2Q2m/HhD3+YH//xH+dHfuRHLguSH/7hH+anf/qn+Ut/6S/xEz/xE7z44ov8/M//PP/oH/2j3++PCynqjW31v2QKy4mQJuoLV72AJaeCM4UUEs6ozkNkKHaK0HSB64s1dddzVhQ8VUQdDCJbcE+mFjt0bVTMVBUhJsMmZnLpaE4e8uA3fp3HL1bkECneDYp7PT2HnLT4MZYTU3i9W/JsnDHZrJk89ySPdhx3vvJV9l3NpPJ4a1mXDdloaF1MEWe5nAObAudfeInyWCK+a5/GVIwnFaN5TQwB5x3tJrK8UJ5KaJVguVkFYq9dm8p7nNOTfde20PekvqUlYpsGl2G5alWPY1QM561C3MbO8fYnb1J5y+c+/ypH3YZm5DX6oMjlTNw6XVAuFxJJQ2vYDeXmcCoAJgme6z3XV4ajLrJuKiUfLxNPjmZMRWjSMAOfjbn6nqfBCO3pMe96//u4d35GVc148PA+p+ePOPSZZ33FpLb86uKU5dU53/uOt/PlN9/k+LEd0rUZJ1/4Is8lw/7U4XYbiq2Z+JuE0WMcjWe0Jl4WLfvGMllvmBuhKQabC3FUWB5UPKyFk8WaEHsVu3mj8QQGjNPEZIOQQq/FjDVMxw25mVBVlQoBc2QbjKesE3VhaHs9kVJBsuC2iHNRCm81qXiz7/n4/XssG0eKBoPFmArj3ZBLEhXYBsPMX7OIzFDM55SwUcg5kp2Kc6uh2EyiLhAxhlRbyqB1cEZR3inpyS8NAaPCMOZCv0aA3VHDcb9imTrurhc8Nt1nZD2UhC+GUTFMhzGEjjKGzcZapZEOgs2eAWUo6ujblEJtMhNjEKeduq6qcN/8btJkQvtbnyKaDZ1Euts3efKH/iRH166y7xtO/sOvk7/6BXYlU+eiBWiMdH3HKvaclchx7piYA77WBqrHrvOBb/mjvPipL/Daf/cr/ND/6i/ypX/7P7H50kexNWRJLFxh/MJVHrYrdq9cIXYbutfPKGeWvEogazbJEkLPyI0YiWeGZ+JrJDNAvOQSABfblsOdHawpdLHDOU8IAWMN3vvL1Pg86JQAxKkDrE+J9WrzVgCkiVyUwKLf8OThNQWphU4R/L0GDG7fs23hADqOCkGT36tRw3kILEvH2DmuNRNKjKSBC9SGXkm1JZPJAxdlO66QS9K4q6rLDoh3mhaeUsK76i3i8nDtdzGCMbRdh7UW7z2+RNK4obp5g1400sEM8PivL1q23adiBWMNAcv0yaf5rv/6L/Kvfv6fUL/+On2WwbLP0BHSYiKR9cCI1gZdyVgRamsoWbVaxyFQkzl0nqkVzZnDMC3Coat4ajrG9IkmFY5LpGPrtCu0smVxCWM9HQwHcOUcWdGMMGcdpmTUzzr8TmIGFICKZe02l2k485RBV1KGEVNGoX5GoC/5koJnohKozZCP5AZhdyU6+l+HjiYLY+PpTGGVEsvU05bIJgUV44qhypHOZCpncAlqa/FGhcz/ybKHPvGJT/DBD37w8uOtjuRHf/RH+amf+il+8Rd/EYD3ve993/B1H/rQh/i+7/s+6rrmF37hF/ipn/opuq7jqaee4sd//Me/QY+ys7PDv/t3/46/9tf+Gt/0Td/E4eEhf/fv/t3fv90ZPemJGToAzpIksZpVUFl1X2DUWWRViOZEsCHjkEvSJmLZOevZuTgn9C0BQ1sSAyJD/0dUSCkibMgsTeHMCLX1HPSB9ydP46c04zHPjyb0R+eXmwoIMSVCUKKjsUY3Jgp3256TLvDYWUv3aMn+409z94nPc3G6wk8b/MWCviTCcIKgaNaEWIv6oQphs8YtoHSZSirm0wac43hxwXji6brCxVlP7S2rRWQ89myWKsIS4/BNRSlhABIlQuopTtX/lC3QqQzkS10QY8zYUnj2ietc3Z3xpa++wnLT4yvBuv8Xe3/6bFmWnvdhvzXtvc9w55yzsuaxq9BAD2iAIAACBECQBCVzhE1LIZuSQ8FQKBwKf7L/BeuDIxwhOUKTQwxbpIImRYoQJQIkWkADDXSjgZ6nmqsys3K6eccz7L3X8PrDu87NgiSTzY/u4OnIiOzMW3nP3Wfvtd71vs/ze6y2Nh2AFmla7etRwRo9BXmzOSEYnA0kAZuEg1J4ZrAM55GV8czmLQfLgZvtlOCcnrylcPnKLs9+7kdxviFYQzgfee83vszJ2ZLHj08xufCiC1yeB3ZCw1dWh3yTxF947dPcHyPvzQxn1y9x9N4HvJAd+22L35uRjeMgX0L8VU6aGUvvKJUBZBHGel9lqWRlCtl7+p2Ow9Izjj3eGm11tw1tYwiN19ygmtVSkpAGh7QtbTNjKTAWsM7iilGxLnW2LYrJdt5SSiJni8m6gYuWMVhnmEwVlx67lq3dm8T3Hlws2KVkjHOq0RJqF1HqqEk7X2IKIrFaEgrinmx8BlHhrQgxGEzXKiwQbWUDT07G1MLmItW1rqDGMG079rsZ6+UpJ31PkDOe2tqjsRpT0WKYZ0uDuXh2nLWVTSQ0ztFZSxItdUcUztYjYGBiDbFkum7O5Kd/grg14/jzn8eNA0N28KlXeeov/OvcLS0zP+Hwre8x/s4fcCOP+FBdGTkzpMhYEsUYzqv25jQuyQjh3h2++j/8fX78536JP/Gv/wLxfM32B/dpCcQ0cmAbdne2Gd47owsOjnrM4zPmXQP7jvJ8i9trePTtB5RsaLxl7j07oaXFVreWbNznDDkSELZ9g2TtTAzDqOJYURdLTkqjjjUN2xjVQqWcWC2WRNGEY+890RnOl2v2p3OuTLbJOTOOEUmb3lXNuBF1LjrrKrFaXVxtN2FZIkf9gpRGnts5wIsC+2IRhqhjq1zdLgWpuiygVO0UEJwnGEvrw4VziKKaKSnqfvPeM6TIECM4ozwao8J1a+s9t7+H7O+SNcBMdVpV76Ei1CfFkq3EYFcMxTTc+JFP8pP/xl/mwX/1X7G+fYioOZJUDCMqkC1i9XkwSjsuxjKIBg12VuGXqXZdnOnYdgYrjmAsW+I58IGrkxm2y8zE8jBH7pWBpWRdC0ULiGwcsei+Y4xyucQKgsVaT74Q39qK+teu6IZFVIwydIyUi2ewTokuPtPN6DZLqZE3YLK6Zz25cl60WPZexbWu0rv7lAlFaL3QpJEuC4sCq6JMl0EsYylEIzTFEZylz5HWeQKW8QdE3f5LFy0/93M/9wRe87/w+uf9HcCnP/1pfv/3f/9f+H0++clP8oUvfOFf9u39z14l1g9W1Bq6bAqn0wnOeyxOU2sTlFTwnaMkdSbkmBDJZA8uCZPzUyaLNeM4MophRHMcspFqly60otIZh8EX2CCgvLXMbeBpaZFk6B8e0YjaSr1TVXdMmU1wokEIUtideO6ZyKpfMx0S7dmK2M+4ce0Kx+cfKJa+5nosxGBCIGS9iTdAMig4PPt4ZIQHWCYmMCxGonhOF5mjx4mSGlxraYJjcZLpl1pUiBNihnVfaJpOr6kRjHekUShjBtFMnZz091b0JPP8zSs8d2WHjw4f82BxTrJ6Kve1YNmwQXwIKojePDQ1ZXRzLYypOPlS2BsTzw8TZCU8kILMZhwMwi0z1VOICD4UZm1gyzoefv995PY9XvyZT5N3OhZvfsRkMXIQR663M252U2yA31mc8JurBZ+9foPZ+ZK7HZxf3+Xx++/yfG84mARkp6XrE7fGCdN2m0dZW9ViqSdFbR1LddNI1XBgIE6nPNqd8Sg+wvbarm8CVF+oWr8Nqkw1BhcsTdfguo5UIC9WpFhISSApF0P5FioeVGdBquAxFNZXDA0afOiaCduTDg8sH56yygMH2ZBQqyzRICUpZC9r8VuMEmCtcaRsajGZSTbWn8tCcBQLQRRAZyh4iepqw5AlItWm+3GZnVQA2CYXt4ii4Bsf2O/mnA8DR2nkJK6ZrRsudS1NE7DBEfuCR7uieKpzT4FWnXXsWk+fBhIqvj3NiUEgYOjaCeXqNcKf/gX65ZLx87/L/GzNQ28xn/oRLv3qr3Ln/ho5OWN9/AHnX/xtnrm1j3sM/mxBzoUxRsasY6iYM6dpZOo7kmlYGbj22qv8wv/hb/Lhe3d487//Dc6+8w12jh4w29uiEZg5jxszq9vnHLw4x8gSe9PjL81YLM7Znx/w4N0jTh+smXjPxBjmPtA4/Sy1zaFKUBEhDiOXp1tMXMCIYewT1ljaxhOCI/XjBf0Yp+vFMI4aXjqMmo5sdN3zIbCIa1yBm7uXMUXoV70eqmpGjB4sDGxGDCLKZKEGM6bC6dhzHnv2uglbQR1x0Sg3JuVyUbToU6MvIxXeVk/yG1hZYxy+alxCaGvUiebklKKdF6m6mvU44IJFrIb1OSv4m7do9/cRq1k4suHDSA1hrPemRrZUOquziBXIjp2nn+HZT7/GefoGZ49OKGMB0bGhR505WrZrQefQLmiPVI2LpcUwlMJShN3QMTUWijARw7bz+GjZ8y3WFRoMeHhQreCCFi4pa7xAoiZPV86RpiJt0p1tFdbWIlD04Frq2pSspklfrLfUeA1MTWreZD0pZRojGAcDBVeSfj7F4Jz+nbWWxng9gBmFzOWc6YxhEhyTPLKMA0uT6FNmRBglMaaELRZvRUW6xjH+YDrcH/7soTgOKuzyeoMfzyyrbY9plPMRrai2wKuQS+ea6vjJFa3ena3ZOTmjG4SjklhRGOtyu2mrGWPoDRyJZlhOBToRJtYw9YFJannYLznuz/mkEfabhs5bxBpSVnuwYJGc8NYyazyXJhM+XPc8GNY0BZrTBfZkgn3uJsenJxx9+AjfaLvuMCee8TN2XAQ8qxiVhlppkltLwdxNGNOQvNIat2YNx4/hwT1hMhF29i34yGKVyb3HTx3WwmoB62XGmUyfE0MpmCyMUWisJY6ZlHWM0Ah4Y7iys8WzVy6xWPa8e/8hg4HgLZNWA/+c80SJCosyteqvboRN+1pKUVorBZuFNiaeHRyXj4QP14nYdDzTdDzVC8FmXOtou8DTz91kq52wfHzO8eERO889pa1l7xmcsO3glml5bntKDJ7/4egBn1+c8AtPPcefev0FHk8c36bnzffe4WYSDqYNbtszscLLDyw3ouN0P+MrYElzX8zFvZDR61vQOa31lsWVGXe9sF4kGrTbFFxlPLiAdx7nVddjrMM1DVPnKTj6MdLkgsk9mVyZC1qg6WRGn3YtXETD9USFgsFY7TY6w3Ta0DphsVxyMizpt3ZIqM3U1DZyKfqZS+nr99EC2BjNTTFOsLjaXdt8dkLOIztDZP9kxZUPHyDvHXNY9ISnYlEu8lGobo3NCTsjF84FsjAPHfvdlGGdWeaR87ii89DhGGpcgZfqFirlwlkmFNpiOHANixxZUDgvhYelMFhDaxzd5evs/Y2/ztlvfYvw9a8QhnNWUnA3nubgMz/PO390m7u/9Zt0bWL6zDM8/yd/AvvhHbj3GJOFWEF0Ivp9k9VT9zQ4jlzGRcvw5h2+9o9+jZ/83/yveeFzn0Tyn+O/+D/9X7j21l1em86YGMvCRFZbMP3MTc6PTrDDQLMSZu8V0viAshjxZ5Gddspe09FZgzWbEk9f1qh4MsTCwWxKGiIxqSxzEhq9pklPuRnBhsAQhdW6J6VEthbrHN4XgvVMmgnZQl6dcX17n9Y61uv+ojC4GOtV0erHOxNt215oEI+WZyzGRCiWG9u7WmBbQ9+P1SVULlKgN50+X0/4Fg3R22Q7eWOxRQ94FsVBOKednVx1RSklnNUuhDp6Co2z2JzwYYq8/ALJuAv+y+Y5MVm0GNoUX3ChbcFo+OKYlZA+39thfmMHP/Us7p+yPB/AGmIBMaUWCHqvq9BXu9LJaMZPMBoD8KBfY6Zzrk9b8mrACcysp8nQ+A68IgUGgWgt5yXTI/QCnkIrTsGKBj1wV63J5uUwGoNQ5CLZ2ZjqcjVgJat4WvSZQWpcx//ktXEUKWPLkmJmcNoFb41q2RDBZ9Wlge413lmyNcSs0ongnHJpUmJlEsuYWBOJtZOTktF7w8LwP3sX/8uvH/6iZYgU4yglMjo4m2+xmjls0NaZt2ALpCSa4+EM4jSK22RdCLv1kr1FjxkSuWRibTmL0ZboJlBLkyF0nATaBWmdjp64dYXzHYO5d8SsDczbDmeFMceL6PUsKoRqa1uPIohruDdElqaQHx+y/cYL2FvPc/f3vsftwyMubat983GJnI2Ra41SMqM1mllTwDeWdmWJ3+gpl1uWYyEOI22Y8ujeGWcnjsVZJK4D42gY1w2NNTgTMDJltUSD2xhJgwL4cqqqf5cwtmjfSTKNDVzZ2+K5m5eJJfPu3UNW64SpxFfTGHCWXHkM3hilEed68pYN/bWeAMwmGVi4XDw3R8dqFYnG8exkwlO50AbHJAQuzebsvfosVz71Bre/+BXmt65w47M/wmxrm8N377J375QOw+6k4fn5Dp33fP7oI764PuFXn36Rn3z+Gg9mU95OJ3z9vbe5uc5cnnSY3cA0Cq88LNx4DH4i2FJwRXNMdAPzuigaNLG1JkcPTpDWs7gyYxV77NhTXCKEQNc4vLfV6hy0mPNOaZ315x5SJlhwvdUcEaejP5MKUcNO6imr4vhzqiJLDfvLTs9ZwVmm847Gq0Bw6WCBbiAb22guQoyjOo2sZpQoYDRhnSeXrNwVASM6FggG5mPk+keHHHz3Q9p3P6B5dMLjx4fYovN3qV0/TYi2T4SgdbPItfiKOZHiSNt27LYTzmJPL5FRVLhpMixTVI2DMeSyAadZihS8M3TeMbeevdBwPq5ZlsLhODAgBDFMpjs0+9dZ80VSMzIWGJ1luTzj/hd+Hb+zyzOffoUilrM332PxB9/i8nJJW0aKhzjohhusU6p0zljj2TGONBZCY7l56zI/8r/683zr/kccfeWbfPrn/iQ7V2+y/PZbrLc7ZsYj0wl5v+P89pryTs/qbM24gl07Ye1G7i6XGO/Y6hxTZ7Hk2v3Sa6b3RyEXYavpmLkAZSBJpmknOq4owphVVBmahtU4sOyjQhqBIEYhfU1g0nb0qXDWr/HOMQ8t8QJOt3HZ1G5ELXY2YtgmqFOpbVvGnDkncd6veX5vn0YM0TpSjMQxMSa1NqeL+652OeovV/Um3rkLu62zVkfp3labdc07Kk+ydlxoGAblRfVjz950pvEezYT2tVdItci5EN3WEYepBYb6NeSJi6j+EgPWO2ZbcybTVkeMkwnhwREnjxfIqB33javowv1o1I0qIsSqAZpbR06FB8sFL+7ssdV1IBrQaXJWAq11hJKYCGwZS0RYo+P/0cBQNVrlY0WFM/Zj+q5NIjUX7BwQrNFgxw253Vqn8Qd1tLOJTFHhvR4itDtqGFLCOsXBGZsQayEVulr0SJELobQ1KkoIdZzvSqKznmgTrYl0LrMqll4Sq5yIWBX+SmH45w9pLl4/9EVLLpmUR6wxDB2Mey2lC3UODx2WlAQbCt7WkUou5JgRKzTZcPl44EoPWSrcTN15F8p93WxhsIZRhLXAuRR6YzDBq+NjusOtyweExTfZ8xNM2+joo24YBhVtiSiNdioBWSWStzywlnurJbeOTzGHR7SLM5796JiVWBbrHvGWVYw8ygNP2x3mLuNiJhipOSmFFoFTy+5iRZkEWtMgKXDn/SXjytE2DcOypR+EkBU6FFzH+tywXKzJWExQLHdhw0/IxKQ8Be8MRTzb0ykv3LyGD5b3b9/n6GShIksZNavGoC6jmhnirQ4JjMrwMUUq2VU3ZFNgIgphen5oCOeFIo5PbO+w5wJbDmbO0JqGSddx48WXMXv73HzjFc4+vMf9b76DSZHLq5Gf9B35csDmggmBf3jvQ760OOGvv/wGP3/5OodN4p3zh3zr/ofsD5adWYfdbwk58syR4amHnmmE1GRCKpCiclg2gu5N29U4ktNfxRpWOy2HrrCIvTJYisMVtaa6rsFPA9Z7vA/q/HGWpmkZ44iRVPknatUcRMmWY+3oRCPYXJCiwlSrYGFcDdQrdWEOpjDb7tiddshSU4PXdcSUpWCKihmzWHypOhWjInOpbfyCqFYqOIxx7K8jL350yOTNu+x+4y2aBw/V8m4gFL3vjNj6GddNAdRxZ1AWSC1YjLXg9HTaFmHeBHablkUctLODpS9wljIOyCUxlEgqCe8bnDUYoxboznsu2ZazHFmnkUWOmu4rUO7fZ/Ubv8uNX/nL9H/hLyDLBXnZ05yd4o4f8fjde5x84w+xJ4dsm8KOUwGkCIxjUt2HUWbFaIQ+JebWMjWObTdhdzrBPvcK73zvQw6/9W1+6d//N1m/95Cnbj9gPt2hE692/sdLzN1jxq6jJWBzJgmsm8i91ZKjGNmfbbEVAk0tFjIConkzIkKiENc9u1t7mKIi1LZzNM5gsjDkrDwcgTiMLFdrStGDQnCeSaPgsBACSKFHOB9HLs/meG/p1yNFMinlmuezcarpcxq8Fjzj0BOajn4YedyvOeyX7E9adtsGyQofW8fMkDfgM13z3MZ2bHgyGjbauQnOEazBG0dTu0Zk1bG4mhqdiorGQ6vp9CkVxipo3/Kd6rt2tgg3blKsjus1C6kWLh8TEettWQsYq46WsRZq3nl81+kzOWbKRNi5tYefTzi8ewJr3XQ3hxZlumzGM9oFiUZYlEyL404fuWPO+dTuLjuzKf26ZywJY9XaHaxjjn7/YixjEVZFak6TMoKy9ZoKz0a4rDqVkuv3NRlTwKB6TtULBrLUVGd0fdUuZf0cancmSw05xD1xKolTgF3KFDdoR1YajPM12mPT9VXBrsFixBBQx9poLCF4mjjQZsuQIxMT6QsMRYN24w+4p//QFy0lJZLTDJvVtOXkYIo0VYxk9OJaU5SyWjTlOCUl3JoMzXLN/MEZYdDNoljthlDb3grJEgUMFctC9JTdGYt1AZqGPGYG60hty7af0DiPE4UfpVzFbcYQpRDE0FlPYwMdLdYIJ87x1nLF58ZM+Pb3KA3skrg0ndAPIxbPWEYO08iZhe3QEMaEVCqlNQ7vPbMCr2fD76WBhw8Db73V8PCe/pzeKvvA1o3KuUDwLTkVxpwZKbQ+IBLJRYvATXWPCM417E5aXrp+hS603Ds65fH5ErzDE3FGnTDUlj5oK9FoaU7trrKha5aim7SzWiRe6z37C0NIcHV3xvYk0IbAzAVuvfgsZ0UYFwv8jSuc9WsmN67TYXjw7juUuMaMhUuzA660Ux7mgX9w7za/vzjhV196jT/99MvIoufo5JTv3n8X31j2ug6z0+Ak89yJ8PxDmK8Bq9CyJgo+afUq9R7QPHCrNm2sFi+TlsWlKY9Nph/XQMZ5q+1up5+LMba2vCt3JHS6gCaFoZWSLnDsTgzrnBlMQSwE78k5gWRcUXAbKJ/IlYAXUxdow3yr4WCnpV9miresRTNVMoCtxagU8gavX/NNjHlyOjNGbaiuX7PzT79EG8GfLPHDQDG5YuGVuKpYdS7+jc3pVXUE2g2ylSS92cis96QxEjrHTjPntI+s6ihpLEmDEI1SPHvJFSVfO0BVoDoJDUTYdg3HJbGQhIglGmG9XpL/2W9z8oU/ot+eMISGflhxdnJIOjsn5zXBFibe19m/R1LRbupGr4bBBk8kYYAt39JYy8F0xiiew/WaF8cR+84HvPf//Eec/t4fcPX4jEmrKTVOwTQMsXBuMuIdpSSa4DmPA4/7nknbcKkLTLA4gt5XVYNR6tolGabW0QJjH5m0QfUloum91jtSLpyvexWuYnFGmLYdXdMS/JORbDSG49NjJt6x1XUKnTOaJLxxqxmeEJeNMZo7lRLee0QKZ7HndFjjRLiytY2jMEpmiCNDTDXPbDMSqnltRrUYzprarVAqtrP6XHw8ymWTg5WrmDjmBM5ivGWMA9kblsPApdmOai+ahtWkwcynkNUVhHsyMtmMdDevj/9+8zMaHN41upa3AR8bJAoxWyCTi0rdvdFYBSOOJDWPzpiLoqKgHfrjknjLZGajsHNqeH2+RdtOGZYD46jhks4ohG1LVDBnMJwgrCRSTCYZp8GMRom4m+dL6r60gTkqMVc7bZgLb5YWJvDHsp3036huQlRUrNwWLZacVTGxL5DxUEF3xlRqvPOYi8+1ajm1jKljb0OQQmsdY1aZwdpFYhH6HBlKJpUfrGz5oS9aUinEqKrxftZwut2QL1DlNWDK68b78fantyBRsGcL2ofnUBSm1hRzYR20dVYoQKkfqjMwFWEPy2UMgULJPeXRI2bsYIiK5DLmY6RUc1G8hI0LicyEwi6GO43wlfMTfnlY8dQJuImj7RpuXr7CcPiQ9vyM1ujmv84ZQoc15kKV3ZhAMuBK5gUsNwfhy99ec/vde8RVg8SRNCYGO+Kcw4vgrMf7hjGO1VmiAXPr2JPzgHNNnYlq1T5vAy/cuMokNHz44JgHR8eMYhQMZjJNq4luKSVKMarud6q613GGudA7CAoCpErbDwbDZxYNl8bCbHtKuzcjhCnBOLaff4brv/TTrH77D+iqFsSdLji/d58Pb7+DcYFGCrvbjm53xnEX+Pvvf8SXzk74N55/hU/Pdnnr7fdpLu3y1uNDIo6maWG/xZN46VB44UFmu1e7cS4FGRMlJZ3pxkKIRU8/RjUfxSSyiWSXWUwDZ/sTTsYVYxzV2qxHnXoi0pOOOjAsvunwTUeKIyK6aCquX3BJMFFD1ZCCiQWJhZwTpmRMNpSciLVrlawhOUPrnM6+J5b5wYTHt094JHDJB5K1VQQrqr9xlpy1sDRWKttCT6XBeyXcxtoh+eiQVhQFpgu1xZeiULOUq0tDrf9mo2eB+qxtLM/aWjZS9UtthcJlYWpbtsKUZb8g5kyqWjKLZUyRwbq6OdgLfIG3Vm3yptC4QM6pOgA1YHKRBsa4oIynuPOCF/V3NTHhBIzNFHGQNT29sR4XtWVeS3QmTYNtAzENzE3DquhJepSoWo2v/CFH771Pf3TK0Zvf5LINLI2wcpZd4/BWwXbLUpiJxceItwUpmT4LyRr2m46p3Whu1bFhRLuSVURFjomdSYeJUQmxRQ/24zjiQtBRTb9mLGCK0FhH1zVMuw6jgjxAu1yPz05IMXFlZ580jowxKdhPd6G6muqaaWsR7LynFMFZy2o9sJTESOap3X3mxtLnkfO+Z0yiadlFBbhUp5AmMz8ZDVkMbQgE7+lCQ8DgvSOlVLOw5MKllHJSu28T1MmVEr3N9Cmy3U1ovGc59qS56tbSMOI61Y4ZW+pI/o/D5T6uT3Q1wNX7hulsi2k7oQsNufQsThY8vHfM+fE5NlPDO2GCobWGhNqexyLkOjKp9AwSlsMifH1MiCwZPnrAj166rHbxPmqWmBR85RZpAnnWjql3REkkYzWzjhrmS+1g1j3MGqPJGAUsGiJpnblwBKZS8FYLnw3raNMpKSRspRQX7IXFe10SKrIHcHpIIiMlXTgnjXcbhisBPUBtQhCNhcZ4SilMnNDlRGs1DXxwjj5HsjhY/4v39B/6oiVnTX5NZNZ7HauJrz73Gs7kldhJ2YCqCrYIzgsSB+TefcxyQDI0FKa2euGNWknHzYwZvXF14XTaliNppkbOhMPH3Fj3TEyDFSGlrH9XUJJj1lFA8JqP4cViYuLyzjaPt1rePH/MN48fcjncoDUTGtvQzQ0p7rBzfko+H8E5JFjClR3G8+ML2q5zKm4rRWgoPEvha6MnZgPF6VgqWnKjosy5cXStJZuIr/Y8fEtjPdnppm6p+pumZbcLPHVll7bteP/+I+4dHTMOEeMy1meaVomucUzkbKoQzFCSCkpNsQh6Wpao13aQjMcyLYZnouO56JiFwJVP/SiXfvQlHrx3h939A9prl3Hb20hjmD51gPQDx1/6FnHxGOsTu/MJ1yc32btxDZ454A/e/4BvfOfr/G9feI2ffeFFTh4c0X3yJvfPTrh7dyQGcAcN0Sdeeiy8fN8yWwd15FxsIoLNmSYnQsk4Cgav8Q1QFypHcobUNZx5WMZebzcLOFv5CNQFXFduF1qadlphUglyoaRMSVmvUdbQNqzFxgypkEtWi7tAFkcuanF1YvHisFE3LNNajAu0uy3rNjCue86TJZUB8U4Ju0YXmk3WkK+gO31MDOSMGA+NikKTqcLfosVnLlFPvqnQhoDFEavm5KKNLZpHZWqyRk46KgQ1LUXUrUAWnPdMfEPjLENOOGcJogVCjzCQWaeReWjw3lNyobUKyktFYKg6nzrO3ITOLdOIN+qO6EUXcY2+UIL1iJKGd/2URjSIsZSMd5bWVSAiymCamcDKDPQGIDO1lmuusHp8n4/6c64eXGHY2yXdvMLd9+7w6uEpna1p3k7Fo4Kj8U0Nf8zMvGOnqR2NKpoEkKwbi1TCs8hIYwPOOEATnGMZ8aEhpsLZutfDiim0rTKdphOl1VrR4hTgbFxxsjrl6u4BPsMQ9ZqlohwQUK2Js4YQHMaIhmzGRKiOnaUtnK7XTK1nt+nIZM77/gmLZSO0NhtYu34ezmwOjGrRb6yKTAOaB2WsEBp3kfq+GQ2JZLy3F87LIUUelzXzpmHPB0xOTKdT+NSP4rdnLGOhiYJpbB0jancSnohv/xgZd/OrWOazLS7vHtCeDLz9vducP14iWQg1rqQxhmDUCTSvoxgxCoo0KE9lLULCEK12yx4hfDmNLM5PWZfMZy5fIktPyTqisdbSmRYpiVzdr4hhXZOZRzKjKI1WYz3UEKCOrE37RTskChQ0dc+rY7lSsBfdkfJE+4KreVwZrH4uG91ZsSqDICWKUwRCtFZ30qKFkjOWxhhy/e8kq3DaVdea93U9cY7WaXzOWMd8Mo4/0J7+Q1+0tMFhvGHsDCeXGmKolf0mksFInT9q2em1VFVKYz8Sb5+xWg3s2EBwOn9LDiSrALf2BShVjGWcCgRNrTBT0ohxVzLTXAii3A5dRPVh3kCObG0N5vpvBvFc8RMmz97g9w/P+fLJY97o9riaNLzaGc2G2PWBGcJE9DTopzN669jzjolTlHU2hSEnROCawO4w8rD1aJKvJWfw4hiGFaumpfGhtu8LJljaSYt3m7RhIBcmxvL03jbPXD1AGsf3P7zL4eNjclLrducdIShF0VvLkHIFjmmHyhndYA16WitFmQlODBPvmWfhxhqezh2tb+m2t9n6kVdYzzouv/oKZZk4u33KlZenTF99hdnpOYff+A6z9SmLkLnW7HDt6gts/9KfpvnUj/GlL/42//Dv/gP+0qVn+dnrT9PsXeHg6lMcP/iIj+7d5bis8LtzXCfcPBU+cT9zsPKkpO4HWxfZVARfszVCzphquQRtqYpxZOcZvcfutvSNoawNPiZCY2isrZZOS/AOnMV2Dc3WVPNbCsQxq4JfMimNpKynySEVJeLWzlQuWtTYXJRxIU4XTVtwJuNyJDSOtlUdRhs6XnzmFn69It95QLFVZJ31Hlbet6k5KR9f0HUh9bXbAtqllGIwpVw4FaSoxRL0BLj5X2GzOWnXpoiOuzCaNCsIWWBMka6Z6EjGFOZtw3ZuOYk9o804a1mL8leGIvQU+pI0dkMAp6fDkcIyjxdWdEUP6Oa3ziMtDrGKKijVzZKAMRdSUZ7L1AZ1YWS9fyeh0dRuqxoQlyNtC6tBOIlwLQRs07C2gnvmGp945UVu/umfZuvmC7T7e/yj//D/jvmt38cWwUR1ZK1jz347rfeCZb/ryP2SxqpbpvVBYx1Kubhe1lgFN7pAW4WrYjWQT6xlNYwMvfobg3N475h2nWb3VN2uCwsAAQAASURBVHtzATyOGAzHyxWTrmNrMqFfjdqtGcYL4aqtdvxNoJ2I0LQBHwz9eqQX4TgNmDFy42APyZlVGklFuwSxbLbLJ9binEvtauhI2ltTeSxex9kuKPFXuPgaZw2l5D823hljJMbqKMrw7MFVJi6wLD3HZaR9/imkaWhNQSIXAaBm4yKqryei4CdFizfqhAmjsPvN+0y/+j7++AxbFNbokYsRkMdoV1tshYtmGlO4GVoum0CSpK63tmEVM/fGyL0SeYeRYXmKiOGl2YRAqZEwYNDcsSnaDTVisSUTRRAjZIsSqI3+PNagGiQ9gWsg6MfyoTbXrIh2HpWjJBfiXEzlthRzYR/SiYR+cpL1GVHxjI6CkrG6h1jIqJ4MUbeU5Un6tf3YCGpDUW5sgy+FII7kPNH9YOXID33RsnVlj52uIc4Sx5cC0ZXadtdF1dqqfvYbMZIWDx5hfHCCedAzGEWCr3NiWRLrorZLg6rvHeDQG2kUYW4dt9yUAtxLK+zZMUMW2hBw3miidJ3554q8liK0lfS5GNaMOeOzZztZXnnxGb73/n3ePfmIb50dM3OWuXPYYBko3PQdn2znjFYIfeLk9iOWxjO1RpOfjSflxFD057hhHNcQHqG1tUH1N3HMgKM0nlVMlDwy8RbvhcZZTM549KTcNp5XnrrO60/fZEzCd+7e48HRCeOoAYDegSMxsR7rCimrLiEbQ+e9WqNtrgp1apvYaB+xCPMRXls7PtG3XA1bhK2OydVr6gaY77Azm/HgS1+l+e5HnE1bJjnx+Ktf43IubFvPst0mPPUa23/5r2BffJGvfveb/No//Hv8xb0Dfmpvl/7uA9rLV3j44AEn33uTB2eH9Hstbt5wawE/eiexvwjYoooCyZXCYDVewOWCT5lGBFcx5FlKZY8YojGkLiBblqN0SkprWivQKPJ8EhpCo6dkbYvrhihSLn4pKC6S0sAw9JWToXqOXBN8N+JWSVlFcrFolL0tZBImFNwkUGyG7Ghcw42nDvju997UsRM1eA7BGEciIVJwOB17loKvehstogql6O9zyhULbi8srEgVVLMZJugfxaIaCWstlFrkGR1npLqwJin0aWTWaIFsJNNZw07TMsSRZU50xnGSE6Ohit4T57GHrIyXWGDMiVUaGdAFPCMMCNEKvWSGkmmcq8LDzealxei6FFyxzEKLzyqUtxi8scqDcQFEwXgGS/Kes9VIxOKCQZLF/PiP8OP/wb/PncNjZHeHf/Af/if85F/8ZYY+6ibuFI/e58TcGZrgaL2l6xoerZfYTsMGLQZKwTvd9AB1Y6Hds+1mQigKeIslgYV+jPTDqJqTCits20CwTguWosJM4yzJGA5X56SUuLK1BUk3k9gPF4UBHxPHbsIvvXeKEDAF4yyrPnK2XPH0zi7TzjFGGKKSYFPtZGVRXcUm8PTjCH5nLMF6rDi88TSh2ww8sFYQicp/+TgSoRa7KamuKOXEzmTG3Db0cQRrcV2L3dsjR81ky3V9V73ck02c+hxtXHQGU4tzS3hwxu2/8/foP/8/8tw4ctuoc3REaIylEYXMZSksSHiBDsM167nZdPgc2bWGa27KzFnGOIJtaPZ2WCEcSuQsRpbDivWIOjarbgqjcgHQHLmEIKJoDRGIUojWVVaTdvyLUeF13hQaPCnMNvohMRo3Y8TUzE/9uiKV8YWyppBNCtQmHsaSEO2GUq+lazRcMWuHp6DOutYJAbeZ+13ggo08uebqsEKT4o1l8oMBcX/4ixa/u4trDbLdM8wmCJZoilpHxWzk8NreNrUSNAUzZNIHDzFnAyFbiiRigUE8pUQ8sEKIkrW7UaFesQjJZs7iiq9GuPn4Ide3Hc3pwCSv1Rq7yb0QtZluanwL5JzoY2JMhZCF4WjB/T96h92dXY7mZ7y1OOX5tqFMGyau0ywYm3mxm3CeEk3JyPkSUyyPxxVz21EEetHQO5xlC3jddLxXIo99wjXUE3ahnVhMyCzHBc5bjGmYuQbiSGNV67CzvcUbLz7HM1cuM6bM+/fv8MH9R/RRELcJxPLgwEwczmRyDb5DDKWMiLVEEUzSh39mAmMasFk4yJbnpeN523LVBvZKwD99lUuffIOdW0+xHNbIkGn2dznkHcpv/S4mOGYlsdc7utkc9+InaP/SX4QXXubNd7/LF//x3+ZXP/NJ3liecfzhW5j9lnVecf+j27x3+pjz3QZ34Lg+FF6/C3snBV908KOLtbZEEUWBkxI2CyZlmgimMXjnoBRtoxrHerthDJF+tQbJmEZD37wBaQVah1iPdy3BerxATFFbsdR4oWyIo0dMwOqKj9XJkIKnRFOwJRp8pxu9E8GLZgVhAtY2mMpf8d4w2zng9A/XiGRGO4BMNHBONJ/HEZR0Wrt5rp7inlC4tNgNrtOFUjLk6l6oJ/kgOq5QAbEGGllnIauGxNaTnAoJdaZeimaWLGNP10z137SWeQj0XUOMmcY4hjJw5lu6rO6dpWghaNCZU0KIUmiMZURYF8fKZ4zJqr0RhcJZa2t0BkQxjFkLxc55Zq1XGXJWLYi3Hms9xRRyHsgCMcDpGDmPmRyURnwmwvj+fX7z//x/5f6q58d/9VdoPnib7/43A+fjCheULCq2cBZHdrsZW8az1XScjyPLNBJ8p8JRHGRbdWE6Vt10K2zOzDsNKYw1a2aIibEkxEHr1TLchQZTMrZo/lMsBjyYnDkbB84WK7ZmE4KxrIeBPkVSTqSUn+gRjMcYhWBqrEdLjAnjC+fDwOOhZ3c64WAyZeh71rlqCZM6esDgNgf2KrY1gHUbq7C+t8YHmtCwsXI3TaPW8ppLlIo6mUodvaQYNb4CYZkjT022KOOIDR1iE3nngOlTT7EaIlPbYmyk4vGgaH9Ej675SadF1DBsrYXFmnf+87/N8LufJ/fnTK3lsgmcmKRuSoOOhYxqVYas3b/BVG1hydyabJHGgUdpjZiWiXUMJXJ+fsIstDzjG3oH9xgYk2GwNUYGHctrF9/h0NDeTbK6tdrJGHPEeKOyhaTpyakkMgWsRtAonVs1PFm1vVo8lqyhhTGiTQ49cBlrakeuFhhlE0BqLsS2Y4Zknf67KVZ9niOifLJc1LhRxOr7d04PZRvNi9gNGQSLocER3A+4p/9L1gD///eyFjGZxdSybC3JmouZt6vVfx0Qqa1P9IaQs572gyMOimUuWiFHCr2Ymqmpo4JaM6rwCvXqT4yjwZKDcPLaHrvPXUK+dx+5p5CnUooyKar40IhC2pQ9odXuWO1nfiwM7z/AP73Hajdw++yc28tzGuZINMTGUGJhYhtC8EST1ZZZMvfWPZe3ZkwETUv2gWQEKQPPBMNLNjE2GsxVTAYnmLZBvKHkokF7LjOkgalvccbx4rUDXn/5BQ5mUx4uznjnwUPef3jIOg80naMUo5ZKazTq2cpGPaQnP98QDBBHXDQ0xtEZxUHvFMtTQ8uLbs5W0zAXYb41pd2/yq0/86d4eLYin6yYbU+4/xu/w8F0m3UICGe4iMalN5dZf/pH2PvVX+XsYJfvffnzLPsl/9a//e/SvPkdTn/ntzHPPs/Wjac4/f1vcvjoPh9ctpzPLbu98PpDuHwEXfIYnLpfLuBRUrHoEERocyHEjJNCNkm5BLYurhZy41jKkiEr+8Tbale1GzeN0eTkpsF4D6Zqj3JGko5aUinKUsGgUQmoCLegfz9GYp8IdbRY6qjK4AmhwRhLyULxmZgTuY8cXDvg+rVr3Dk6A3GqwTLKy0kCiBbQmzDDDR5AnU5Ud1DGZCVIbxZ9HbPU8VLVBuSowY3gatxAqQumIuOpz08pUtO4heUwsOU7Oq+rWhsC+26LtMzsRs2+OSMxs5YhZ22TCwwxYhtLLKXO1i1ZhAEqtVoPFSuydg6MdkwzELOOTw3CPDR0tYi0zuKNFi1GNIU9W6Oo+zjysF9zJBlvPWsrDHnF6v3vc/3KVZ49uEJZHvLT/8G/yxf+6ef5pc/+HPf+0/+MHAt9NMzwXJvM2JtvkUvirF9hGl9PnvqzCx93tWzE/6XGGpgLIGZMShkVKUyalkloaHygRBUiF8k0QbsVJSf6MXMaB4ItbPsGbxyJDZOFi4LFGoNzKiZ1Vt08Oo6xjGPiaLVEJHN97zLUImVMhbhxRdZRxCZ2QOrIwWir5ILv4Rw1RFXvryYEpYXnorEWlc/y5ErovxkpHI1LZtOOS92ErTBjGCKrXBivXMIfHFR1csI09Z6s10xHrE/e08WWYRScd/ThBxz+3u/xUo6U4DmXwrNNx0frJUsyg+j7aIruBa0xBJQYfiLCu7lnZ/Dc8A0fEnl3fcb1tmMXw0jhzfU5D6qO6npo2aoBpt4UPfSRyWgHstSWhTdCFoUwilM6bimFVCKtdbgCQ9F7OjntdGWzcblCNoItmh4vWTuNxtYxvQUp2sG19TN7Iqjiomuz0ableqgYKUAi58LEOHJONFb1ddk4HacbtdpbURu729wTKoe7GEH/IK8f/qIFyDJyPvMsJuqmyKIpl1CL/3rqy0bdPzZnxruH7DweuOY8MSVWBkZBcySMLiQORxCp+SZCqg9jcZptMdvtSJ+6yr2Z41raYVlWuAcDOSXGSm8sVm3OOmLQlN1c0ezW6Zlkshx53gQOreGuKXywXDCzjrmxpCaQrWOdBZymVFtjaDGsvedhjNyqSdkiNZm3adm1huet4V4ZOG0CQ9H3YmoKrK13UEyJjilNNjx7dZdXXnqayazjw8cPee/BPc5GdWZNJmpNHGMkD6M+zI0Dp4WZRTdFIxnJuuhOJeCy0KTCdoYXV4GX9q+wd/USi/uP6doZL/zizyJ7u7irV1m/+3tcmk6wK4ucnnLy/m2GPNCMMIkF8YH3X32e1/6tf5t+p+Orv/V59i5d5tOf+xPIN77J+N03aa9epnnxZVgXHp2d8WC3sJxaZuPIjx02XD9MNBGQCpdiQ4xVAqrUPViKKucpCYeOZDTHpEqwHcTGctIvWKWemREohpyhNBZKIcWEDx00juLUImgxSBwoSS3rfRy12BCF96njIkNWLYsKUgpkPR1txlQbUmiMI22xSLU/y8mCL/3jf8LDx49Z58K6qLiSJDVPpKHkupLUY/3GonoRKke1jYqiBEqFfAmGmJUAvNmsLlx6ZkDEgmg3ylb4YUEhc6UUxOnPv4w6gnXeEqxa8ieu4Uo3Y5ESs7jmTIryHYwjFT1tuzqnjxtNmbMsTeFcdE5fsFDhdsnUjCwpDKkixqXQWcOW14wfI7p5OB9IuZBS1LC/lDhPiXvjinfWSw5JXK6OwIaA+8zrfPLf+d9jr1zj5KNHfP9Lf0T3zXd5/w/eZ90PnBrDmAovzbZ4ZnsbGZMKF70iAKzRe8/ZTZAdF44WawQZE9uhRXJWbUNOrMYBaxyTpiU4r/dRjdUQA857VkNPyoILsCazWC25ubdNcIZ+GBmGQXV2JWONFrLWWULj6HzQgwwbsjEcLVesSuSpnX0mBlYlshYhioYIxpzVeVTvm1LkYl2xRruOTqwGmzb+gr8TnBYsJaYnydRZdYDW2rqJa5G8ypFFHnhu6xJbbcsYB8BSvIeb18i2IfiGbDai3w0J1l7c0xudzZO7W1+u8SSfkKwunJ1ieSM0nKaBIWbOgIxhADqBzkBTv4+IYZXhQzPgnLDjGxZYvtYvmdjAZedZW89ZHpg0DYOBh0R2RO3OoVRar1EURsIQjXZgU4WQDjmp0SJXjk6pOrg68sxZi3JBacCb2AKLUTCm0TwvKzo21K6X6JpstbMmWq2gnVC5GOvVs4mynYwhUshYUkpMvRYqGjvgaUzR3KLKoNlktBmr2h1rnI6bNkLTf8Hrh75oEVHg0GIeGMwm+lzr1ig8yc+oVjofLSn3yNuHhLXD0ZCyzuMzOjPUL6/cAmO0pW6UPDpzWs2fI+w+d4C/dYl+Hjjbn3N+9C7dPdWwKBrdICZjraq4S0XkL2PGiKETw2CEJgn7Z4lLuYExYzvPIgnrkti/eoOrBw2nZYt+vsdw+hh/7wP6qIr187GnNC3O64I92kwTAo21XJbIVQ8peG2UmoZUCmNNS/VOZ56708CnX7zJi89eYfCOj05PeOfBQ9ZDoiSDydqeH2OqodpByYlFyPX0F7wjFEiScGJosqM1cGACt0bDjUXhwM345J/+RfpGeP93voTNAfYv8Wh5Snf3LpdfeJ5+seDel7/CsHyMMSOzMdEtHWe+8HbT81jOCYfHvHL1Rf7Ez/w8YT6HO0esvv89pg7MS28g7YSTr/wuh+eHvNNlggifOZ/yzIPEZGhJEhErOJsRsfUU4LU4sKAKt4TLmU6MorFLAe8hKfxuaMG5zCiZkDXCwFmjePHgEKdi1+A0VDNYj8GQUyKlSMoDMQ+sBxUaliSsa+S7r5yPnAqSnVrQgWIsrQk4lxUxnkZyadHgw0LqC8M6sn/1Cv3hQwaB0zKSy5SgfVptS1tNsDUiWF95Gnbz7NRZtxRy1tM3RotlETBWuRWKd6+aFXSclIt2WTZt6FK7nKA4/xhH2lZdbquhp7EdYqW68aD1LZe6KVfWSx6mNdZ6ohGGkvBS8E3LZgBQspCLpRdPT8aIMFqIsdDHQiNqvc1SGEU3WG8tc9+y3U41nsCpoyXFpC4YK6zTyGnsOR0iH6QV90piiWVfCrbAzE4p8xv8+m9+hdyvefmVZ7j87CVur0+4c/yYnEeuTWbsB+Hm1ja+OugKuiG5jcai6peMAVzRtjqqdRlixrQ63hZgTBkjMAmexhjtwth6Ivd67w5jpB8GHRFhOFmcczCdM23mpFRYj+sKITOKZEC7K11osGLVbm0MLjhKFk7O15zEka1OM63EOOKQGFJWrlNSMrOp4DFtSVeOhx7tVFtjazcLR/CaRu1sQ4qZpqkMIjasIV3PjTWMY88gkTv9gja0XOrmOkRxsE6RXBzzZ56hzwkbtBtXapik8xseV6ohoKaCDkGsJhp7DH4yZVkyj8eRHWdprWPPCD8+mZBF+FpKnKCO01Lvf93f9WfOwOMc2c2Wm9Jw0zUMk8y7w8j+ZMJ2Eu6vC0PO3LWJpXGc4dg2nlY0IsNhoSiufygaLqv8cSXjmqI6miQ1mPTikCEMMiqnC0sUe9EFdYZKIldZQ4PgiuL4G0Cc2qGpkgdECFZz9krVvmA3HRd9jmM91JlikKT5RqmgsRAWgi3qPhVUZ2ZU82KdxYlgRDk+P8jrh75oKePAcpo52m4qq6RQrHrPMQq62vjcxRqiE9zxgvTBKWWA0SaljqI26Vy0M2KNUeeCMUzF0GBprGFr7rl0tWP/uUtc+xMvIlsenMOXAou1ujSKCpxKFgyaEOytgxIp9eQuGBpEo82NIzrD4uSI10zDNhafC1NrOCiGSbeHfeXHmPzyX8J1hV/7P/577J+dsrW1h1g4M46283VDqQ4EZ5iIZ9sZHgMEi6nci860AMwdPH1ln0+++gxXD7ZYpsi98yV3Hz5iEXVRysWSSqGPPTEJKWfNO0LFt8qZLxijVkkZEkEc14vnVRt4IbV0ywFJlnZ7i8nuAcbDi5/7HLe/9j0olu3ieO83fwuHI8bE5OyceR+ZrSJuKHynnPN1n7j8+qvYbfhv//7f4nOH/xqffepZTH+I+eZX6UjYV15lHHry97/Lyd23+FJ+wLqFnzpuee5uYjooa0ewH8fE1IeTi85DFu1IuZSxKWFTrvyCJ4uraSx9HIjjqChyFX/gnVORqVcnTnDq6pEi4Or9WFvWOWXyGIlDZBwTKelYxmYVHqoQsVDSZhHRRWXD0QheT/9WKVKMObE4W7Bz6QrT7Tn3liPHOWs+UH0GrPX19GlqCncVrJvNCUsu+CvrccDagg+26rPyBWvnYjyU62hrwxYhs0mPzlX4Z6rl2Vird74Uxpw4T6NizW2lo2JpnGfaNfSLFSuxqiFwmYk1egDZjCOk1BOgfl/PBv6ni30UQUpipLCmMJpCh2HqdFRpvcdIYUiRXE+552nkrF9xnHoex8zttGIQBbxt4bU1b3vm88yf/Uu/iLUNH91+zPSZy7xj/xOe857nmm12Jy1xOMIWQWxRGnWOF+A9RJPe9aIo8G9DiU4pISnhO0txhvPVipQz06bR8Wt1eJWcMT4gIvTrgZSSakSahkdnJ3hjmE06wCj+HnMBfjO149cETaE39b7OUdenpURO0gAOrm7tYRIs08AQIzlnYkof61c8YZ9ITQe/CCZ0rkInPaaCMClqdfcocG8THyAVgmadZYgDkcyjMvA4rvnRnet4RPVJY8ZEYbnTsvvSCyxTokmRYCsF3RqOj4/Z2tq6uF9rPfWkKEef+abrSMayKIXGaefDY9h3DZ/uLMv1gm9IZFn0ADwaPeRZKXj0gDsgrBDW1hLI/MTuHv/Oree5OZnwtYf3+M73vsO6KLAyW8vaqKB3AkysKljFamq7vk8DVgWxo9QAVWPqFEAHSuaicFHpAQJZNHXeWoU5hios96kwwdAZoCg7paljakElAg7NMdNRlVyMcRRwqKncGCHVP09FSd3ZVbG0JNqiKc7eWIIzJCuEXHBS34dR198P8vqhL1pYrzm7HjjZaiqIKpNN0seydktMnWEaKVgS8uFD7MORKIbEiKv2MW+dEjjrdM9itH19veX6czu88tJVDl68zO7VbcIksG4CCUOXMn65xp2sKdH/sRm1KYViYTmODDEznU7I44o0JkJt9S0bMCWztRrYxzAxliZYticdp0cnRDyxuceX/+Hf5fjOHa4dj7h+ZLdpCH7CY+9Y785YTlrIiTaOJOlZMLAW0Zl90Nl9MYBzTLuWl25e4qWbV9jbnnLv7DFvffSA81H9GDEODOsBZyfacheIcURIlM2gsmR8sDhncB7SkLiUhV+SLT7DnL1okFXiuDj6rsUc7JJnE7wNbL+8z3o1Mg+B+NYHvPRgoYyNGAk508XMwzjw+XzGt82Cp/eu8e0PP+Ld83d54eY1rv2jO3xq5xXa2TZlxxD354xHa9rTRxzef5/fufc2p0Q+ez7lhTuJnbWjJ6vyVIGbcLFgPmkcX7Trc8bmiK0of5dFc5U2rHNTiGOvTIyiLrUNARfME+uweTJPV/cNWOMBhxNHUMY5MWu3xcXCOCZySuSUFe6Fh5zwRkhkjLVqqzZW9UXG0IjFDoWtZEn3j1g+OqYX4TwV+hQrfbgmTW90LLZcbDjwMcukvkn6cQBbsEWLgZKVC1xKzXWxVWAr6KKM8nc22TW5jkg3P7sVoeVC6cu6HzkW1QdtN4G5bxmlEAqMwANT2LGOSUmI1xHoJrtKEHoyaxJZNrkw1K6QjoVEiqLgq2bIOthqlQsjWWm7UYrSruPAcb9kEUdOyZwVBQp21jBz0BjLgsxitNw9zbz5H/+/2b5/n6f/5I+TzSd4aiy8NN9C1oXzYU3jzIXDwzmH5IhzlmzUBiylts+pFufaOc85st22tN6w6HtyzjS1sLMVUpgqWmAcIjElcox0XYdzjjFGhpI42Nml8coDEjZjR73PN9lOSqDNtE1HjEorFWtZ9gPL2HN9Z4uuGPqYWOehhiE+ySrSV+2kfcyNpP++w+FpbcAWS9to8V5ydb1ZFXg7Z+oJXLtOFyGJtQOCtdyYdDTeMUTAOLomEK8cYJ66yTIl8pgwVt1OOWe2t7efhLKK1PgNHct/PGOp6yYYGzSdWoSJFBz6XF33jh9rAkdD5G2j2pIeLf5DdcWE2oV4XDJ9XHGlC/y519/gqWYHP0QOJjs47xlyxOE5LpYzA60tbIllnsGaApIv4IZWwGRLxtBLYgR6saxzrvubFin6rOohIFX6tACSE8FokKpF79up6H0cnGFGYVJ0zCVG/z0nqkXJ1Gy1eqhBNknt1cAiKpFwRteDPicNKTWK3AgYrFF9SyhJD/rO462meA/5XxUtAKR1z/kssAxaBSdryEYV4oiCl3SR1MwV+p7+O49I68IphVtWW3Sriis2tRUmxuCLodlueOVv/ATzT9zUpGijquqCamUsqGd/0WPXmTgCGzaMFKzR+V6azsg5c/f0hC0/JYSWaV5icqSI5ok8M5/i4orQetrOs0D44KMHBD/hhrvL84cf4G9e53AWmYjgKZQ8EmPDnVj42tVtZLrN1EZaP5IZmfc9ZRw5XS/UvmotxVqcD7TTKV3bsFiOfPDgkOPVEusdoBoPTGaxOsW4FmctodH/DpJuYDlXJ5xa6tqx8BN9y5/xe0ycYbCJlRSalRC6Quk6GhwxQswD+92Uoy9+CfvOh8wWI7FEuhQ5d5Y/SOf8ZjzmTRe5dWmPMnV89PCcDz465a/8zM/yU+cL9hb3ofTYT3wK9+LTjOfHnL/3Nn/4wXvcLys+FSe89n5mvvKMGKQKT3GVlFxPtxbqiVc2zRbIgo0JUxJNSurOyEpODR5s0lNrUzfvEDQcEW9xvp5grf7euM3CXjHnGomsC05KxAhFLLlE1VXkRE6x6iwyMhYaL+pskaIFlHi0/rSIFZIkrMlsb02Z713jubTm3keHLNPAiszEtvUkvBHb1Va+q+CyjxcucJFZM4yJItpJKVnAqOsol4LbVCRod0pheipkT1lHRpvr6ypETer/73zAOcdidcrhsGYZGy5NVQvVWe18npTEuQg7zlGcWmutNRdz9rWoa66glNJRiua5iEfjdISI6s+8U3hh41xlJ2nBMuTM6bDmeL1knRN9KSSreHMvsBUCnbUQHO8tV9xPS7bvfIvP/cVf4Y1P/1Vm3QFf/E//S561jtNhwXZocGI1R0c0yykbwyKN2BBokBprUcdEUh0tRs0CuSS6dso4RnJMtM4zbRsaq0GpqQpWh/Wg3TiEWdvhnY7JztNIYz0T15FTJEalF28+B+NUS2ONpesmNSlaCxrfBpZ55Gw9MG8CO74jxsRYBc2x6uGoegVqAYlIJYCrC2gT76CCTwjOE7wnpUTbNljrlR5duR2majRK/QwTliEWjvuBvcmUmQ84HzAxkXKid5np08/QHByQT89Zjkta3+C8J2fIMddDqlXKjV5kvd5GxeAligrZG4/HEiXrYQyro2CEW6Hj5SJ81K85rULShDKJqomOYuAkJranU56dztnb3sOFOZYFduqYXg08Oo6UHnrJWIEh6+9PrWULTygqTRDJBKOwUKnW/YUUFjgWkkFsHXvWLc3IRQcj6qoNGIKAN7keumGFocPSpEx0jtFAU3TcE6q2q85+9ZBFeRJRUEX6G1yDNaXGwmh8TCxFk9DFEEpRHlF9HjPKnPGm4I0Guf4grx/6ouWckbOdltFXUSWgXtwK8KkEQVtpuOHoDPfBimVMXGpaWgFsVqdRlgr5URtooTC5PGVyY4fUKg/X1jGCtfaiXe0Ae7REeg0w05a90DjPxAcWeeBLD+9xHByf3NtmcXoGq6RESMCKY2UFCQFyobdw1AXOH51wbuFkcczkODC/1PHgg3eZomyLTgw4hwmOdp156+59vjdf4SZbzLe2me9OCLORW23gVsmcn5+xjktW6wXDmDk5PUWuXSLJmsZ7dubbLPoFMUaMsUwnU6T0LPsBEUNoDCEYhjFddChKSuAcQxaeWhheHBrypJDFarqpE7rdGeHyDuP+Hn5MvPe97+PWPfLeB1zte6ZjjymJYgq3zZpfL0u+zJqh9VyaTbi1t8XpMGAby6v7c557cMrLYcZ49JBuOSLf/4gyBpbvf5eP3vkO31nd58XS8srtyPY66CJTN4sN8h1jFZ0NF3wHNpqozSljjLgUCUk1LUF00UIiqfTEEjEoA8gELVwypbqIapfFKYHSgVpaXUWcS6GYSmot2h6/6IA4h3WeJD0bkNPUBVzZONq0U6Fz+8wYEy5A5wzPXLtOe+0pnhlHvnn3EWcSWZXInglY6+uzsHH/uCddJlHsOqgGwRhogsfZQC5FT9g1iTiXgqnars1oTaymyNo6WkolX4yQpJ7WkE3mkTqVJiGwx4zFYmQZR8LomTVBxwfGspbCytZ2eSkUh2pajDpaY91ANFFFaudJaq4K6gIqBmoAYucCGEOfEslk1nHkZLVmkQZWaQAbMMbSGoMhsRNaWgyt9aScseI46Pb53C/+azQ7z/Nb/69/hjm8x5VhxTwZzpnSeTg5X9JVHcQqJh72K3oPDQrB03gLe7GGSRXSCQIpQyPEpI6l4FXI6ioQsxQY+oFREsZ7tvwTZ1qKkeVqxc39PUrO9GMixohQtUkodn1DnE1J/y7nzHQyZZEGHp2fIblwdXcbI4ZsYYwj63646JrVd11P+3JxCnfG1pBUp4cc5wjB63NRM4xMHeGEoKOtXMqFVsQaXYNzEY5SZJDCzckOnW0QqREhOVMmLd2rLyOTjq2xcHJ6yjAMhM7XvDQqxr/2gWrBwmYkXK39oWlwTUMwDmuVleJtUQ2IscyBZ23Lruk5NVoED0ZY110mi67dRur7jZnDBw/YeXEPWXrGmePKa1c5fXjK+u6K9cmakg1jEZYGnBh6NJ1808ExomNpbwwRLcrXAtFCqmA5h61FXiGUmtNkDGPJaAiGbvzGGEIRBtG/a9D4gYlRsnNrVBAcsB9b+7SItJuRZUma81TLbCnqbMzGqLgXQ0at0KHwJFoGHSEFI3h0f40fu+f/ea8f+qLluMkc7ncMvhIATU3i3exNH/Pq+xhp33vEYlgxXrVs47BnejporIVi9KYwjqkUsof5jTl2e0IyT+LjTW1BZ9GAu2ZMuKMlZhBcZSh4C/NJRzCB01XiTop8OEb2Dg64cf0aZyenbBmPLM6gRB6NIyep0HnHw2HF9x+ds2vm7Dl4GFcMpx/xfHuJ+6sVYW+P0rYcnJ0zLeCicI3MnyAwtj2HZU0+X3LUt7hJS2lbtroJu/MrtPQcbEU91eee9+8dcf3aHld3LtOsz4FMX7MqYipY6wmNFiceLQKDrZHpDgyWplj2Vpk3zhtuNVMGyZhScDQ0vmFoLdPPvM7+U09z583vcfbm9zAlEUpimQZsP3AiwneWp3zV9ny7zfSiUQnXtmcs1itWpuGZg23+1KUpP7HOyMMj0nTGMWvm7YL07S8T3/0e756/zytD4NnbIzvnCura5HJ8fGy3eUjzpvo3unBcwKhQIm47RFzMuKQdjmIy1ozEvKLPK7wtWKMCOqojI6dE8YZgHc6pBkFpo5YU5WOFgnZfUs6kGBWxv9G7lFIDyaxaR9F/T0dauvBrCKHFGEfjPbEt+N0Zl7f3uPHS8zR/9A1K0jyYYoWcMq55Av0yVdizsTxvxmOlXpOL/K1a3GzEpJtr+KRoKbUgqToWYz92HfW/MfV5jNXVILV4mlgNxVzFSB8TxgRycQjCmWROjUWcJxUYTK6dLY3tyKSaYq2Y9c33SyVrRzSrpdw5R1uv0ZiismLywHm/5mwYlG2BEAQV5lrDRKAxTgW7YsjeM504TLbc/fznef3fu8Uzn3uet787cO0TP8nRf3yHsBjJZMKsI54tGHLiLEUej0sOdnZ14b8YwZmLewD0M4gx0mBxRTuBFkvrG7y1pJRZxcw6JbCOloZJ25GCow0N57HnweNTdicTrGT6cdR8GaOYd29qbpMxWAuTyQRjYBwSrQ/EnDhdr1n2I1e3ZzRQtWyjim5F10lTxzhSR0IKGyoXOWUb8ac3rrqQNBLAOav5OzHStv5jtuQnWpMhjkgpRMkcFs3xutpMaF1LHiJjiiRgjWX+xqs6Kpp0dMPAMA5M8oTiauf0Y6/NSAiedListbgQMMFpEyYVkssU4zHWqRbDCpeCZ3uwqj0UFZ2PRgiGCzdgMvAgRu6sBm5/cJvZWJi3E1YHie76ZXYvdbjpIem2cP64RwblBnkgajwhkyJMnFqFE4Yoqs3qUcK6FEM0KsgNQMCp4FY2P6MWElGUoJvqMzkgJKMhj511jEUL0ZgLjVVwZlcTpVWEDyKJCjFQDRU6/nVWn4WagYtIrkneEI1qaaIUfBECQucsPmW80TFT+ledFn2dzx3H253GXltzMdur118X9lpBFgqLLU/7F1/jM9f36P7J95CvHhNswOSoYw4RFepZh/ew98w+NB5leciFaG3TkYGMHda4wyVBAtNJx8R7Gu+YdHozjGeZZUqcieW/++ADWhuYYXmqtosbr3lI92aWnbXjRobtWHgnn/Ly9pzXdvYwacSdjzy7v88X3vuQbwwjP763zdMOfM4MCa51jj//9EucPHuZf/p7X+Kjxw/x7YzJ3g5nccX6SJhOZ0yDY9LNWJsGaTrO1y2702225rtYZzldnDPEEUSYNFWk6jyODHbUlqSA8ugLuwvhtXPLq3bGTtOoTsBYfbgajzjh5He/zui/y7lLODMwyYV5X4jLyJvnPd8fF3y7iXzQGo4RSuq5OZ9jpHCcM/u7M17F8bNhm+nDE+zVW8x/+U8x7syQd27z+Ovf5aOjj7i0yFw9NISVUwusDsprTkh1khkdD1xk5dQ/U4Gufq6lFEqM+JwIMeFqZH0THCFnUo6q6xHttLhNEZFzDSWs5AW7sQejI0OnLXpN2rY6HxYVrGVRDnPOKpbchLAZq8niBNWKBO+RLIzDSIoJg1o8xwIflCU7b75LefNdZjGytoGxCLEkfGgoWSmnUu/fJ/yKDaO0ypWkbkpS36NxumihFNNKGNEOkUHzlkp9zqRchIUa46g6PnXQGZXFp6I0JAvMXMMJa424jxGxqh2IxnAqsJDClkAOVP2K5r8UQT9jlCUxUiqzQkWFY9VZODRywhVYl5EhJ06GJascdZE1jsZ6GmNpQ8MqJw0oNerEGAuU4vjgbGDVOT79J3+M02OhC9s8//onkGXPlIb75oTzYUCSMJPM+ThwXDK+m6gmhSeb5oZXsinehMw4rLk0nSv12GjB0ngFzh1vd5y//DTsHXDp5Rd59IffZN617Pzyz3C6WtPfecDp3/o73JJAjqNOx3PVdFR79eYza9sWYw3eeYZ1xDWOs9U5i37NvGu5tLXNsB7pi3ajYooX/BORDfujFqxGB6qlsnM2okulLBvaoK65EJT/EkJT9SaVFi46ghhzUiZPSiwkcxwH9tuO3bYjjZpEPaZENgbZ2WP63NM6emuhm7Ss1j0xRoJXDo6+L90kVaaxKQ4NNuv94YKnncxovKvj1rpp1PvSOIeXwnYN/FSdZI0+uNjgtcM3kPnOuGR/6QkfJa5sTVk+e4Xu1iV29wN+AnneMnx4TH9vhSy1w6b2cWic6gZdLe61q6JaEltHy6Nshtd6T7fF0BjVl7kKMe0lkyXjqIRrNINrkFIvhycVU40IylYpJeMxFNF73mCwFfPQFJVBaFelaqtEdTR6T+koqFCFw0B7kYStXSRnoLE6gvtBXj/0RcvqSsdqYimmzpDRD7rUm9SZal82ltgG3I+9pMFTR6eU9VpV1s6q7S+rr91LoYjBtY7p9R3Ead5CMdr+lnrC9ViMKTTLNbsLYaeds9U2eG9pQkM3sUgcWeRRBYoAxdLnTLHCA2M4qD783ViIlzr+aFwyW0Y+10y4aSy3W3i/rLiaG/I6Mzk847Nb+3xoz3l7tWA5MzzfOrawlLMj5A+/hL/+Bpc/AQeloWtnfO1bD0nLjklK7HKFG88+hTSG47NM7AviPXZnn+3dOX5yjVQix2eH3Hlwm7R8QIeFRufCKYMkrVfCCFuLwksLx+tMuNQGJmJwWVv2TaOMgC4bWpMYY8LETEwZsxx5cL7iTr/goc2832XenwjnwNoUWm+YzhruDWum+3OuE/mV2RWm90fGrX36KwesD89IA+yvR/J6STkaODg3TNcqhjVW74FcuQ/Gmkrf1MV7kz6NMZVQWy7EcDq4yZicCGMkVJuyzWDLQBxWBKD1nq5xhJosi3M475W54R3WB4Jv8U6FpA4IkvGDxTtL17a0YUUclZKZ61elPNbATbUYS9OQvdGix4gSdo3Vgsnp/Z/Xme+fPuZGH3l1PuOq8zzOifVmjq/ViI6nStH3VzcfRNvp5WJBNoix2q1gI7JU4Z631DGA1Y1Pip4GjY6skA0nyZKqmM8gF5wObHgiHET1LdY6egpI1I2sHgxOS+YojVwLk0q61URb4xzrkhk3p35TBa2iQlHFF6hI2VGYNYpP74twOg4sYmQ0qpHxRoMS2xB0sS/grJBNJmMwPjAiPGYgDg3bezdxcsozL79O173M1/5v/w9mwbJ75RLN4yNGOyBl4IzC45J4pt3B1aJ5sxYV2eh9jApIJRMM2GLIKWuXNmhIZN9M2Prrf5X9v/HXCG4KwfPh5L9mfmWfyc//PE1MnP7657k03cecntaTelIHv6kW5Ko780EDBeMQcZ0C7gYpnOaBdep5Ye8KPhkWqbAukVSfEakF4EaovtFGCbUQkIprd/pvOmvomoauaTU6xeqf64gr1fwfR8rKlkpRI0YyiZOhJ5fC9emcYCsryBZW48Ck7ZCbN8jbWxhTcFZo2+aCziuiesTaC/hYN6duGEU2mGaMt5igmHor6pLxOKWf1/vXi2VqHTapakQx+oYo2nEq6NjFA0cl8f3Fgn3noBGGg4720hZbc4ubeJjNkK2WxeyExYfnrE6jpojmgrd6/TSGFB33icEWPSwrPFF1TxGhrT9TMdp5cfXvBoRkL2ovzRAyOkpVYmXC4BWUWQqtcdpJMVmnEhlCRRmI6HdUFL8Szm1RvVKuhZQxWsRkMmIt2cJQx8RJhMYKpqg+J/KvOi0ALK5N6UO1jYno5wIqKqLerGYTLKVLpxFDc5RojpOKczeL8qaKtYbWQt5r8Ne2Ge3mRn9S6arDApoM3XnkIDVsTyZMWtUjOOtpGscgsJRCscpYGHPVTlgYTSGi7ITJoucT1y/xB08bvnDnkGYsfM5OueQiH4TEYUhshwlnIgQi+9tbPFwK74yFRZu53MBTOTA76jn8+1/B7BaO3tgnujPibMGtG1s8d/0658dHmL0j9rttXri1j2kPkBQYxkgowk57CbGGK/vPcPPqM+T+lOPTh7z90Ts8Pn2MI9Rrm9hZRZ46glf9lKdMwyXX0DaWLltSKrQkQjYwWrJNiBViHHjcr3l0vuLhMLJwwmFTuDuBYzKxCKNNXJ9vKYwoBJ7vhb8y3efSUeTs6jUu/cKfJ984YLzzkMmdhyy//SaLt+4yPy/MU8AVU7kK5WM2xydjGX3YqoakfrSbxVh/mXovZXxKNDnRkZmYgisZyQNpXNJIpJ16PU2WohvypnPhPL7RWIlcW6vAhZbEOh3xOA/GKPArZ8hJNHa+6md0pKCiXmst1inBVEoiZbU9CpEUM3nIPDpa8M4i8XNXn+PpyYSH52csS6qZMJoK+z9NvTW1SHFO3WUXGSYiiFEejBYtVVNjA0bUoaAnQBUYbn6+i1NtXbhyyXVRrc0p8yQjpuRMcIHGNhznNVghimUUYcSwRuhFIV8p1e/jYCzCOpePpd4KVFyBPvdaFiVg2zUElEK9Tpl1Uu2ZN5aJC8xcQ+sDjVeirHMWSnWbGIukhLOCk8zaFcYUeeHZH+Or/+gLHN+7w2c+/Un2/+Zf4/v/9PNc/oefJ60KD8TwEZkTCs8Z0e6ZraMz2awnm5mF9v0740hDz8x7HcGWhLGOYgzx8By3zpSpISR49s/+Io3z9NmyvPeQw1//Ld4YNZQyY4m5wsKkFhV18590HavVmvlszjAMZFM4Xp5xvFxxfWeXCY7FsKZPI0MuSj0tNYtGNjqWj90jUDsOT0S+wXqaplFQXE6EmgBsrSXFhHUKstO08UiupN4isJTEce6ZGMuVdoK3YCaBxekCEzzSdUx++rMwnVGM2v1DCDSNerXKxoJfL+2T92wu7s0LrZV3+LapnYqKt7/Qe1moxUuoVF8rqn+LwLpKEFpDjceAwcAHMXJtHNmyDfbKnGZ7j2kzwXUtdC3MGpp5Q7Md4PY5y8MVZqFapVQKxehodMNL0n6RjvkKUCt62Nz19WusaHbQzBiWpbCuHTyvX1QdP3pAS0afa4MW9l6Eial5SFbz64yp+UYGbMn4De8MLWYwVddZtHNq68i3FN2LbRX26rKna0n646Ko/5+vH/6i5XJLdHohL06JVPeOMdXHXluym7okF+zRGd1KZ4PZ1DTm+mGIqM2zvTyjbDW6kGEuxHMKQFJ9gZVCtypM/YRAgwlPCpycM2NOLIsGCcqGES+GLKqsLlZFw5PFyOsLx6OtHb5z3fL/eXjM754+5kf9hGd2b8CLe7zXOnrXMNiBZy/t8KwJnH54Dztk3lwecZaFK65j7Eem9y3x5Iw7kzOGeeCPbr/Hg+WSF1++xj3X860P3+fVF25y//C7lDTjx197iZv7DXEVcOwQfMsYWyRe5ic+9TkenJ3y3vvv8t573+H2o9ss8jFbJXHTTHEIoUR2xTAvENBsmJQgOyEVOF2tuZ96HuTISRpV/Ogyx43h7pbngY0MxZJFTy6XfMcY4VZw/NXZdZ5ee+6Okcs/8gZ3336bvQ/eYfzDbzA9Gzh89x3M6YKJ79AQHBVh62e5OWU9cQZthLb6YdaHD9VsXPwh6CaYCw1FlfElY1wkxxVO9HRkjLJ2RNAEZ1s5LqiOJglQIjLqI7uh2eaYiH2PlFzfm943Gq+QFcFt6wZR6ZnBWE0Hrt2FlLNaRMtIzonl2ZJ0NHC6yqS9nquTFnuuLIlUMsEabBWbmjoy8N7r41HqAl+/Z3VrK61UFcwX3QK9dDrPN3U+7kQXxVI3hSJ6RaknMj24bjYCTy4qerfWIsbQuECOS1YxEYOiBAqGQTTrJaVC9tol0LwU/TS9oaax13n7RadIP0PvHBPfQIFF37NII1GEiW9orWHqW1rrCCFUh0NSbYbVTmosaPq5QCOGHQqH//jXuX14yCd+4afZuvzLHH71Hd76z3+d23/4RZ6XQi/CwjreWq2Ydi1GhCFHsnWEoKNETKmFgHKDJIvaR61h2jZ1rGXpSZjlGfLFP8L9pV9h9ewcOVrQXtrFrhP3336P/stf4fK336KTyFHa2JKpm5uoGNZpcnUcI23TMo6jOuiCZ7E8Z6vpuNSpa2mRNCNpzHIxUt3EUm02J9nY96sayjl3oZnxXoW4RoQmNKRYPTeGi7l9ES0yixRKVhddysKiRM7iwEE75aDtaIPnZKmjK01Yh61Xn8dnx+i10PZFhd2bwEWpFufNyHNTZD0JTdzc644w6TSHq2jn0Fl7kYpsQHEC9Rks9aCT0cLFWfClCqzrM3MqhY/6kVs2s7M/w01nTHyLjwbnLU3jaSaeyVZDuzvl/PYpqztncBIhmVp0akd2Y0vXLpeOjnQUozwVHV/qJ1Tsk0PaprNp6ngzYKseUfdFFcwrETcnzSfy2SiIr36i2iHVeXCyemBBtJCpSjvYjNY3WinUZaSeLdFcs82hq3x8ff3nv374i5aJq41n3WoSKqi0bJgYDkT1BWLA1vhve7wkpHrylsIoWYVC1ihzwllmV7exbYMXg0Epi0U0j0G7bXoan/RJM2aKngZLTFgGPBNGKSxR4qETPQldDJyNLlqlCCaB/egRn3z+gPdWK1Y3d3h4Y87XZ5eQ1z7N4yHxwrMvMG8Ch29/i+mwZndrh3G7JwfLdD0lna857iLbxbLdtjx17TLlqVs8sIkvf+MbHL9/wpfuvI1tWnZnO3zhzvssi3C2Hnnz7bf4qZ94DckT8mrCG68+QxciEz/h4XniwfG5sl2ee5bZfktoI+HuIfJHD+lOBq60HXvB0fpAH3sOveGujPjVQErCeYw8LonDmFiZxNILh43lYWd4UCLLXDN4SmbWBFap8Or2nL+2c403/GXGxZrpJ36UfPMZrlzt4Y++ys5qyd13PuD09JypC7p5WUOqZFapn3++sJjWDoCogFhEyBWKtnnQSy1+nbHYYmiSFqZtgRYwDZycrRBRTYAzHpOKbshisEZP6psFUJsYRq2iaYPgj0jKKrytrfeUIjkWpAL8yHpPxJRwRS2DroCLiimPMSqzYcy4UYhr4cN3HzA7K+w6z2qx4rlnnyIcn7DKhdJoh6ap9lGcwTmrIzRrwfkaiig6fgoOZEREiEUwuWBDwBF0waOesCwUZ7BS04nr3zlbOSVFvzLKE3F8bc5f0DcNMGs90+hYlMIiJdYIxUIqhh69hmMRGovqYUQoDtKo2hdfDyfG6DOJtXgR2lpMrmJknQdGEsFZpsYyDy3TbqIF4cZJVU+sJusYTNu0ij1vjWOn2+JH/+zPMXv9k7z1a7/L6tvf5PTuHV6aNBwsTjizHqFwlCIflsgbbkuBW61DstU0ZFE+ijN6kBIBssFJYT6f4MWAcQxZAwSttYSjh/R/67/h9JnniC9d49lf/JMMeeBb/9l/yUvfepvr/ZLTvteCpSh0LBiH94acI86odsSHhjhGUh6h8Ryte1LK3Ly0T4wjfcwXFmhTNQimXpeNYNuIji03gbSuMkAsQnCWrmmwIkxCS45J30urIlzvveZaGaliY82UUvG04fE4UrBcn06ZhwDW048LckyEJjBrp7S3j4ifHPCuuyDdWnPRIwVsdQ6paH0zKgKedBbRNSFMtJvjnSNYi5VSxabaXZkY2HKWYISVMXg2YzK0oNWSU/WUGZJxnEthse/Z3t2GLuCCw8YdgmsIviX4llnXMp1PmG23nM4Cw91z4oMVaZ1oxaqTyFjGktRGnEsVAitozmLoqsZSMQquFgoej2EqmVQPz0KhiLprqXqxIio8tzgoMGgVgtnAQmvx4nKuphPt2vWqtNEYDJ5oZoyoKFidfLq/maprMVX3UzYurn/B64e+aBmaQKqBMX88hnxTXWvxchECJQpfC0cr2uQQ4zT1tCiLINSvTQEmN/fJbpPRoOWQMY4NlwSjlXa3zjTZEIcBI0WV2d6zjpm7UTsMg+S6iapOwBqgCAOJbB3FZJrlwNWPHvPZqzP+u5N7zOZzztMp79x+h2efeoUt13AcB05P11xdHZMfHLI1DJx0gdPWcJiEF9yEW2+8yBJh9mDJM89/gls/9ZP8jb+24vtvf5PPf+m3eXR6jljoU8fJyRmNhdP7K37t1/6IbjrjyuXrnMRjXnlpnw7P4eGa6WwLkwfm24Ers212djr6y7t8NxniCi4vhGujYTZk7kvh7w+HxAyfSTOMFO7axLkU1q3h3AdOtybctiMP45plHBAXyA4wlmQ8+wb+8vZVPjW7hc0dJ6w4XBxz6/Fj0je+w+pr3+TOnbucni/Z853ClKyrYlCl80J+MgqqNcum0/LxtjGbVrd5srBtTqlOIORCyJmmCHEciLGvwh7HBvKEMfhgsN6RE5Sm6mRSBls0PKyeMAvanhXQrkvKWhDXkUzOWTswMen7kbpx5EJxhmINMUUwaunN54Xztw/p3z7lBTvlqvfcPT3GzK5wadKxSmrXddbTBIdtLDiLccquoQpzrfUVzS5I3iDFdeGzle1x4QipFvHWB0Ic6slVO5GutrI3mx2oVTkXHQkUmylmg3DcXBNoreck95yZit43euo8l0JvFEOQAbGGXHTxHoFsLGEjurS6iLZAMI7WBaS6YHJRQF+HYR5attoJjVWkvavzu1IKPoPNBYrmadlqWz9wcB3Pu3/vn7D6r/4uuxTmUpiaiJFM6y2PysjUBN5JAysDTgoYp6Zsp8JmqQm4IupIsWhHq5l06r7KykEac77oEtjYY7/4O2w/d4nws3+WiGdN4fr+NvPzh4xDZD0MSFb4oKBjoQJIUBKvzYWSBhVvTx2LPPDo9Ihru3uEmBlTZkiJIUc9ydfXBka3+Sw366q1eiBUVKKKmL1R4XbXtJSkncCm0W71JpDTWkOM+WK0oXZ6WObIcYy0wLXQQREWsVcrr4EhRSaLBenv/Bpmbw/5qc9i2w5rrDJfJF2s/5tD/cfHRBfP9sde2lEz+FJ1bAaM87U7qGtEI0ID9JvNuXYVDOruWZlCEMscSysQzUh57RrD1gyMxXuD8R0lWAgBGxpC1+A6TzsJtNPAardjOTsi3l6SzzNZtJPvBKQUgrHEWpRFRKFzGIJItTjrs1aMVJaMYOtao3qvJzgPoeZEWSUWO+GJVlNKRQaUi+TnVDtYDdpxLA6GUrOGjGYpKZ1JSeOgupdiapaRmAu+0A/y+qEvWnrnFFN+oV3gQnoipWwmQ3qirdW3H3uakx6faqYDaisrBlxRi2yZNXQ39khON6YNWdJQqk7GAA6TCu260BSIWU9PYgwPV0uO45r32sRDpxkhxA1Gu9rlBIW5ObWhGQO7ZwOf7ebY7ed558Fdrqw+4tpO5Pp7R/ju6zQHe1y6dZmTmefkzXe4Cuw4w+gCj0LDMYnphx+Sru2yx8i93/wdut2b3Prsp/nUp6+yTI6zxQnZjBQTWZ085OzkhHUceHR6woOzJevjY26vljx6/wGdC3Rtx/HyLZou1JOIcHl/i/nEI7MtTqcN39krvDzfYz7ZYnXvLv67a+zhmqMUsZ3juC+M3nLWFI73JtyWgQcxsRYN0jPW0ubCzAVenM/4Nw+e4lOTGxQ7h0+9zsEzv8zs/ITue9+nffyYe+en3Ds+pgvtBUcAqIWlApOkFiul0lEx9bRhnvRdNqOjTS+mSKnz7Np9KQWXCy5nQsnEoYdhwJeClzpWEm23qvDX4JzHNg3UripCDQ+rY6sauljRLOrmqatsTvniFrai1ufsDNmAaTwSVBAXEUwqxNM13Fmy/dYRL6yF69uBWQh81K84v/+A69vb9I+ONXLB6r3mvBYqWIvxXkXKUgdo8qSgyps2/kWz/cKbpzbqGn/hRe2WH9fCFPNkVLRZEIuBmA0xW6TC5jCmjsi0lVxESFLZR0XFh6tSWJRMY6zmGZkn2SwZtXeORuhR90Iwm5GGEKwlpqgHGzRtfSs0bHcTJqHVgqHoiAIUmjVtGrYQ+lQYJZLzSGMaPjHf41FewuIeq7MlW5OWyXQb/6nXOdudcP6bX6KUwkMTeScNzH1HY3U5N0ZPn0qhBeONduakJh2jsQwZDSgdY9TTsAu6XhiPrFYMb39Ie/uUcqvl8Pf/EPv7X2NaYNkPjCnina/dYMfpxJOmDWF/jp9vwdEZu4/OcBaiNTw4OmFr2nF5OiX1kXVJjPUAV5ALLYpzyiLZaFhUNyLVOaMbuLcaVeIwShsmaqyF9+RalIB2PvWe0uvdj4PqLCicxZGlFG60Ey7N5jSTjpOjE/KoNOEkhbPFMe27X8f/R4ldcZSf/XHEexWjqyCLjSbEmCf2/s0gSyUA9esMGn3gnK7fVRrwMW+cQgmtpTXaofBGRzdms3YYmIhh21q2g6E1lt3rDbs//QnWracRS7HaUbdNIHiDazw2dDjfMAkdk6blvPNMJoGz5oR4d8n68RqbdVwbilPYYV2jsOo66isWIRhT8RuaH9SjxYtyXzZo/o+NxTaHMq2nteirOVJCfeY3ozARslFBfaQwoMWvN5aAo5HCxAgthc4ZkmihvYk6CPVr/abb/AO8fuiLFl1srVaI1aFzcZKmnjQ2IiYBWxzNaqA5q9HqJlKk1LYtF5uK22uxBxM9+RqBOqfj4sI7hJpLs9JWmAlwtup5fLbg0bpnca3lg0lieaJESm/qLNsp0MfWNmORC906YmA2Ol5vdtnOR0yj8GO3nsPffUxZLWh+5BN8eO2A2+9+Hzk+5QxD37Yce1jlwqKxeAfN7TU0LdfXiTv/9Dc4MfozLRYDp8uBJniapuPFF57nky+8yqR1HB0/4Ovf/zZf+PLv8d13vs+jPOK9o20d3XTGGHvSuNBAs8Up123gWdtypXV8ZnaVG3vX6J59hTd+5s9w6957fOe//3Xe/MM3OT9bapehiQz7W9xxkYfLFesU6U3Gm4B1nmuzjs/duM6vhB0+s56Ql57mk8/wwQcPkG9/wM7Uc/SNryNna7723j1CsWz7qluqpz9n6uDBUPkbWe+IrGWKmJoCXofdWuSYTRP1IuXUirpIUhnxJWMpGBkYxzPG1OO8jhtzTQbW02bAiqHkGg5mLGKVWmtroWSzwSXw1uB8g3injiBb6lizaquypiNrAVHwQdvXzoBNBtMXxvXAuMjMjwS/UhfOvg900uDpOe97EGUn9E6wXp0wuADeIZQnRZMUKDpG1fgAc9FReYIR0PdT6qYmYumcnrPKhcW01A1anli96zxeRIhmUwgkclHCqgAVoatdAkl6uBCr5gqBU0bmNCRjSEUY40isbImAov/FGnwSvKuCSm+xToh5BEmEYJmGhnnb0QbVjeTyxLWVJCv9xQumKFfHIRSbcD4gDvIIE+vZ35oisfAgrul29tj5xCc4/Ge/h/GWj1ZrHpPZr4nnWvyBLV7t32ioajBqg84kZk7b+8Z5Jc8aHbUEp5EQOWWSh+lXvsHwG/+M+PM/RVmd0Z0/5qyMnD97hfL8Uzgc8t5HlINdnv2b/zvCUzcIO/uYZPn+f/RfcOW//WfEcMbReg14bmwdIMXRk1jFVDedKsqs94Opp/mNw061g7aOHQwuNDUUVl2TbRdIMeK8B2spOVcOTT3Fk8DCOI7VUVJYl8KjpMb1690O3gRWK40OsN7CMNB1LSmrcHj7+9/g9G/9bXZ3dig/+rLmrrk64r0Y/1R9h1g2MGgteEfiZq8wQpKMrcGKYxF8EkJ1llljOQiOLWM4ycLE6ogoGNhyjqebCbdsYMtbzk3P42y4+edex926TG+ThjyyAfB5HbF1QusDNmjCtguCbQXfBXzjWE09qyAMj9aYXpOyPZkWaGqXxYkhGtVPRVRoHUR/frs5qVNU82K086YIgifJ4gFIOdNZaOwT/UyUiDGeWJRLVaqkIVFqPIbQOMuIMJiiwDpr6UvUEMhck6wx9BYaKypY/gH39B/6omVzUC6mCo1URHBxdt5U9UrmLHgp2JM15XxQ2xYbfLt2QJw1RGvw12bIvOYI1cVxo5/WVqMmrzYxMRHDkBMPT0+5f3zC2TBi96ec3JrxeHHGKCBJVIm/KaQq9EIFvvWEWwQj6uB4d/mQ9/OKyxjM2x8y9Q4TJjy3+wyf+OzPEMaB89/5OtejpQ8Ncdqw3g68PXEc+Y69acd8e8ZJnwhmyW7o2ZrOEDOyPjvmLEeSGM5WPV1zmZ/53E/wzK3XuXnjDX7kEz/BH3zzi3zxK/8j9x7eYRV7xn6kjz1NY5klx/R8wQs58JevvMiLL75G080QF5CzY5qzBVt37vPa/i3Onx45uX+X9XLBoi18xMi9s1NWJRErvCj/f9n77yBb17u+F/w84Q1rrc7dO+99zj75SEcJJBQwAgkJkOQEkoOMjTHYMK4LuGo8M7hsl11F2bd8Xfbgwb7XMHN9bWMPDtcJEwxCGIQQSCCUjsKRdPLZOXRa6Q1Pmj9+z7t6a8BGTNl/jOou/XG0u1d3r+71vs/ze76x9xAUj57d48+//Kupf/MZnr99g7NvPEPvbnP8sd+iWjY807e0reMLL96hbT3312OKwaKYBHYeNks5Ww16zUTQQ6GehC9Bht1JJ+WJSpw+IAteoQRpKYOniA6VFH23IO+uklUx/LxEdkZocY8hQspBsBbuKasToaogdlZZ4bp1R9Q9ycrgrK3FhV6yXHKBJ8gpt/OB2bKnO5hzf2/RXUGBZbeeUKfB3RHxwdE5j1OBTkV0FL5ZJSVD0XBkVAolylnJqPFCT6wcF1EKMU2mhlYhfSphrUbnmOiVSDajKzmblBAl4TMiAVOtd/QmErX8jXqE+05anHR9HBpq5eDRk1igafLP9SFIQqhRxCAnwqGDRWkjdm5lGBclKgitJjC2Zd2MGemKqDSNc+J+wtMmTwzQh8BSw1EMlEVF4UUEuQgRnWCpNWff9vXc98TDfObnfpH27gEPvOpx7ly5ziw1nKrG3JkdyQauFBjJIJGy0jyUkjV2SVad5BOjqsAkJa+h93L61YayLPHei7NLR2JzQPfvfoqnb17h1OMPc3h2l1N/5Ds497Y3kzb3xJl1PCV5hT11WuioqLj+S79G/8GP0cWeY+9ZLhdc2tqlUpZ527B0nUQDZFeXMebk/V8dCoS6VBmiHGzvOuU2YVuITXuggpBslyHjxRpLUVa0PtL1nSQrA13wHIeO49SxaSwXxxtoLZ1HwUlVQVRAjEyKEkVi5hb0H/0two/9Mzb/L38O/+ClFVIw3CuyA5xoWAbkU8WEzjIXpSwpSTbSCqHhZKO3WrOG5UFbsggtJmk2jWFHK87ZglNoKqSl26mC6g27XPjm19PYUpAZBIWUK1mQQkVCl3IACcaQtCbaEmVrbFGhKgMjBaWmudHiGhmii6iYqEiMHpfkFwoMqGMQjUrOyjGZQUCJ6ymRVg3jJNFSFSoH1WVdEkm0RnUOc0zpxOrcpkRQwkwEYBG86GeUHMaLJAXABYlKJ0oFBUp0eCFRa0X4PxJx5REz1xrz5nMCQKkTd1g+MSqiQG6HDWrh8UGitt09GRVKSxjW+OIWrspxUHkTzNdJPpmDSh7TdizuHnNwZcqd+ZxFCDCx6Ee2ON61LBdCKvkBPkemfZfypgArrlhrOVbWS8f6hXVeUGNuvDRFe8/pC6eo7r+PX7vxAt2PPcmZ/pBqbcyNxrFuIrtJMWINdfo8L1y8H7N3mmBg2k/Z3Zxw9pHHmPaOtZ1tTjVHOOWwqmRtNCJ1t9m/cxXceZSuaLtEiDWPXn4VD124TNscYPHcvn2b/as32GnhgTDivkZx5I7xZxvsTgH9nLQ/ZX7c8vwL1/n48T43W8dC10wrKLYsFyrH9GjKS87hakNygl49ZBLvXhSoX/0M1w8WXHzb29l9+1uJVnPnyjWuP/kk1keevnqLm8cLtuoJ1iQKkxtlM78+cO8KhcpUVgIwcgKxEbp7+G2db+aUBxGj7YpCMoiIrPAytMQ+4PrmJEE2DhmxieC9WJnRBO/lczGgoiZEf5IblO/bGBMpJHTSEORMbygk+Cklkg5ZA5Cknyr3ofSuY7p07B/O2Dz2TFTJNDh2C8nEIEEXc9xT9GxurrNIiSZKr844RJLyKGtQJgvKMzKJD8SsrwkhrAYXm0vPhAuPJy4NIjoL+IbPyX52T3JuiitqdvhoUBKC5VOkRKgBQT1l8GhySJ3O/Ui9gmmMLFG46CmVpiWyTB6fjxKD/iZplf+WigJF9E5yMIxlUo6pipqQpIqiCR6fEgvtmY8tfneH6uIFRvef5/FT57n2q79F/OjHmCfP7dCwFgpImnZtmzsXH+P1f/FN1LXhzgsvcucn/iOq75nU63QqMcGwqSy1tix9T2sMRufNK6OCA4JFgLLIHWhNK/Z2I1lD3ksTMiZRdZGuLDhoplx+zWN88dmbvOYv/wXWX/VKOq8J+y3u+h2SDUwuXaTzSYSiBkI3Y2N/n043HEyPWS9L1mzBsunovKMLTmhCpVZo43CPrAbX1XuahepaNsjCSGZQWRTSNl0VxBhW/VXeZ22W1uJaUrJeByVuuS56jn2HT4Fz9Qa74wmqtDTzOSomjDUELf1VSsHGeES/CDRun/gbvwx/T7P1F76LxYMXiFY6vSz65PXe85Aog5M6FmMKcrkCIfpctinUrDEyhI91wWNFTe/lOh1pQ5GgD1LqCZoutqg1y2v+0OtwGxskDFpFvBItYxoQ+tyzNOTU6NGYqAuUsRTaUBqNKRRFWVBVFXp8gL8yx089FksdE1EZlkqqUlJSq0DFmHJ/FRIWV+qsV2Fw/JFDAbNWT0ORhnRfQZ9TIguRxXk0JCF7BX30gq4QcUgmkoTugc2DiiVhoqfMJYnivhL0Kv4fQ4s8Gg01ipAtlyYFSd3Mcf6KnPyJQSdLig3qYA6dB0Rw5Uj0CqKWVMJYG8aX9miMkoIqMo+rkc0siT2sSIF0tODatX38YkEXIVlLdXad+YPbzF2PThqrE73OXGlSxCi8e8xwpDc5ZRJJ4y2alks3Si4UhklU/L7Os3HtDrcTHG1t07ULOmBewDGKRgUuVon7dYs5OkaV+xwsNMtTe9Rru1y/cYv/9P/4YRYusLY24sx2xdbWiMtntnjZAw9x6dwFTu9dIAbN1ZtXuXX7OYJv0aagmcL9u4/SHx1w7tQ6N5eR7uY+tVNcCS3PxSM+/dynGd8oKLqeuolcvbXgC7OO475lM2kcnr6wbFYbbNiSrzp1ngfLyMevX+Ng3vOwhr9w5gyvdImbcc76Q/dRlJbbX3iORkdOPf4Y/rnnufLUdV46mFMUFSNtsElOeUolYnCSJin8kGwGMQeOkYbcaRJK3GBZY6KVCEyVUiSdCCEvLhp5r5JEWFsfsF7qCSRILuBCQhUFthgiX4VSSrknJmTKI3NWgNS6hxAJyUhgVPJEPCEm+iiUSUo5syEPPkWE2AeWTYd3PQfTjvao5ZwvOIw9RhV0lUa5QI1cxzpZqqAZr23ShMiiTfR9R1cZrLKo5FHeoKtCflmfCM5LCWaQoSWEgIqK0mQngZbEYO/FXSAiRkNCSgyHtFdhWofBUEuZ4rCwIk6EQfgcFBJIl3VEXVK0OmTLtKLXctK7mzxnUmKaenyEWUp0URI3fZLDS8j3mIqKykqKtY8ObQ21LSmKgplJHFvwm2sUF89RP/ogFx97hM0HLlOcOgujEUsXuP7ZL3D8b3+aLR250rQcBs/5UaRWkTrCiz/1c3zxyWdIZ7cIxwdweJNKGyqt2VCWmo6RsVRRLN+L6NiwFmI2jIoiFd97yjxYNH0naaZJYxWUtsB5RzKSu1Jbw/HZLU5/xx/HveLlbEw2qV/9SoI3hP05z/1v/4r1X/sEk60R/Z/4NvimN5KKgipoit0dZmXF7OA2OiZOTTZIPtAnR+8cLoZMk+hsaVUUNnvqUqTPXT6kk4OiNYbSCjVki4oYIlVZST9QTCjjaVufP19IirRS9L2TILgouqRFikx9QKmCS+NdlDYsZgu63onTTYMKkeiR/BkSW6Mxi+iYt3OKD/8KjS1Z/z/9SWaPnydlrZlCrTSNMCBbeW3QkiobkgMCSUkWT4wxd+aUgGzcJga20Fwua+4GzwxPBKa57BYUVQkPvHyb0QPnWChFVDE75YSaypDrib4rxpydA1VlMWaTTlvJb7KaoiwwpSWNNGqkmb24ZHngCH2kpIAYcUowu5XuWMshS+47YRzuHdxSSvcMn2KvRsvBrUTWKAllzOWaKWbRu7gHE7JXOpQI4FMUhJSESS6vx0NgonQWVQqqmLuv0pdHEH3FDy2JIfpEEJG4InrSSi216vtIkTJE7EGzgspRkgYYkZNfVIq0VaJOTfKEmhtDtdAHDCRRUphOkb54yHy/ye4QTVElysdOc3RmTLzhUDl11GRonCTnQEntTCuOkHjCoVqV2Fh4Hl+rib3Cuo6m7ej2Zzx06gzL3ZL92qC31ilSTxsCM6OZWcOyOUC/NOXy5AYp7NFtbzFrlvQHN7l1OOUZF6mqkgtnT3N4vyOpMedOP4ot1lClZ31jzPbmmOO5pguBzrT81tOfZqIt5zbGPPLqV6Ef77j+wnPcOjzm+cWU5fImTD2TLvHIIXT7c46dZy1oJqYgVopj37GcJw4VbO9MeOj0FjvmNOnGjHesn+Pri9Psb4x57GtfS3H/I0RfUlUlRTPH//oL3Li+4HO3brFUsJ5hTKNl+CBDukbLgDK4x9IQNIbKpXRC6SR1UiI3aJ8GGFzngWMV/hWTNDx7DxGsFTTG9x7X9YyqirIoSMkLLRkixipiCFLwFiXzZ1isfAjEGEjey6KQw9FCzKmyWkLgYszagQz/9k4K8LrOEZaOSYAUHE6BMgV9dAyEjImGQpVcuu8+wn2nefHzS5r5kgU9pjUUNmCtwdqE6RMmCGnpfMwDVVyVHqakcr6LQalAjBrJ2ZduqAym594v4dZ9CCeo5BDzn2Q40Sp/PAtS0VqC8jJK0xCzcFBQIJ+pt2mCmdYs5IuYR0hKMjo0wvHbBBbJriiNgRgpVYEqNOH+c/Svejkbr3gZZ1/xcsYX7kOvb9AYTefBIS20MQZ8bJl9/FNcPJ7xUtdxzfdoDB1gfGDx4vME13H5ay/z8DvfSb19ln/1Iz9M8asfZZwU69qwqQ2bxjIuSqw2kr+RVG4/TiLCVZqm7xlbjesj3vcknShKi7UaFSNDd0JtDPPSMnrnN5G+4U18/lc/xive/CbwkCJc+8AvU/7H/8hWu6S/Bfu/sM75r38tzgr9MNrd5RnlGS8W3L+7h1GWVnlaBOkQm7r08FitKbJdX2udh1RFyIOpUQprNIU2FMZSGkNVmFXSbIyJsqyw1qBUL8m3UTYs710eaqLE+afIUd+zjIHtomRvMpHMFneywcUQKK0FL9ROzC3OG6MReE3njpj/6vuIoWXyF/4H3ENnoLjHHZgfA0KeslxABU+4exeTRaqenJBszGp30UZTlZay76gTtCFwNTkMmi6nsI9I7JWavdc/TLdeD9gfg7hfhge1WptOkoWHaUMEy3o8odegTYEyJdgCaoupLcV4TnzpiOmtBreQqpAyivBc0quHNU8OxEUaShMFhRw2y8SAMCtKNLXSlPmQoYb1MGbtmsmCe/Itn8TgEJA2dYfM4Gn1Rnl0gpGSDKcYPcFounQS7fHlPL7ihxYylCe8q2Q7yMfT6vMogecCEdO2lEcdOqiMwMhU6VMuezMKe2aC3yxzuq6Eh51ApsPGENFHU/zT11FO7JFKGez5CfuPb3A8NjQmEow4RwqtRRAW5fQelPC0KTdF2xzAo5UiRahi4r56wnFVctw1NDHgqxp95xb1YsLlvTHPeoeqLA9srdH3nr5bcur8eYqxxewfk6YGfeECX/11v4+DO1f5zBee4tbRlNl8yrRteO7554leURfbzH1BVRe8eOUKL928w/F8TjtbopZLTpUR4pTp4V0WVwIjtU492uXlD9/HuW7KSzevMp0tcIsZpQvUIWJDwBCpU2J7sk3bTDlWHYtJyca6ZRw8j1DyxkuPcy5NII4489rXML/bcPOX/zVuOuPh05eJKvHSC5/jo88+xzSS9ShRdBS5VmHoAVmJX/MgIlS8nAqNEf1JiEFOBznav9RD660QvSkOQ2QeZkwi9T24Ht9Hogmy6YQoEfrZBQZa8lWiWmmrVk6akFYaBqUhuT5bTztc368ogKhEfT+Exg20JhFa51k0nXQatZ4tZVmPnq26xCDhZaLahzIGojGsP/YyHnzvH+SZf/C/4O8+RxMitC1VUVDEgiJFyiiaoJQinevl52lJsnUxoJWFZPNAZIRSjaIbUHloFEuwQ7I30j35K1kYmHU8VmspOIwRly2zWlkinqhFV9DoSJMUDbDMrqBCaWYJDlLiVJQW4cPkmEVZOJ0SvVKfxNFklVg5UwhoY4ln9nj0r/zf0K99LR0Gpw3LCEQZ0nwKEuOeT57u5m3cr32Momm5ExyRgrOPP8KGtsyff46bX/g0r/3O72T8wCP84s98kAuveCVn105zfrKL0Z7SaCpgYgpsXBk1iBipG0F6XGQoEBi/7wMuOUZlgbGamDxOW1Qf6XbG9G99Pd1rvwpz+gL+Q59GPf0c6+96OykV+Bi4/fFPc66d0ffQE/HXbpEWDXY8kgF9fY1bxvE1G+vUtqDxnmmzFL1acFI7AVJroqU7KKm0ogOHwlFxg7EqRSy0orJiUigKK43jOcrfuSAHMSOZLkOrM5BdVJEm9hwEhwYur60xHk779+xvwzA1WO4jgehB2ch2WXGUAl2coz/66/AjivXv/nb8ax6D8uR7rLQ5gz4nRo6v3qB4/gZFTCyDIBdV1kRFlIjRcxpwqWFiDZtJBuXWRzwy2Dki6twa49c9QEyKmFtPh3VFpyzGhSysH/amQb+A0KjGUo7WUarAII6oVEaoE3ZUwIamGE85vL6gmzmCg5jy8H/PAT3knyVGlEFEL3+/ldona3bkkpfclZizd3yScNB+oHPzgTtG2S/l/KdyTpmkTgdyRosCL9w5SonzDxJ9EoT1y3l8xQ8tUQW8CjkTAimeO7ksxPOTIz91DBRNQ7EUeDvlgVrnSOkYE1551i9ukcpidTIacg+SUqgYxGWSHOalu/Q3jzE9JCyjWhEf3WFxdg3fNlBCsgpnBBrXMYgET4sFrARsjOic6Gt0ynyjIiXDZj1CVzXJNtSmxmjLMnrq0hOaBYuu4XBuGfsIBaxt7lLfOiatWWbjirC9wyMPP8rG1g6zfsnWqfPEsuDcxT3KaszmeJ3djW3WasPB0SGpqrl1POeFG/tcufECyjtOFQWVWlItPGre4xrH4d19mpTY3D3D677p7bznvX+eF77wGT72vv9IP3sBa0sMBXPVcaQSV9tDrpWR2Shhi8Sp1PAIm7xpdJrt1hBnC45Nz6aD8fXbXLxzA7Y3qNWC6y/c5Nc/9Vluup6emO14BTbJ6ZqoSEGThvjrYVBRWZC6EuXKLRoRDtYrhRMMVNpM0ZA565AknExHIAa06ylii1ZC36XMJSttiIVknWg0Ra5cTdacnPC0kshyyBknnhQ8yQVi7+m7jrbt6L0XZCNrO1DSZRScaEx6DZ2PNCGx2UXuVxWbo0p6oWLCETBRU+kCFyJBJZ79yMf4wrUbPPXss3xVTATtcL38DKcSZTIEYyWOPwXh9FNCJaFJfUwiJs1/wRhTto5HFF6cGCFkwXHmzbPYWCsRljMsoons8kooI4nQcjqU/7rgaZToWZqkmSM5LR45RZoEM6BPkSZ57kZPD/IeRkNQCSfeGUYGCB5I+MKy965vJjz+cpZB9A4+Ck2RkCHWh0CVFL01mD5y84O/RnX9Kk3o6aJny5bsRMtEK2Yk1EMP4MqaX/oH/zNf9bY3c+bMDp/7zNOs6Si7bRDEzqRAZUoi0LhIbcSx4vHUw7CbHDFqSSy2BdQjlmUtJY8hQFVT/sFvYe1PfRvd2g5P/cOfYO3nfpmz3/xGTNR0xqGshICJ20cOY+HoANV0eeNSLFrHuKzYnEghY+M6OtcSvVRPaNRKx2G0Xp26s+VGKjVUTkrWoKxCF6J3SiGJVTuJgNcYjc+DkAsBneTa6L3HRXleiqKNOPKeZYqsac19k00Ka+V69g5j5B4W95GiKDS2NLhg8C7QuR5rFDvjCdP5jL45gt/8Jfxixt73/znSa1+OKwtZC/KGoCNEn7DXDjn8f/8U56bHuBRFaxJku9dai3UeTQyJsa1YN44FHaYPFFGGapMSvUrYOvHwNz6B2tvBKQNBkUzKh+U8mwjsKIhsfgjyIjDk4MZKJmFHJcZAtImJETt5V9SYSYGZjDC7M6Y35yzutvipI/Ty9TFIrAMMnkkRfqs0DM1C3Zr8DJUdsQpB/WISVEWjICd1BzQuKUIeuF0K+AwSKOSQVGQmgkFKkWk1lZPgPRqPovsy/UNf8UOLnJhzRHQiewtzfkaM6Gy/REUMYDtP2SeBbIMXeobECEMZI6E0VBe2CfYEcltNpylvKClhlz3t03ew00hUlkpr7G7N9LEzLKsS3zuCLqDQqNKQtMs6CfIpftAIKOEx86QsE6qRBN0QqVxE24JUV5g+sVtP2N3eYz92vPLCGTo0zfXr7JTrbCxa1qzmMCnubEzYfOgRDp2iubPk6o0jpk1DWY2IyaNNxdraFq984qu4uHOJ/eNjnrvxLN3igNKUVHaLabdPU5U0jWLHBUzbcOwdZmfMpfV1Qox84rc+wPXjQ05dvsz49W8lnP4idz73FLevvoSzJWp7g+eOD5iFyCxGHtuf8/V6l68rdtlpNG7RoHrPrjbED36cpBz1xjamWGf/hdt8/LNf4HYTWGaXiTEGow0WQTmkwfYkvn0QjkmQYBQhH4qhgkHSjHOxWkgkK5vyKqMk04oJQQRUVKjgsSbhTMAbWVCVVejSEkMgGE1E5bj3dBIEh8Dfg2o/pUQKEe88rg84F2l7T8hJqSEkgo+EzPeHKEuL856yKJhHWCwdlynYViYL3+SkFJV8f0+iiwGSYcPC5oVtfuqTU3y5QTDgXCAGhfYisvMxSHKqkRObhE4lXBSKaAjcE9pM/m6Sxi9oivNhReWsqDmGwTHbzvPX2hyPrtUwPAQJDkiip5jFwBRolaLPVK8aoG+lmMfAzEh43DFB4Pl8HYQcJFgUmlobdEh4pTAP3M/Gt7yFudGoEEhKGqaH07bA4bJUYxOzmzdof+U32WgaZs6hUWwpjX7xOtWoxiZLdfoie48+wnv+5l/jxu1jfuV//Se8cnrMOESawmAS2CC2UGnRVbTe0xnPSOUyTa3xUaogQnRSiPm1r6R+11spHrqMbjpu/6dfZP38OezvexOzcgx3jpj98oc4M71L13SyeSCtupNHLtO+37KmAson5rUiVRavE6l3TD//BR7QFhMCTQy0rsMFLyWhOefIar16bcP1H2LM/VHinlJK0oOt0pTGCtKtNVVdEkPA5HXVGkPvHUNeStd2ucvGyKCYEovkuesdJDhfjdgZTQgp0nSd6KnIh00jjcwhKfrWCyWhEj4mnBfKaa3epO962ujwn3+S/R/5MTb/hz9P9YZX4kei0klJ9oZn/vefYvQf3sfk7jWK1DFL4rYbuitSpjnTgI8Zy3pV0nSB81XFnQ6Ok0NpOJsiu+cn3PemR+i0oSdglVklcpNA5eRzsrNvWAsGtOmkYoCV/kVXJSOzhjXyd9ZlRZxUxI0KvVejz9QUtxr6O0va/YbFzBEaWV9iPiCo7Foa3FRJqUw5C+1stOCngw5Gtqb8OvLBX4S3iSYGgpJgOwmfk8+prNXJ6QkoZE0y2pCUHNZSSl+CnP1uj6/4oWWVdMuJRoG8KOkctz9MHTElCheZODkuKBROpgdMyJqItRp1dgOvY16I77HH5k2BlGB/jnvugDVXiWhOK/qHN5lf3CBUGrsAZZNsbhawECQMQrQ0ZEqLwVIor3Hob3EpoiOUSVOXNd4W0HmqukJt7bFxfoPm+Rc41/QUvqRuICmH33AEVdG6ls0NxdN3nuHGZ28S6BmP1tjb2GJS1hRFyeZom53104xGEy6Ma5bdbQ6PrrC9kSjLLXrWGZVjDl6E1506w6Wo+Def/CjXVGTmFkzGY8ZrFTEecO2Lt2lSyemXvYLy4jma577ArJvxzI1r3FwGJjHx9l7znedeyZu2LzFKhmgCGE0XI2V0lH5KKAt0VXJ8+zaffurzXGvnNFq0BqSAiVm3MJwMSegUxFyc7onoVnKOUPqkRl5rjfMer++xRAex3iryUMog1hOhoTIGVVp8CZ3ypOgwKlJVlsLIaVkoFRmGVBKIPYW4EvhqK0OpQO0J78H7hPeJrofOgfNKBIQZrfAh0PpAH6RMrcLQ+8B82lIzwqYg0d1JrXqChkwhpRXKe3pv2Xv545z77Gcpbs4xShOVUE8mF6MVGLyKUhyasu4kBlzKNJpSK/vrcM0OvS2yMJ44TNRwP3LyXI0MQkP4n0ZqMrwWmHnQzgQFSwX7MTIHepVF04h416fEjMSxVnRAk5F1l6KcKvM6UFpLiXRY2XHNqXe8BXf2AhHDQPpLmFxYvcZIkqycLnLzV34De/UKNnj6KOFuOkXq5EnRU6vI9OOf5hN753G1Zm9rjTf/0T/Ai//7v8c8f4NpcCx9L6Li4PGlaCUcCRdB64JCiZ7Necc4KaYjw5nv+WPsvPfdBLtN7w2b6xMuPvEalldv88yVF3j88n3c/OJTnNk/QidH/9INUuOJRY3Tiofe9Y18/Fd+mfjUFcJ2zYVv/RbsqW3aGAhX7uJ+7oOcnk5xoWPZODrvJEwzJx0bxIVnjFmlHUclXTNhpcUQeqYyltJYinztlaXwMGVZEXzAGLMaYOX7JaytcH2XrcVaHEN9zyxGamW5tLGFIbHoepq+IyoojVC31pb0PhCjB4UkimtB1EOMEmyHYrReYxvo2wXFM59l/r/8Q7bb74K3vA5VW7lGU+Tukx/n/itPYeuAyHBLHA6fIoWyEtSmBit/ROWMlG1tSRqKsuA+21JWhq0C0lseRZ/fwq90JHJYYth69KCyvCdcLdPH965XaZhykOFFF5ZCjdDWooqKoqooR5Z6UlNvVix2G+ZHDd3dBcXdGc1Rhzvy+Lki9TK8SEu8HOLJh5AiiWNSnEVC9am8RiolmUsp5vs4nbxelyJBy4tbuS7voQxJcp9XysiBB8lU/W3us9/l8ZU/tIR8gRiFy10ZNm9oKcZVPoewbomqSVTaklJLn8nmAbqzNlGcqmGrwiTxwItqUK1ETipJPDJXpxQHDktJoYANS/vwFn5cEFQgWTCVIRWawhZ4WgnD0gYf5GJxMZKshPBIbw4ytGqNG1XMxpagPBNlsbGA0lI+8BBX97a42065tLOJ+vx1tpVFB8VcGwgFC2O5Yyyf/eQnWCzmPHD5FOtrgSs3XuLW/h0un3uQJx57kMv3P8z25g51XTPvFlzbP6Zzhpgsftng58fMgmM7ReZd4gshcLQ9otypsLOW0BkOuzF7Ow/yhle/hsWi5fZ0zpEfUe5FiukNxrdu8vvsiG+a7PHNm2c4bzbQy0REFnZbWsKoZD6fs7a2SZEMs7tHPHXlea61M6YqME9+pVInifunVFkgmjfJELMuKAEMWSJC9iay8JOU1fK5SyOjAUoNEGr+ughJJ6Ly2KJCb27RTipcdCgCOgVKramMUH0hSJpkSLIAJAVJSdGgwUgXEmpFocSU6ENk6QJN7/HZ2RRdxLuAc4G2T3ReKJqYFJ3ONt3e48sMKZMGZZ3cCwAxkXTCE5mHSFNWbGztws0FNYZOyWLiQswan5jzNgpR/RNzEq0mxYQp5N7QGvo+B/XlBSoIF0eZW3CHJvUh3zezdCvKbiVE1FoGh3wvWbSUFfpAj1igh1PfYI1wChYkjochU6ncHJ1piySW9pEp0VEgKH/pIptf97UcKLW6EmLKA1nbE4KT12MsRTmmuXmTxYc+wqm+yciVoogxC60DlUk8Vm/RHc9J+y/ymj/9vTzz+Rdp9iYc3X+ZO08+x1x3tDExkYZIlt4RQqTzjqUBz0hOt1ahlp5QGHb+6O/n9J/6kwQ9Yv/9H6G5fZft7/hD9L3lyX/+szz+7q+jtIaDF17klG8pooLnrtA+8yzqlY+jbcXahUt87Y/+32mv3MSe3qbcPc2062kXjqNf/RDbn/wMZe859o5l6PDBM3hLCmMyYmlz4JXCRyfhYiEQnBexs1K59kDQTkWisJJsHINstIOzN4SwKjGUfBfk4KEgqEDjPfPocUlxpizZW1vDOY/znj4GoRBDQGtD9HnbzVZpoxUxBqzWVJUIgfvYY03J+mRE7wNNv2Ty3FN0P/pPsdePKP/wN9Lt1qA8KjaslYoiwiwGok4El0jJ4GOi0gIlKJ01R0aSk7U1lMmzYxNPlGOUjkzPQPe1j3OkRKNETmEfmuUBoUCTaB5lr5FDUUgx5yaljLCIBkwGCGEAdGFRukCbElOIA64uxozqEZvrLctlw+LcmMlRzXK/obnT0B563L6nPXa4LqFyWi5J6BwZ8jIFnUBry4CtJORjSktmUMr7qBzoRG8pw43G5NedMgWJipiY0IQcpCqyIodoTet48jf5rz2+8oeWAW+L2aaVhZcnkf4mRzkpyhSo20CNJVmDc3njypuG1ZHJ+XVSrVebQUoRFbW8iUk2t3Lp8C/uU7d5Y1SKdHZCuLhBVyhiNCRjSFajK0uqLKa0FI1sCKDRMUl8dNIUQaGzCDTqiMGyGI14OjpOGTg3Kii9otE7nP8jf5qN+9e4+s/+Id3zL7LWesykojTQlwXLesKN7U3ajQ3WTYkPnuc//iwvf2iPy2cKDtOUz730YW7t32E6nTGarLMzWuPu9C6zpuPO0YxmOSW1S0zXUqmeeHDAS/OehTWo8ZjSRE4ry9ELt7kyv8nNp2/y+Y8/TXFqm6nrMKOa8+OaB4s1/tjOy3lVbDhd1ZTRQ+dpY8/S91S2YKQ0pg9MdIWNmtnhEc9cu8b1xZQpgUVMzFOiTYqAptS5XTjJrZLyjaONXYVeDRur3JBquFDyCZJVDoHWWvj51YmBvLiIHVIbYHONfm+b2djhuyyqzSiAbMJCsRitKMsyu9Ryo+mg44hRFt6UcH1Ps1zSto6m6Vg2HW3n6b2n9wEXAp0P9C6IayhEgoImOZZ9YDwyuWhOaIgEOeH3xKGkk8DOyQde+uRn+OKTn+NiOcYmRR9l8Q8Dfarla62RFmkzHK6UOtE3QD4VQgwJY2VBciG7o3SmaJJoD2JGDge3hh5QpiRpuTFJJHgfvYSFecmTUEqzVEnKEpNI3v0gRkiyn7YpUd9z/0uAoLyGAjBGNt1C1Yx/3xvpT58Sy3nWCykHvXeEW0e0Tz5FuHuX4sI5eNWjHH7s42w8/xJV8IJQpEhpDCamnKQaKaOie/ACD77lnfzz/+l/5PTaGm/8o+/l+Sc/z0ZsOFKSOlNn9C7EhFcJryQATE7xBRboYkI99gjnvuNPECZ73PyVD5P+0b+gesMrsEXJSz/zPjaWx6w/cBpjC2InaGOKifHBPtN//z7WL5xlubNLlQzF2mmKl5+FruP4hds8+5FPcPb8aaqf+yU2mmNmfUfTy1Ag87uiMAZrjKBpnFhBYgTnnIgtEUeRNRLVXxQFSon+pcgFjKPRSJxBeWox1uQAxZy103eZbo84AovkmfqeSOL0eJMqKExhSV2H957CWpSS97UsCpzrc+6WorCl9HOlXMQXI6YoaDvPuCqpS3Fs+a6Dq5+HH/9xplefZ+e7/jjt2W2KWEIXcbVcL8qHrOPIbpiUrcFK0l7qoiLVis67LPJWKB2ZVx79uvvoLu6iVC7tVawOTCeDS1x9niS0qoSLqpXGTm6UEw2ebD9yjECDKgTZtaXBjiqKcUVoOsZtx2RjjcnmhG6nozvdsjha0Oy3tAeO6VFLc9iilwrdy/f1SdC/SovYN6iUhzTFyiadpHIhIEGOLskgVSS9qhEYaB8xCEr1hhwmJYZkpDS1EqzqMAyJSr/74yt+aBngyxO4LacBZlGQQpCLlBLGQ9UG1rE02iJ+QXmWTlBXluL+HRaVxnPiaRe4T6ZJrRTFtCNeO6YORhJQi0T/8BbzvRF9LilT1qALi6kMXa1QhcJaiXA3YVByJwqUJArm8iqlEs7Ane015qHjoqnYfeAy8+MZgcTnXvo03eIim76iOu7RXjNdtmyMLGyOuL25xbWNTeL6Bso1+GWHX8JIn2FbF1zcjmzru5y7eJozZyw3p89xPF/j7sFdrt16kenhLdrZMePOYZcdReGxPuD6Fr/fUaTEeGtE6hzJdUwWHfW04/jaDZZbY5ZbIy5cPMfrTl3kzd2ETQxxeyGWYdeS+pYiGsamIIUIMUhce1DcuXHAtf19bi/ndCExj5Ej75iFRIecBuNAf8AKrhaKTURo6XckT09gTHm/46r4j9VVkhcJJQutSRqjLKmsCKMKV3hUFwi53Tmi8FEyYrTWK7fQQKUEDwMqq1WCEEQ82DT0TYtrvdiQ5w2LLtF4j3Me79JKR+BTEG1TobGlZsNUWNcTnCYsFEVUBHWCDkUlJYgxJULStM2Sax/4ELF3zMtAMprkMiUSJZsoBdGkFMkTlaIwmlExFNslEpKfAULzqIxyaI3IXn2OBEhDZLpc2z6F1WB37/sQSKvk4i5Ju3qHdNOoJM6XkFR2UkmOh1WSrqkTOB1xnHQUaa2wgE2R0/VYWp1Twm1vsvOGr2FZSHiYUUGa3H2i+8RnmP7rf8vouecY946mmjB/5ROMj45R7QydgiANSSrqGGjmoOl0wjz4AFdvXeEb3vl2Lj3xan72R/8p7to1FsZjjGLdFhTe5ywN6BT0WkJOtVKiUUiBY63Y/sZvgFMXGXVw/effx6XNxPlvfTvTZ69y+B9/jsvv+lpUtUaiJCVDiprgPPiW5c+9n7g+Zuud30RzeptWadRiSfOFp5n95C9inn2J6tH7qF96kXk/o/UtTqZWUELdWG3QWc5hrAikg5O/U8pIi0YcYmYYbnSkKCoslhgSZVnSdR1KQVUVeTOLBC8/o2naFQWeErQ+cOh75jGwVRScn6xRVzXL6Gj7HpORN2stWlv6viclQWmMtoSQ0YEE3jmsNTlx1+A9FKVUVJTFiJg6aG9Q/NzPcnx4xNp3vIcdJzutCYaUJBU55b1jOMCYohhWBSnDLCwgOjWTEp0JHF+o8G9+lEVpMxIv17rOw8pwEILhc+lLtF/5EwyT/arUEelPG/5mg3E1KYWyFboy2LogVD1F7yj6CaPJGLfR0u+0zJdrzGYN/WHL5LBhcdjQ7Tvag5Z+1kOnJIaBwbHKalAZqJxhjQhJovtDXiU1Qp2RJM06KvCk7EBSaCIFmnWt2VKKTa0hCrU2IvGZ6H7XPf0rfmghyZscEhKHnMR8ZTjplBGoLULssY3HkiisRfdSwhVzcup4VNPvrTEb2Dd1YlWVxdegUiDcPWB0t8UkyaqImxXh8i7LuiQbGwk6YgpR2KdSEUsIWSeDkih5TUQZI4v4qrtF001qmr1TbN/dZ6Oo+JXnn+dWE7j46P3s9Fc5eOYK6pkX0BnRmTtPpz1Rl9zcXMecOo2tCq6+cIvpckFZF3z6+g3MfsWrH3+Mlz34OKfPbGCLDVKEPu6zaG7SdfsctLe4e3gL0wWqJrJlEucrix5N0CTqLmCahJ7UbD08Ru/PaW7PMbOWiV9yeO2YB4PjsSlUxQboCptKUmFIlaVrW2zfYwMkI0Of855bd4+4eXjMPDnaBMuQmHrPIgbZpACdRKBqkMFBa4mkN9rkXABxAawC5ThhT/TQuZFONlH5ejm9SkP0SvYgiwUaHWRQDfkEGHOhWkiyiBiVwBr6KLZN8jBUGAldSy4I3ZF1FH3b4ztBWI6XDbM+oyo+SLFcpl6ilgVa4u8dp7Y2ab2j3q7pZ56uCVgPQwmkiOPEZRNSIpqIi57USS7M3Pe4wkseUUwELRy1z5BwSS4e1TZTZ2n1NxoGPKVSFm5K9HlK+dAQxakjCLd0lKBOgq1CihkRGoTx8l65EAhFTUg9gUStLVUykMRl5/N7p2AlindJND6elKs75O81UZrztqROUo3gLl+ECxeJWUGWtKbwkcUzX+T2P/qnnLl6lRga2hhplkfYD++zXazRRUeHaGzQlqCl/VrngXQOpJv7vOb3/wG++PQLfOh//Zdc2l1ndm4Hf21JHaJscEqalZvoaWLuuSmEgiyMpu1bDkrFA088TigKltM5bmw48wPfTW/HvPjD/xvj23eYPPEoRZqALqE2BDRNcCz6Dpp9lj/xb4gfepLykfuxRUm8eQP9wovE/VvUtIzmdwjOMW07Wufz+60wushDvyAH2ghi4aMjJiVZQXnQN9pQWElF1lpTGNFSxZQoK0sI4jory5LeOYrC4p0Mw66Xg6E2kn/kU6KLkVnXY7TifFWxXY1o+o6pa2WoNQptZNi3RhM8mNzJlELAWCMoKgpl9Ap1GVUVWinmiyUART2hKGvaxYzop9Qf/w3mn/0sD/VTpiobg1OOpzcQYqBAdGwiWuUeEamWssfY06fI4cTTvvlxZmfWkVRaEXTLtSqSgwFlUkO+14DQCvcJq5wj2cNWiexp0KjlLS7l+ACdw/KSwZQaayps5Sl8INQjfN/Stw22ayi3W9yOo5+1LKZLFgdLmsOGfr+nPPLURx2hTdigKDWkpFelouIkSxTAWMnrsQrajKLFlLJ1X6QXq98hRQqgVprtZDilNZtKY6yiiQEbAvfKev5Lj6/8oYWsNVnNxbJRpexDX8m4kxTSFb2hMBVYjVFNFmxCpQ1ud0y/PSZLJ/JyfvLQKqFci7p+SD2NWCylBn9+THN2QqdLbIwYgoi4sq7FVAZfiBhTbsKEVYkqQ9o2SYGiQtHZkv1TO7Czw+SF5wkjw2ePp+y3hi9cvcYjF7bYPWi5PFtQJ0UbA7qoWIzWcQ9cZvtrXsVaWdEGx80bV5l3CdfNmXY91XjM5s277Oyd4+zpHTbGG4zHNYvuLvO5obAOW2jGa2MW7oBDO+XF6Pj8Eta9ZpwSm5trbI5OUYxr7jZzlqOKjUcvU6eS69dfwh7ss07HZz77JJ8LFTWK3aLi4t4pJmtj+mCx4xFjbSj7yPH+ATfv3OFw3tAlSYVtgmcWPR2iZWBwgKWYayWl6yQrjmSTj7KpCts3oGwnUOdJ6Nygqs9i3ZiHF1IugsvaFmIODFTEStNqsTf2oadMxepnihhGdCEi6o0ivs5FcSlIDmwi5cFEQrVikjC3FBK1MZQolnlhl8ZaQxc8QSWqwlAXlqAcm1trLLoZMxWos5ZD1lRFVJre56HZBkFDknQo9T4K1YS0mfch4rL2Rdw9slxZgmxQ+TCAkjr6EAI+nDTBkv/CSRR4WKvxvQyVUg8gMe4hDZB0ukcbJgOOj5EQh8U5USvDBMUNLe+BjkMPjNyHRmnpcUmSyiot7hKEtW0NF0cjSp+ItmLtsUcJoxqbJNogaUWaOV74iX/H9rUrdL5DBY3rAxjYMYZEx2JscFHRLT3dqW0e/Ka3Ye87x933/Rqzp5/jzuKQ+cc/wvzFl6hf8Upe9x3fhhnVPHvtRXavXWNvss6t4xnTEFgqCEag9A1lGdkCoselQLO1Tti6gL5wVgT+G2Ne+z1/jtnnvsCdH/ufqbfH3HnFfRTnTjEznrLvePTtX8ft/Ssc/tN/TwodZVCEZc/tpz/C1tOfZGJr6gK89riw4MzmFin0zLuOpu8l/yedJLHafGBSxmCsxTlHROOjJyCCBgmSk0OB1YbKWkpdiI3fKJx3kBJVVUlwYpKGaue9ZFIN1Q75/mqC5yh6likwUnB+bQ1rLU1waG3EsafkPohJg4lZtyb3elWWuWICyUTJzdnGGLxzlOMRXR8Y1yNc6HANVOMxzvW49gg/36dPjqiFWgLwQeL7tQRzETG4GLFK4UPEh4RXUZA/FK0JHD+xhf/aB3FVkQ3/Q/ruiW5jhexmnZlkF52gOcNkkvIappTKeV+KrFlYDS6rm05l1Vg+SCtjpUbBFhS1iHULP6FuW/xaS7fVstaM6U61LI9b2mmPvrvE3lpS3XbY457Qe3zU8l4niXCoVAQjK1cfNX0KtNowj4mpinTZ2RiynkUnAZbH2rBrNGfQnDKGTS1N523qKVQE1/2u+/lX/NAiprR731m5eDzDVBhzS2ZChZ7UB4pYYGxcCXYNimQ1/cU1uvWCTCrJMW9YZDMEbtuAfWlKESwmAhNNfGiH5ZbEPistoUzaVuiiQ40sptSUpSFYi/XkzQSB5vKCX6BJ2rIYbeIeeYS1UcWomeMLTTcPtEpx0wXuPvl53noc2ewlVdKVJePJLuOXv4LwVa/Hn93loUuXuHbzCs89/zR3rGV9vEdUkY3NDXZ2d6nqEVWxwdp4l6I0NF1PWUw4fXqPo2bG8UFiA02hFXdVZGEDR6ln5ygxebFl2RyhdrfZPbuL3RpxxxXoeoPioVdx5sxNwsee4vbxAl8KRH7lbsvzd29Tb29xHD0uOC6O13jIjvEHU2Z9j9NiRe2DlNc1BLoEXZIpXSlJ6RyslgZxoSgThb7TA8kjD4VscgMse8I1D+hL1n+YYoWmKRUyrZjzE5Q07HoNR76ljxJzH5PNMLlmCI8q8gI6CA9T8iQCRamJXpF8XNkQVSE6gnFREsYpDxQZovYi/069bBJORTbGFbie7bUJyieaUcFd07KuNdXw89CkJItnn5OdjVaU3lMm6IE2GdKQomkMITpZjEPCJMnXcBGcD5gyc/SJvDjpTOGcIDApir5ioOmGRTpxj6aMtKLdYsxNTRk275yjL6QlOyYoVWI9D1BR+L8T62YS555LgnhapbBa0WVM7bwt2TWGUdTM65Li4cuEwkpcuwGD57kP/hrlJz6LcUuhWpChwlYV3e4Wo295Ky9/11tJ3vOBf/wTvOKNb2DyuteDKbF79/Opv/13aLvI6de9ko3NLbYfusgnP/gbXDhzP5fsiPObO6SQWKqGpUk0PkrQFhFrxVUxMiW9Uax/45t54x//Q9iNLVLQWOCFn/kV7E++j/LyBmvvfANX//OnUNOEvn6Ngxt3aD/7NHc/cwM/h5FK+LWa9LpXsXb/edxHPkVxd0pQibvNgs1RxchaZs2CuetwSVA2q8XaXBUWq0XTYoyVgEPAR3DRE1VgiPMX8SZYlSiMaF3KosyliNxzzafc5txjtMblSoyYh3SfEsvoudO19CpxsajYrSdoa1Ah0i3nDN1HOkcZdF0PKGxZiE3cOYgJo4Si1cauUKJIwnuf7eSyzozqEb3rpFW7KMSsEXLXXG4ytyhsSLnCQNYhpTRBiwsmKhFvRyUT+HIzoL7hUWaTkaSd5PtuOFylAdnP69C9Sbykk1iAlE9dZtBOrlQfJ0PLaj3LsQFDL8G9iDHIQcHoAmMUNo4o6xGh73BdQz9paNcK6u2KbuZJE4suNJaWMiT01KPQ6JCosuPSok8MLWiSKuhjYqESR8kzJ9AAsxTpM7KklaJOiXFMrBnFhtbs2FJqdlCY9GXALPz/MLR88IMf5O/8nb/Dxz72MW7cuMF/+A//gW/91m9dff7P/Jk/w4//+I9/ydd8y7d8Cz//8z+/+vfBwQE/8AM/wE//9E+jteY973kPP/IjP8La2trqOU8++STf933fx0c/+lFOnTrFD/zAD/CDP/iDv9eXS1TiYkghYExu1VVqpWnJ1gVSChQxoL2jVBZdWUaFpXBa4ogLjT43wRfiMFjBeCq7JZSE0HHcoG8vMcpgTSLtlPSXt+lsgUJCvRIarS3GFtiywI4KVG3R1kDyq/qAqAAjQUaOgDMTFvdd4hXf+gdZ1/DrH/nPXJvPmAV43nS0XcHmzSVnVCXhTEqRyhJ14UFe8b1/ntHLLnB3NkOPx1w9vMPe1i5vfsPriaHHu45iPGZ3c5vttW12d/YYjzbFAuxKXG/pnebU1jp+OiVMj+iDxlrDxDhCHyibxPGdBr8I+Js3mT6tuHNunc+OoKvGnNo9zQMNpJtz+rZD60JyIoj0/QK1SPRKE72jbjs27ZJJ0GgMRA9J0hX7lGhjlKbRYfPLyJcFdJS0XaNOFk2ds0KGU4oaCPRhgUg5jTOfhoTKyLxsLsxMK34IrLGURYGtrAxRfQc+Smoqmd9VJ2I5gZFzC65SGC1ZBVZZlIYudRL6VXhisDgbKKzBFhavIzpERsHk/IlAtJraFIy1RkXHqBpRVSWtCzhrmdaGrgsSwZ3EGyfXVE52TrkpOd8DsxjpgEKZvAAm0JqYT5m/nWdPQpmhVvdCTIjNO+dLDKJL+ZrhpJkyuJltszHleoKcEaFZHUZ9ivQhrJwT2nk2NBQRliScitIamyMChD+Xa0KT0DHTWEqxZ0vGSYr8GK9RXDjPUoPWEaUSzOdce9/7Od8t6VSiivJz/ek1zr7pDXD2AsXr30R/7mWs727wVf/Xizz12c9xNhh0WWM3tnCFZi1Zzj36BOXWDhde/XI+9MP/kNv+4+xO70jYW5JBpfOepY/EpKVFV2kmpqRUBpJi/v6P0x0nTn37t1Kv71FXCtwU/aozXPojf4RP/9uf4/5PPMXtv/Q34HBGNz3m7vFdZosjSqUpdIl+8CFe+Xf+FvrUDnd+9n1c/fs/hr5yAxUN68WYbtHSOEcXhRZSyMZcmNwEnMsOY0qZGhJKKOQUU6PkFF/ZQrR32mZLcyF1Dd5RZlGuhOlpetdLFpLSGKszpSrXZBN65r6ji+LgvLi2yaQcMVssWLQd3omjyWZKIgRBgxJICWmmIMuqFF0LKtdeiGtUaUPX95JtUpUorej6Tlxw2tB1HX3ocqVA1n5FuW8lWyUfKlBSZRGlzyokMDHRq0hbBZavu0Dz2AVCtCfrOKxEy0rLmjKsBWRxvlRWnKxNKR8uBOuXYEKdi0mljFUO4YNBQIYevbrlVOaRxL0o66w2Gq0jpSlJtqQoagpfU4xG1H1HV3WgDNqDXwTUkYG5FJdqBUYrKgUjZRihKJDuJ4OiV57eJBbesMAzS4FDJT1gTZ7CRmjGqmBkKtaLiok1jLXBR0WT+i9rT/89Dy2LxYJXv/rVfPd3fzfvfve7f8fnvOMd7+Cf/JN/svp3VVVf8vk/+Sf/JDdu3OD9738/zjm+67u+i+/93u/lX/yLfwHAdDrlm7/5m3n729/Oj/3Yj/HpT3+a7/7u72Zra4vv/d7v/T293kQiKgkg0qTsYhhscZJ8q5ImKCj6RBm06CHQjKyhVppOK+yoIJxZpy0SQUUSuWNl4BJzFy235thjRxktqvSEc9vMT41prazEaoDKlCjTtZFwOVUqisoQmyA5x0phB+eKSvg0oT/1CJe/7dt4xVd/NT/5V/8aVVlxe3mHgxQ5wDLuIg8owymVSD6SbEFShgb43EsHvOplD/LoAzsklZgfXeTmqWv0rmGtgvtO7TDrGky5zv0X7+PMzllMWTBdzOhc4Pi4ZzHXdK5ge33CIRanKmwVGRkwM4+bLTnue/A9u/WYSsOL8ymNSRy1+8zvXOFhN2Gz7WjwhOUCM6lJWqGUpfeBRdegug5brVFO1vIJRG5u7yOtD7SJFUytVMrdGJLkWGpNpYdF12RERJPioFsZisryEpcXoZgSyoiGSSVZvOUqkFcQs+1Z/pkzX7QiFIq56uljyKJVBcrkDVg49aTA+4BzjqQ1ru0oVMJGTeg91mhsEk1LAQQlsHwcHAbZqYNKBGXRDmxZZMpLURYlk40RnfeSR2NKFpOC+VFPFa3UTWTxR0ySxVAaS+sdSUPUgUVU8neOOjdOp2xjFbWwTokYekEItUEraXYNShJkVYpSX08+5Skp/MzKHzRaKBsEdpfAt+yiyp1QMX8/2RAln6dHaKRhcBppg1F+lQ0Sye4gho4jJK04REoFLt9rW7YUy4tN2L09yp1dGq0F8tdw+4vPoJ9/nogIRtuNERtv+GrGb/gqpm1k8e9+mTu/+UVe9df+z6StNYIpefbjn+byAw8wi3MOX3qOsvVYpdnqI6/6xrfw7Pt+ifuvXWN5eIhTBr+9Q9+7FS22BEiBShlqZSnQoC2c3aO8O6P40K9iX/Ywy4tnCaxx4Tv+GHp2zK3/9Ots/8Zn2Jkesbx9jXnoOVjOOZhPhcoux2hdM3rj1+DXt2miZuMP/CHOnjnFp/6nH+ZVV2+jomLpA43r6b0jKoVVGV3RBaW1K61ScOIC88HjvVvVUkj1ghFKVlkGJ0tZFbjeUZalBMU5txpiUgpYU9L2vVwTKZK0pnWORXBMQ0tUsFeMOL2+idIWbRIhNXIfZD1i8hFTFhSFQWlo2xZrLEoreu/kulOyvRkjQtzOe0or1uNmscTnzJiyqiSd1zn6LuCTl8BXJVEJIYGLCbRBK6GIi5QHhxjxLkpongosz5eob3iCprAr5EQJvJhpGwTJUTL4DSmzKLUaakS2ILJ0khL3HxqtJGhQ6ZOsoxOK6ARxPGnezsPaSg8p2Sw634fKClKswgQba4JzFHaO9w5mBXqjgonHHyQ0nkJBrWCsSyZKM1GKWhfitkwQoxGaSCm6qGmB4+iZEjiOgdZFJqZgU2smwBjNSClZr3XB2Icva0//PQ8t73znO3nnO9/5X31OVVWcPXv2d/zcU089xc///M/z0Y9+lNe97nUA/IN/8A9417vexd/9u3+X8+fP8xM/8RP0fc8//sf/mLIseeKJJ/jkJz/JD//wD/8Xh5au6+i6Ez5sOp0CJ+JDm7cfnztl9JCAqgbBk8F6zShK+ZtBtAKFyc3QOxXLvTFBmRUtJMd4uSC1BusC9oVjygUUGNxIsXhkm/naScmFAvSA+1mNqg22tpSjkr7oUAbwEUuRY80hYOj2Xs3D3/5tvPFP/EE+/JP/hvKZL3A4bjloGu4kR6cMF6LjUVMxBjAajaUzFbMNaJhxff+ItY0RVQH3nb/A/kOPcv3wDqPKoEvN/Xt7nD11gTNnLrA2XiOkyAKN6yLHxy3tQkNa4+4LT4MylOsjet2xFhTVvuP4KDAfuN6UmPc9fk+xvlsQXGR7nnhZW7BWQMTSznvivIWY6GOgM6L7GKEpc65BiDGHWMl75zlRrKfsErIRUIpKaWptKZSlUAVmFVkmJ5SMnwhdxInOKWb9SRgQM3Wy+Z5Qi5CiJsaA0rLguBSIVrHE0aceHyJFYQU1UPJ6tVIUyACkrLynyQdi7whdRM08lCVYiTbvQ8DFRO9Tjq1KGR0RIdsqkdSz0ttsbE5Wv4cPnqgs3XrJUTFj3EfqPCiHFAla0SMFj857lIY66ZXkLyGIpAeSF82NLYykcMpKKqJeJRd9YKBaM711jzDXGIMaov+jDH0hU7MxDylp0LFkiq6P4FXK71HAIWFXEWmQtQkmSTEdDgAkeiREUGzR5FV/uEETJiU2rdjhlbGonXXCqJAIBKMptWH/Y59ivZmRtKcbr3Hfn34va2/+elxZc/AzP8Po1hWKsADV4Yj4vkHvH9LeOaSbHXP8M7/CxmLO5qjm7vt/kZ/95Q/xcFS80hqOtmrapoeUaHrHqCiJzZx58BRJMzKGdWslmr0w6PsfZHbwJA+2DfEXfpHq7BmOH7xA1TqWH/go/qd+kt3ZlHlwTLsld9o5s64lpMjEVIzQLE5vc/kPv4MuBQ4//jTl+hqNGXPfmftZv3GH42bBtO/pg5d7SGnpRLKWwmp5zwGp+pUyxBBO6E2tJAfJyjJGWUmJIypI8m0eFFJM1HW9+toV1ZRkw/ZeBlBHZJkSs6iojeHiqGaixWnX9X2ufIj5voSiKLDW4nxPURRoVWBNQdd30nUVRYuyundTyg4nsUgvux6sQVtxHyklIYnaaGJ/svGv1oeU6JJHZQ2YGQ5DQIyOVifmVcf8LQ8zv7AmqV9p8NTI5Sj5jCk7GAeiR2jslAY92L2fIw87gEonaGfk5Pve8/sNO8y91NBAyw2HNXlL04qiTSmhrEYnhdIaFSJ91RLWWvTYEU2bDzHiYq2VYYRhoi1rWtKlTZI9LepETAYfDE4H+hRZV5p5DBybyDJ5dNKsK83YGEEYtabEUGlFa/87DS1fzuMDH/gAp0+fZnt7m2/8xm/kb/7Nv8nu7i4AH/7wh9na2loNLABvf/vb0VrzG7/xG3zbt30bH/7wh/n6r//6VZIiCMX0t//23+bw8JDt7e3f9jP/1t/6W/zQD/3Qb/v4iY01+9915tXjyZs2QNZFUNRRYQrJXiiNobKGgog6PaFZs5ikV5MxKAqlIImB38w66isziihOC7bGuEtb+MKeCDyjXHRKa1RRoCqLrSy6kKC5mE+rBRrJ8YWm2uHCN72FN/3Z38+V557nk/+vf8rrL27y0v4xbeuYWsUoKh6zFY8lQwW4ymBMhdndZf3Vr+D0E5e5cHEbCsPtxZL9acNMldyZNjx632nuO3+a3Y0tTm/uUlS1bGHasDYasbE+Ymd7i8PjKdPbU07bddqJohsHom/ZmEd8Cy6QXVmal7qG4uIIfyFh12FdV2zUCn9cMjsC7zSmAJyj1pYunzjqqmYcEmObxXyDNiK/jUkpXBALbMjUrsk7aYlipA2FimjlhYNWdrX4DLkIImg7uXG10pCjAmM+vQ+R8nLlrBjnFZUYkuQKODwL50jeSSS9kgC23juUEfGeViJcTQyOpAR9xLcOgwxmbetYuI5gNC5GfIiSDqoErZFeI7OyTmNAWcV4PKEqCnzoBQ5HrNBtqZmPLb1X1EOEtsouK8GThaaJkSoqWq1yhkogZfhfpROXkzYyyA+0WUJg55S8WLzzsDosmlKXIM9ViMNkKBiNqJWbSanM0CJ70iCf9graGOiziLkLni56TIIaaToPuZdlcAnZ7CEf/qeQAavUiokSpNXHQFwf4QuD1qCtJH/Ov/gsOxGgpPyaryK89rU89fwtHnviEdx8QamEjgpaMnh106E//hkOnnqWuZuhr19jryrYUIabd69xeXODXVsDI7bSiDAasfQBZ2EWeknGTZE9VVCVWWugEzYl3P4cfXhMFxuKLzzN9Ef+n5RnT9MdH2Pv3GDcNczajmPXcdgtmHcNhERdVFhtoS7Zfc83MXrgIZbXb/HSj/wjzHTKWqG4eOc2s9bRuCUuxByqp3K5ocFqvUIHhtyckE/sYag1yBu6tGVrykIOGCZrR4aU2xjjKkBu+K/Sir6XFuK+6QTJSWI3nzpPm2BHa85P1lgrauZtR9dL2F1KEW11dlNm7UxZEPNgZYylKBIheWL0grIiepCiKIgx0veOqihIJMqqom1bNIpRVbNcNuI6UicDyb2/r81lrCZnNQ0EjdeJQidmL9ui/eoHWapSBhEdUBntkes9DzFaHDgp026KlKs8pPtM2KG0QoezxehEc5fp1aGkd7W3DKjO8LF71697vj7mAYgUToYiueNlHzMFXktnFD6hgzxfUDWo0NTKUClZE6zR+XiY6Smj8VHTBU+hFWUAmxR1oYlRMdGGkTaUuWPP5iGw4ITa+q89/psPLe94xzt497vfzQMPPMCzzz7LX/krf4V3vvOdfPjDH8YYw82bNzl9+vSXvghr2dnZ4ebNmwDcvHmTBx544Euec+bMmdXnfqeh5S//5b/MX/yLf3H17+l0yqVLlxBvhjRuyt9V+kq0tBCS0MIrk7A+MlEWUxhSFzHaMiortPbYMzWV04z3E61RxFpjDKAhGiNR8XcXjO6Iaweb8Jc36XYnBD0MTghsrk2+dks5IRQlqbLUdQ0m4XMUclRwPKpoLm4yutDxUz/983z6n/87Xjk/xu7uMjos6bVCecXZseWitpyp12j7Flta9PqYcP95uO8SISSu7x/D4Zzrt25z69Z1QsoulRDRxjAZr8vAklWrCqhMwfbGJns7e1y5dgud4Mxkky/eDhx3M6rJhPXGc8gYVcIE6PGoiaJ7aITfjoyDQ0dDffo0L7gFIwu1UhSFJZYG7aUhtC4sRYzsmoqxNrmqPJ/KE0Rt8UrqzHsv7gGdxAaskbCiMZKyqI0haiO/SxruTHH7ZF8gkDUmg0h0eJO0iOvIIXNDZXoiklRCgqBkeOiUZ6r6vHDKt1a5UA4E3eiDExGezqnMLqB6j+4CSRu8luA43wd6FWlST9vlhTpv+CCOsiExtrByMhxVNofTyceNTvQEXFQcTCrOHPesKZXdHkb6YbTkqZmUwGisKTiKjqAThRZRn0kJYwa9isr5IZpCi0VYpwFojMToM2ivc3qmdCoN6IpCS56M0hCE7hG3Txby5eEzIFC+VcLtxxjpfERZQ6sS0yR9Qk6JC0WKFuXeigirOmxUUUeBq5WI7De12LDRiVjUeKVJWgar0CxY3r7NDpFmY4OH3/kurt045Mr7P8ArXvEooW0oYiTubpImI0iRbtmy4eZUd68RU4/FMlaG1nnWyjGb4w3a1oF1tCau6hZCZbhyd8adGOg0VBoqW2RETuHckuOP/Bq18iy1ZkO1jG6+iLl7lQrwUcIFD5s5x13LIrrsKDMUyoCtKd71DVz+jj9Bs2i59i9/CvOJj1MuZ1w6e4rgepqmpe2C6D6UCG9LY6nLAlKQQTUkcW8Fj4tCrfTZulxoQ6UtpSmwRhCWGBIxQPAytK86c8gamCykN1pE6m3fMSSsOgIL7zgKDkVityrYGo1oWs/SdUK9pmyfHTRjOlHYgr7z+fdX9Hm4EaGskiDBLBcm38FFWdJ0HRDRKVLZrCFaLOmjR1mJSZC5/gQRFATRYlREUl4CQVtx5KGZbnratz/Ocr2S30jLfaMytT1EISRyYCl56FFSM5KZJAbPr0Zs0hJArFcfH8ItleLkb/wlotuBkjpBL2X5GyillMXyafX0IQ5CeUFXo3foHqKD1EVsPuDrFCmMRaeIjbLGGi1mEaMUKntTolJYW0jURK5WSEE6r1w2TBgl64FeeauEavxyHv/Nh5b3vve9q///yle+kle96lU89NBDfOADH+Btb3vbf+sft3pUVfXbtDOAeOMzfZCQRVEFIMR8WkiSKBgkFKjWFqOkfE8XlqosGReBqhrRfvAaR0/P+PxyyXRieXB7jVPjMeMzG9gNQ/n8AmZysu4mhubR08xHNT5Da8MFthJmaUkZtdpiiopQ95jKUrWRHsXBaMK1S6dpHjrP5z/0n6k/9QW+bt6z/cQp4tldRtduoKLjVDXmolOMTOD6ckmpFZWpiLtb9OdPMY+O2d1bHMce13leePF5ptM7QKLv4dTOBq0HHxVB6ZXVD8BYSzWa5Hhow8suXeCcbvmNl25x7bjjol5ijzumt2eYKE6DvlYUWzXV2oiFWlCiCA2YFHlgb5PJC0tGKVKEhCksWkdYW0eXFuMTa8kSXaDNKRqBnN8QHIvkaFWiy1CxzqK2mBxQQD6pSN+PbKo296do7hlMOLnpJVdArfT49/ZskP99b4GZaDbkb9T1Ha3vCTahotAVNoKxWRuSJLU1pUjsZegIIRG7SBVyKqpPtM7ROkenFa0KdCkQjYgbo9JyvRIplCF5T6G02Eidw2fbqAoRfEBp6FVkNrHs24Y1b6iS1ASQklivjbzPRYqUVkMr3E1pTHbwCGom6JDJ4XA6l+EZaZZOEaULvIdKejEgw/CQiM5lWkAWtcJY/PAchEIUPVGUa05Jp5bYYCU5MyZPnxLTmJgpzSwFGiVV9kmJCDehVqmyYRUeKEmzkcREa0YARhOiwvtApcSFElxHXO4TljOBax57gPKhB7n5T/4NG/M5dWHpUbjRBhe//d2YyQY2BmjmGL8gGuidLMTFcHq0BVfvzlgrS2qjuX58TFSK9apm5gIH3tORGKHZ1BYbgCS8/rxZ4voFtbEoK6GSCglxizEy945Z1zHrexZRBgkRzxq6Mzuc/uN/lAf/3LezCIbpT/0Kzc/8InVzzIXdTYromHc9nQ+4IO+XNYXUXWiPUhJgiZJsk2HNjFm7oZQ0pw89RNbYjGAEbGFIyYvuKuQU5Uy9lGVJ3/dynzknlJAXcbtH0YTIrHd0RMZGc//GFuR+K20UODJlzwr10FrT9z2gqesKYzTL5ZIYI2VV5vssYoxeIREnXwNGsxKL+xyAqLWgyyAIpLJ2VRWRkAOINDEHlFa4GOijo0wF7cNbLO/fxakT9GPgY1K+3uX/Z6Q/T19KaSluXV21eW8Y8N0YIQXuDba79/Elg0u69zvwJY7IGO/5eJKfO6ChA+IcoidGB96R+g7f9yTnsQlKZSiT9KZV1kgch0ZQEiQaIpPv0uydhHpNWu7zUdIE42XwSVIVIM3gJ+Lmgb763R7/3S3PDz74IHt7ezzzzDO87W1v4+zZs9y+fftLnuO95+DgYKWDOXv2LLdu3fqS5wz//i9pZf5LD0n006s8lSGI50S3kPUNKaBDRGe+0XmPMoqqKlnXCucUp48Dh42jmM9ZHHi6qzN6FEEpTlVjqkVP6S2JSDUaMzdrjNwWSge8biULAgkpUlqSeYukxD6mLdgCZR2uiCzGY25eOkd73xkOD26RPv0Mj89aJpOKcH6XfrROtT1hXSseKEaoZYdSBdd8YrMu2JmMUNsb3E2Bdj6n0CWzZkHbztk/us1isWB2PKXvI2trEx69/ACNC6wHMPYEMvQhMF92LJYNhYGXXbzE8fXnOGw6QtNzqSrZ9mOK3jJJcNA3uElNaBJbVxsujWHNFBz1gTNjeM2VOUWTaJURDjzfEN4ogtasjUrismeZuWmDlKL5KCe/FNMKroYTx4/WksKqtZweh7A4SY4caImsP7pn4VulUioJzEqrgVKvOGWdVf2Sfpo/j/SbBO9JMVBaTZnEIiq0SwCtKJySU2bw+CB/T6UkUVbpXOU+DB5afg857QQKU5B0Sef8CrkhJWpbUlcl3mdHVUoQI4U2EBMxeBoDyyJyPNI0iyhBc+R+I2QYtTGwbgt2CVxPoFI+ZSIDipSZZa9VhsdF4CzBbh7pLRHP1j3OH2RzMdaQvJPfNcqC57KwV15N5tuVJeTGV438LlZLgFUIjmAS0xCZxsRxTHhhxyQ4MAmVNARaebKODYWJQg1ta3FZyXM0IYjVXkbGiG9nqK4lUjJ57HGC0Rw9/0Uu7O2gRgVxXFN84xuwDz3KcdNzdq0mNnNqFfEq0sZEbaAqCmpbkFygrzQ76+voAOvFhCWOoCJ+UrN/V6jIU7ZitxpBEDLLmoK+c1gTsUY6yZRidVLvvGPhPbPesQhBcouMQu9usP3G1/Py7/kuJk+8htky0PzChzn88X+NObrOxnjEuBoxn85Ytr3QQkkoUKOS/K01FFahUu7y0TJE+s5LfosE9aCHgUULIaC1UArk99JaQ1GUeB8yLVSIAD1JuJxzLrv5FCEquuhYpMBBdEQSp4uKXVNJfERdspwtGYo18+UvA1V2/JRVJUF30YkV2pg8hJCTcAeEIonV2mhGoxF1WdC2DSlF6qomonDNclVZEEJYbf9xoGc0uNw8bkwuIjWi91L3b9MUBpV0FtmSh50TSufePXnAOkSvonNQ3YBO3VuUqO8FihlqaPIN9CWPlNe3oUF9oLdSOqH1Tp6bXUm5w0go3YBAnp7CBco20Tl5pk0q54Zp0fRki7shuxBlClwNlTG/RpVEVG8VWOHyKZKWIlvNqjR2+F2/nMd/96Hl6tWr7O/vc+7cOQDe9KY3cXR0xMc+9jFe+9rXAvBLv/RLxBh5wxvesHrOX/2rfxXnHEUhEeHvf//7eeyxx35Haui/+lB5I8rDQYyihYh5ukxKo9CrDhqlJBCrrWr2RxNm6yOcDfTTgBmNeeJ197N9+yreRxZHc5azOaOkGS07yuAgRLzVbBYjLl4fsfHK17KoHZ//wC9w7pGXM590NKWjVS3O9fiQiMmjfCSFiNc11/ZKbtx/jvnuGW7fuEL4/Ge5NOuYaCu01LlTuLFFr9U8uLfF5xcOozWVVcx7j63W2Nxdx40nzFNkMT3CxoCuCtqm4e7tO9y8e5uEXHTPvvAM58+dRWMobMmZzY3V5uy9p2lbmr6jWTZ0ruGTX3iW5fyQB13P9jJxuFxyajLCNI5D27OhI3VlePjSGWJsSDcXTM7s8HIKzt/uWC93OKwSUwKTqKmT5mboOAgt3kdYtnjEZhe8nMx7oFfiGhLMIUhAoNUMvVI6IaFnSUsMtRJNiJxs4qqbZLAUKiAO4reQVnZ4KS7TWYSSZIFEQsqUEvFpHx06OPrkVwOD1glttAwfZoDexZWgEEpGZw1U0BJDn1IkGohW3AGGiF6CUSVeGxHNlgZCRHtFaaGwFSGIiNInGeKSDxir0IUmNBHlNV2A60ViB6hIaDqsKjIlCjEGtE/obP+PKqGtlYGp0ETviTFke7bNcK6EKCbEWWFIuQ9LASYPj1osmCrKZqgUKRiSj5TIoh4HsDqLgGXGE3rKaEMkEZRCJ8PCwXHoaZSmTZJ7UaqYLc5x0IqSQVPyDEokUZLYNhqdEso7oQ37Buuj0MRFRedkEOuxbJy9D+MSaT6nuvwAui44/eonuO/8BT79vl/lde95F84m2tBQFpb58ZxFhDUk8j72gbWy5tj1XF+2bClDXZXMe0+KBhPEVbYXDecKizbQ+h5txquT9aQSMe24LLFaE3WkcYHj4DjuO+YqMtusURdPc+4NX8Vjf/APsPeKr6KJBdO7c2Yf+E38P/u3rN+8gkOzM1qjX7TM+57Wd9kCLDTnkHxbYTHeMJyXk9L0fSe0W97YpH8ICSvLOSmSPA0u9Ku1ehDdlmWJ9zml2kqY4pBOmxKEFOhwHLklbYKJtdy3uU5dVpii5nA+l/j9zHGoHBJXFAXRhzwE9bJBK0lftrpAJY9Sir4Xd6FItDRaFRidbdZWYv7H4xEpKZbTBaOiQGdtj48Qcqt60qI1ES2joI/ORwqjSTrh6kQ6tSZrUw6JI1MyMpxlJOXeDT3vNzEPgyeISL54CQwp0wqTqSbkuYPwPf8vRrUaFkDQytzEgEoBlVZ1spwIdfN+lxEnYkTFCC7vRZ3Q19aBVieBnaW2lKrAqpyFlIlhg0Jbs6K/IhE3NCoqIbeUEjem0UE0VMlKWJ0it2b/dxpa5vM5zzzzzOrfzz//PJ/85CfZ2dlhZ2eHH/qhH+I973kPZ8+e5dlnn+UHf/AHefjhh/mWb/kWAF72spfxjne8g+/5nu/hx37sx3DO8f3f//28973v5fz58wB8+7d/Oz/0Qz/En/2zf5a/9Jf+Ep/5zGf4kR/5Ef7e3/t7v9eXK7w5J2+xVnITDsIkoREl14MkqZ6fJfGfqsjzFmwZWZuMWFeJ2pSsbW/RjSMj37Met9lpPUw7eP4OcXEoP3RS053ZIG1M2DYTdg2Y3/wc5meepBqXlNu77D50GnP/Dod9xPeJRgcOTeDm6RHuoUcI44r9p75IeObznJsv2dIlhyGhkuFyVTMZVayfPcvllz/GJz/8CTZ1ISVuKlFaw7KecFyUtEVBQvje+eyYO3f3uXb1Gm3bUo9KbGHQR0c89cUvsrOxyZntbbbWxlTK4IPHOcd8esh8ekh0HXcP7rBs7vD1j2xhPn6NftoxDy0bnWcaPRtGsV0Z1i/vEKpEMVcsrOHSxQuc+fxdJp1hbST6l9Au2ShqfO8Yp4KNpUP5xML1GGvoQ1jBl12mI/qk8DFjBkPKbUZPVkiAtlLkl9EU2cQSEOROzqvcCrQdFo1BAJdPSFobgS91GmaXE/GcUoTK0IwNnfarLAhTaJQRFElrEc+CiAYNWhxjIIgRkh9jS0tSKjvbPMQCvBZYPKSVqM5ojTVK4v6dx0cJnvO9l3RdJe263kdcEARmquFAR3aStC2LhifTP8ZKwrHPomIdsEjxn0pkUWYWAhstaJIxWAtLF1dN2BIcl/Ulq1Nbfs3GoINQC9oIiiSUU5YMKlmElBEYefgbayUuh6ASDugTNCSW+d4d3jeJw5chSBZQuedJw8kzsZbrDlJeFOPRnORyQWJSVOM1eqPxOlJOxlJAaRX1hXO4oHn8jd/AC+/7Bcwnv8Dmt7+beReYnDvLzUuXuH3rLqTEMlXcaTu2x2MO+iXX/Yy+U5jJBseu5e5iyv1rW4xJnNKGs/Uaa1Yz9zLQrhU1IQY6LXqH9vIuPPoQuq7ouoYmRlxRUJze4cGHH2Hz0cfZOH+GvlBEPeJ2E4jXbjF93y/Dz7yf9f1bzELDqfEWCZi1Dc67LGgV18aAmhXGUhWiq/Heo21B4/qcRXKSzxNDoCzKvKaKpip4T4gSF6Dy1xuTB4MYSVHl0lFxeK6+n1L0KbAIgUMXcMAFU3BuvIVWOidDS+DggCzcixQUZbG6D1HQO6GKohYadwiRU0oQmRjzMD1oTCKiidOW+XyxoliGnBStDVGrlds0pIgP+Z7IVBJIpUC3bXDnN3BKBgqVqWSQPJcVegsn2UURGAYW7slAyhf2l+pVUl6/7oVWTqinAaGIWTskRoPB95hWaAoDPa5OKktU/nmaLMJPHuUTeIXLFmRlNGXQ1Lqg0mZFDxoyUpIRXJO1aJARuVxvQXR5KJJ1WBm16oAbDhgoVhlXv9vj9zy0/NZv/RZvfetbV/8exK/f+Z3fyY/+6I/y5JNP8uM//uMcHR1x/vx5vvmbv5m/8Tf+xpfoTX7iJ36C7//+7+dtb3vbKlzu7//9v7/6/ObmJr/wC7/A933f9/Ha176Wvb09/vpf/+u/54wWGBIbT6LFh76M4TFwmQRoIvxm5flgPOYFSibjEWWY4w7nHBeWu0kzv3sL30TwPVWhGdU1Z+sxF8cTDIdy+thZ59hGbt26TuUcjz/2BEs9IS2vsdvVqLtzuqdfZK5hZCq6vTXG586xfuFB1u87z9UQeOkznyK88BynFh1jCmZOeFTdeV588Sb3b1RUXmM8PPHoQ9x59gqdiwRrOYoe5h13NhuOjo6Jx3Oa4DiYHTNtpiwXc1LvCH6MrWpIhtlizrxraILjcLmgrixt3zGbTplOD+maJSl4Du8eMl6fsNYe0WlP63pGzjOKElB2X1HTjjWMDMumJyhFHEfMCy+xfd0xcobJZoWuEmvjMaW2TJdztqg5q0d88eYtHIkUpV9Ga8kp6JLA8F3Mt1hCRGBJaAUDorcYbkwGeDSublKjbV4EBooinQwpeVAZUmxX5xI1nGb8sMYwWKFDXTAtoTVSoFgUuSdqNTDJ7axTwloLXk7/pioEgUgyiMSMfKTgQWkKF9BIEd1wqSpjZOAODtc5fAgSGx4SwckgEEOkMnlo8eCVpjdwYBOuLxiFfPKKkbKwpEKTkmfPlIyQBaW2BcH1q1OhSvlnG6QuwBhURkp8Eig5aTmhGyNt5+S/UWKAqpWgUBkSDkNIVkqChOb30Koh20Xi912KomcyCudhGSMLTqozlBJ6VSdpolUDfYEIfNGSmDtWlkIbyaQJETVtcMsGwhpoRbW2DqMRXs9IVmPGNRfe8mbKVzzO7OiY/soNjv7VT7N7fof+1iEH+y9y+3OfYz+VHPaes2WBj5FnpodcjJ7L6+ts+xJVlJQp0fdeNnsNo77ngWrMznjCtG847js2TI1Wlvm5PdKbX8naEw/x4Fu/DnPmNMbU6HzNDoGAHo13iUW3oGlmmNmS5nMvsfzZX6b+1KfYbA5ZBMdGNaYsNMfNkoXvcX0vttq8qVptMIgIN4aAyY6qSMQF0csMTd1Dx5BVZhXXX1US6xe8lz4h7ymKghDSSXR+ijm4rc27k9xXvfd0KTDzniZTDhfW1qmUZLx4FYTGS0Pb+AmNMBwcqkK0Mr3rpRjTljgX5J4n07pZf2KyTkcb+R5N02G0IiVNWVQ0vlmlympjSMExDB0up+kOg7agGqKXUTYRHlznaLcW8eyKDhKRbcyvWSRfJ/RJ5qxlsMv3eMr6mYESHNxAQ6+WUic0zsm3EOR2uM8CEi9AkAFm0OOcDD/3akfy+zEgvlFSunUA1UNyAR0TRRT3j03iai1zl5ugrmrlEBxKUUni7JM5TK/64IxSoESjpbPOEAS91lku8eU8fs9Dy1ve8pbfJga69/G+973vd/0eOzs7qyC5/9LjVa96Fb/6q7/6e315v+0hULhcZCFJnTgprkKsbPZLRgzPpoovbI3Zt56NpmdXOzYKzaiYcOXOnCcPD+hbx2aUibojkqqKm13L6GDJXvDUVcn5yRrru6eZlwUHv/Kf+ND7f5LQtnzRGsq+p9KJkVIUKaLaDn91xvTKLY5twdqrXsOb3vEuvv6rv4YvfPI3ee7Xfp39519isVhQxMhmiDTHC25dvcPs2ZdQM8c6Cru3w2K/IVjDeFxitMfPZtxtHLqUTIOd9TGF7tgeGSqrCb0jJkNZFVgk66J1PbO2Y9l1LJo5dw9ucfvoNkvfEX3P3cNDUJGXbk2p6jHVxFEctoCntrBblNxeFxfFkkAqFWujxF4XqeaBpCymKBiPLQvvqaoRRR/YXZtwqzugXUghWyyy2j5aQRRQuCjdOEMwk1YJEwKBhFEFNi/qhRK9hEJQCaPyySflLJJ4wvuu7v7sOBiE0kmLut8Escl7BV7FLFAUPUU0inkRMcpQ2IKisGibkYqhk0enXAYnOhmtJDV2NKpWwxJZnY8XLUxd1NQ24pzDJiWiXC+OGWLOYvHQh0AfRW/gnKfSkrWhcz5GSAmvFPuVZtaKXkkbIAa0CuyM1jhuligdWVcKR2LdlnR0kAxYTalVXvQVG6akLrSk1CYnPUoZnYpBkXRGMBEFUSDiMmqjohLaDjn96iBV9ZEM7avBxZBQyuKT9G15EpZEUJplLtTrVXaTkbUtCIA2aFo8gs7oKIPjxKSckmvw0eEP93F37lJc2CNFTTHaJJ3dw189wu0f0SXFY9/4TezPj1nbv8O1f/uTrL10jVG34M7/+MPcunGDmzeuc7c5ZlJqTo0r8JYbdMyNbJCn601GydIrRzPqMRRYIl1KnN9ao4iK63PP1Ac2rWY+GXHhve9m49VPUOyMCeN1EgYfxJmTYsAHh4pCt3S9ozs8JD1/heWHPo750CeYHB6wZlLWGikqW9K2PU3f4YIXoTKJwlgKU1BoS1VmKbMWbV4Pq1CyGAI+hry3JawRS7SxiqK2RO9RhSXoTBPYAu8jPgTJTtGaQpnsnNEEL6LshMYnz8I75qFDJc9OMeL8ZJMUpIph0c5xwcsgqofYArWyTidED+N9yFH9ch0ak/u1jCGkiDWDS9SjjVCiIecp2bJiNl/kioIg7hWNVGog16fR0ritY5JAQxUkJDH3LbkqER47Q6ctKvoMFwyifhkITN7IUXG1qUtpaJL+HqVWFLfMFooU9WpIAU9QQejSweb8/6WQSRmhlI8GEn6FpMQUQYf8vQ1DsndKQr+iNaSAjYng5fc3wUlGU4xUWigzGTxEm2IzVT5Q4OImHNBqZEoLAQionErfxyRJ8VpLmXDMz+NkoPpyHl/x3UMhBaISN4P40PPlZAQiVSFCUvjO8uLNFjVXrLvIpY01Lq6N0W3PWgMPbO5xPmjujD0vuSXXQ6BVGmsSuoXUSdnYej1il4L69oINrdhNcJHEK86fp7t0kaOm5fD4mDuHxyx7j60Vo6KkCoFtY5jv3+STP/c+9nf22HnsAR74o3+KR6JDTY9pr7/I9Sef5KOf+yxbd/eoO08/m6PrEVu7O+ycrinKko2NDda3dlk7s8P5vS3KqmYyWmeytcbdw32u3b5FH3t2trc5s71LZQvqesLWyKD8kr5TeBc4mk3ZPzjkcNZy7fY+HB1SH9xirYqSqNl0mK5np7IYU7DhPWtjS78z4QYNzomWwZYV1kdKL0K1xjkWTc8iQjA1yy6wN7Hsz6a46CWZNvqcG5IIytD6HpeS6EWS2EOVC2hlCDkG3RiZ3lWSBNcTfYNaDQeZXAaGTJac35M1EMIgnyAFw6kuxJgX38xXG40ba9oyB9mrJNCqKiiNJctM8ZmbLouSpOV5VVVgc3bPgOpIroXPdsQoSZ+9k0TOIHqnPsgpyruAD5Kb4UOk7WWBqYOgGCEmnB9i1xVHKnJTB/ZUiUmyoc9DxCyWBBWobUmlNL3z1GNLZQ1JGekrsUJvFYVlva4R7XSfrcwnNkU5CZ9w8ynHlId4Yn/V+USVQsToofcpa4UyZRC0gjhQR0LPGaVYxsA0QZcPhwb5r8vxfysqMCOpxmgQMwtjbUiS+U7SimK5xH/xWczLHiCaGm1HbL3sUZa/+RTHTz0Njz3G8d1Dbn7oIxTOwa/9JmnbUO6NaJ75AjcP9rkRllij2BvVNHXB9htexzd//e/jY//h/Xzi009zuqg5M6povccHT19U3F723A2B8xublMuGO76lxdOYQHriIfQTjxDHY7ZHW5IlomRwVjESVESFgF+2uIMj+PyLLD/ySfqPfILy9jVOFaVEJihYdo7RaIRLgUXf0Ae/usZN3oBKYylMKZt69Bhr8/NiRuq8XHc5pdUqLZuNMVRluTI0xBzt77zHaKF1yrLMrhwvNEvMG3kSlKwPnj5G5ilwHIVOurw1YVQIOFCqkkXX5M1VaKjhXgk5uK4w4kwakqL73mFMQdblE7zHWrNyXd170K6qCmtlTxBkVYLoQjQYU5A9U6LrIdIOepaYKx+yXsRaCHsF3eUdnM4i8iDXccy6HTL6kFRGXpB1KKl4zxojovMhGWolyF3dS2mFjgwoksrOPlKEIc5DnsGq2ygNDdQDiiNOu5VtPFPmMQqdqqLo1FSI4AKFV5TJUCYtBz+VsFoOXZLjlU0OMYdKKrVCxWI+3CUGgS+S/h51JpPuRcQzqv3fS9Py/28Pl3x2VQh8hspQXeYNbQIwTPcdt28uWZ877lsfcWZ9l1MXzrNZKQ4//FlGyXB5bDjVKkq7TrkxIZSJum/YO24Yu16stUlxePcANbUiHM1JoskYtC7YtpYxBbs72yxSZKktthqz7Hpm8yXqvktc/tpv4Nyo4Nb0mC8+/yLH0xm7Gxs88sjr+Jo3fRPWNdTLGdMXX+SFz32amTsk6MDW5iabtmY0GaO3Njjz8MOsPfoI440NNjZOcTidcfyZj1KMp5SqYrK2wWRjlwtnznH/hYtsr2/Sece8WbBYTpnPZxwdHbN/+w5XXnieiZ/zyMjgbh6w7iLRB0YofBC4+vykJp2t0esl3eGCwoxZTlvqcUkRAimAihq6yNbmBuNCcTRfYEvDYrbk9tEhySJUjIpy1knQpUjQRhxEuXSQwcY+KOO1WkHIwreqfErLmpYcmiVwZIZUB0MOOc8gw8FGDWWAX7rYDQ+tpXqhX7N0NeiQ6anKYqwgCiCvz2gNKorFzyS0gaI0FFW5SuKN0RH7npQ8kOR7GNG8NF4SRnUUyDU4jw8izCQkkg/0IQthgyJ40bm4mOiVUCetStwpYR4Va32itCUuaJRRGe1IOAUNAWukaDApRV3KcDW4MkZ1TfI9BkVlC9SyIxJQhV0l4a60YkmszzojYzGEvJCyOi0K9abRRgLeUswNFlqJWyvJhq2TpklwrCIuASoPmVn3opL8HrJjDc3BMrBZBTWGykigWJ8C2vX0Tz7F6K1vxBeaEMdcev3r+PS//FkWH/5NLIr9K9coP/c0x6HD1JYz7/nDHF29xjOf/hy3wxxlCzbXNtn82tfw2B/5VurHH6evah7YOcVv/LW/xWTZsXAa7ztsWXJlOedG73EJDo4OiZ3nupPEVn/mFGf/8O/HjdZZG08obA0pp0GToO1xywXx1j7dZ5/m7gd/neUnPkW8fYu9pNnaHDO2Gm0iB20LxlAqxaxpWLoeFyR1VlmDRVNaGawLa3MXjXQGxRxYFlPWSKW0cn9URZnRxAJbFBAkVLD3Xq6RmHLYW3lCbShF20pK+aqwMFN+fYocOUdIij1dc3G0zqis8N7QLOd5477HPiy3Eya7e7SRokutoe99DrSTvCdr8tcFEdAOVJVzbvW8tu1Fs4aRwVzlktN8PWot2UYnfVsyuCmVKLRUhQQbaB5eY7lToiN4LRENqy9YrTUCPwgimCRXSa+mCTRxde2uNC0ZcYETN9ww/IvIPAwAGFJZIBUlMfWQNCof1E/+fgMmafJ7ExFMUpDNlISaDSliU26vj5ByVY3RyOByDyKS0mAsYPVzhliI1SOJADfhs1OIlQ5uWAtWTt7429fa3+nxFT+0aE485MNZOo+AstBpQ+w1RzcOmCx6St9SMmJ+fZ/DpqberKnXN8AaxrZkq41sFCUPnNtGTTTx7i0Wn30BFTzr4zGmUMx8T4oSQe6TwJFogypKTFGDtsSywlaWSgV8VKTxOtX6GotmwbO//ItsPfgIlx59iO2tDUxZsDGesDWacPXaHdpgeNnLXsu5r/0GNq8+A8tDpjeu4q7fRh1N5SSyVhMWzf+Hvf96viXL8vuwzzaZeczPXn9vXVe2y7SZnh7TgwGGQwAkgYEAgZSCpKgIUZ6h0D+iF+pBT3pShCKkoEIhiAoCBEQAAxAYDMZ2T9vqru7y15ufPS4zt1l6WDvz/GrIUM9zkWeiprqu+Z1zMnPvvdZ3fQ3Hnz3m+MqazeOnfPzgAS+OnmNtYD6dslp1PDcrdqeJyat77M8OCClytliDq/DWElNH6pfcmjlm55nmZE04WbBetOxXlm5/xsuTNYcxwY05+d4ey25D32bq3Zrcb5geTDCLBSErPyVk0Q7UQJsiN5oJj588ZdmrFbmQwTiiqNQzYGhzVPv0rDb3HZCNI6MhgsbmLyyoXDobISFWs20GflO5/ere6R2qihTGED90oxBntwspK6LinZIXszGsGuVJOO/UZGviCUnv/XAwq+eJHr6N1w3SOj92qhbBZItQ4ZyQCtoiCXIcSKdGU2mDkuNCjISuV6QlCjFmaucIOSLR02dFXHTsknEZTkQ4tol9o3wgmyOz2RzjhOzg0FnarGnNja+JGBrfUHvls/iqwnlLn4WcE9OqKvPtitqoU/QQ1uaMw3pHigFiR0boipogWzApK/SOzsOHFFyxw1ivjO+yIYmlMQ5vIBZjrX4oJgtXaaAcekQROKMxBBj1R6qt0246poI+9cSPfk746HPc/Cv008TNN9/h+6/dwX33I9b/5X/BXjAcuUg2lqvvfINmss/Df/4PaDc93nsOv/o6v/G/+o/Z+9VfpnU7dLmGlLn1tW9y5zd/nUu//10OvCXFKe+fnfEyRna9ZYIqKJ71GxZEcFNmX/0mceeQ6qyjcT3kNQlL3Gzojk5YffqEs+9/n7M//FNWn32KOT1mZgLXdne4Pt1lYh2VhaPNhrO+5eqlQ1arDevYsclB14eg/ITa44wphNKk3KGCljhf0YaePiRCzuqZg0qjvbE6JvCFz+CUe+KsKsqMpSCdjtAHmrqm63oGB+eBr2ENBITT2LNKmip9czplr54SIqw2LX0WYi58B1cKYCNUrsHhyEELUkTVT94Z+hCQwhEbx65A4xuyZLUPUPgOKf8dQxxVZqaq6JNQSVb6gKTCNZORWxbLWIRkwFnaicG9c5feOY33KHuH0uhUvUhBckHvwRA2mb9wQOfxc3zh142imYhaOwzX0jh111UrD0WFUoaBELtFaVw57+KF4qn8y6C/PyI3al9gckmSj+hYEv2zDouzThWbpdgY5M7OWI0UKWiaKWaq6p+lzaCQy1heM5l0+fpCbqaYWf7FzvQvfdFi7NZ9U+tMdSoEvckCbLoVj48eEM8DaZOoc8/bh4f4uGY3OnavXSLWhpkx7GfLtd09ulvXiDPPyWbDZ4uWHVdxuLODbyb0AkEEg8LgJFVzmMoTG0fvyucyhmOp+GFteOSEJTDNkd0sPPv4A/Kjz1hlobYNd165x7e//Zv823/p3+Dw6hzrLT//+Od8+vlDXp6e8tHnD5nu7vPW6ze5d2nOXjNjvW7p2yXx+Ya+Am9X7O+qL0NVJYxN5P6czdkJVixRDNiKVRtYbFqy1ZHLToYrxvDKzozURj7NnodB+MTBeV2xqQ1fvbrDK1+9xcYn2icrKlORXMU6ZhabnhTUEyBYoetbkAmtZJXDrnueHx0X0z1deFpIlDRVqwZzm6gZH+rFUfoE3QtpnGMiljprEulAboOxYdHxhAwzYUaVgjHlBxYETpEXGbhyZbMdSLWAsaSpp507rIdprYohvGBdTU6iHiooCmNEpcFiErkcAGNIgDGkyqu6LWWM6Nw/Gy2cUkh0bQ9Z7c9TUvg+50wfIiEPzpqJziaSsXRokrAtcH0is7aW5zlyy1SQh1FTYkKm9jU3qoaQ05gFNFwvzXhRVMa6IkXOEW9rJlXN0OXBFhoeyLi+mJ55X+GlZhN7lu1Gu18zjJa24W9DsWKMdtApaKpRyhrGGGMu4i99lkiDbL0UmWVNO6P3yVOcffUW6mZbnil/cs7mX/8p0/s3SZM5s+ke9//u3+ThB/9nDjcrjLVMkiHuTrn7ja/z/j/4p+STY8LhjPf+3b/FV/7Dfw+5fINN1I8iRknUNZ43/+7v8Kff+wGTDpxJPOmWbEzilfkV5RNZ2JnvYfue3brmtXVL9//6+6Sna160gZ9Jx0nXcrI8ZXV2AudHyGZBlXr2gBvNlDt7exzWM2auJlvD4/UZR4szbly7zqbd0PY9XQgFiVK0RG36Dc6aInVNxFj8VaqKkBJdCISs4yRrLJU1TLxXR+Ra05tTUYCJCFVVEWMcDyoE6qqh6zpFsp2nSx2Dk3MXepYpcpIDvYVD57m7t4s1ypWylSX0cfRiMsaoL0ohbqakUufBtFCDSEv6sy+5cLaomKwbu349/E1B8dBxUtnfQuiUU+KU7GytIjoxi6rpJOteWJKecZbshfbVXeT1KySMju9ECyIlO5exD2abyDzwvQrie2GHYpj//HlkV8oeMTbcAz2mXOwSfTgKBmxBUoafqWqeC3JpKa7e6OdTlEUl1EjxKRM1oJRBOairvCiCCiG6oCymfHQjpVBDGTXlEyAYhqglBWKHz1buiineULIVP/yi15e+aImirrNZlPlcQl3Vf6BsntOZ4dVXL/OdP/kRz08CP3j0hArHfj3jzuXLvHr/DvdvXuGd23eoLl3h8rV9dq9fQiaJz37vmLzp2K1mTOuG7B0uM8pBsQbTOEzdIPt75N05uAliHKe15ePKczTxOGnwnaacnoYO7wzileA0MZbl8SM+/n//PV7943f49l/+Ld579x53b73F7Rs3+N7734V0wuePH/HHn7zP55ND3nn3bW6+9Qb7l69y9fIBL06e8fSHf0rftwSX2PQtOS24dLjP7tVXeHT0MatwlfPzcx6/fMFi3XG2Pid1LdXelIPqErI4Ips9vCROwjkn9ByftVza8Vz/+m3k2gGL4xNaDLP9A8zeAWfmBLM0pLagW0mok4EgnMc115tdzl4e0xZ41BlAjDL9ywIJOemSLd4mvYFACf6Srd/HMGceSV2FLCa5LO+ByW/V2yVIUd0I4wIfRkUjKaxAnikljCjDPXnHauZYzy31TA/lPgtRVHHgrMVVVtNtffFYKR1eLnN5rx9UN9+UdewTAjEEUk4su5Y29KRe0ZS+z4ReyXUhRELMdHHI8Yka4GYzOUUlxclWmZCtYVMZjoKwBia9okq18xzszni5WSE42qSHjysGXVC6N6uxBHkIzUMdLU0WWgn01lF7xkn1AGN7q74OIWcaLFjPBj04zLDRFgdWYCuXNLr54S0m5pJAbNHSbniNzIPx15LiapA11K4nUxslZqfSCZfTFtf18J3vw9feYfPtPaz3fOWv/JssvvNDzv/xf03VtThXc/ubX+Pljz4gfPQR9dfu8Tf/k/8581/5FgvT4KMv3e72c2USB2++xaX/0d/mj/4v/3fem85xlSHHzOP1gkntePfgJj968BkhZV5HuPm9HyL5RxxvFjzol3weNnTJYizUknFWuGwc13zDnWnDtfkue76hcoYokWeLNQ+Xp9w63Kc28KzrSCmqg2vOYzfcVBWVAe+VCFtZX7xUIlhLu9nQxUhISTmiAo3zTGzFZDLRZyDlYs5oR+6KoopbzknOcXzGlRujY5aI0OXMeQicp0jKmUvTmoPaq4ttSCzPFwVpTeUZcVijqiZQPkoIYRz19H1fCLhaoGhRsuXBGDQmJpR1RVbvKWdgMplgraUNLcYKOlVSCbExButNYRWYYlKqY2axhuVuZvJX7rPcr0hF4ajTnVzCHYeCRcZrM6qEtLTWp7g0CWNxdYHLotuPbK9v0c0ZMQz+3km7r+FPs/2rgkjQ/U80WkPH3W5bHAhljKqWDjYrZy6LriOfhCpBLcXx2WwjaLfLsDQc1vy3/fLISzJ4RHogg2nGps1K+Qc1NvyLvL70RQtikKQQJwXuHDpqvdmZ6CJOhPlp5OtrWEwsz23mZbvg2aMlf/rsIa7yzKqKq/uHvHPvTb7xrW/x7a+9xfnTlloMVJazriOEDlNVCJCMMrQxhurggJ333ibuH9CKBzsj7NXc8J5JiKxSZNWt6UMgdz3WOKIRQgw03lPXFU+fPefPTn7E5//iCdd/8AqXDq/w5jv3eO3u2/zV3V3Ojp5x8uIZTx9/ysuzz2k/azn74ZrpzgGXrl7h0uE19ud7NM5A6ElAvbfD5f1LNNZyvnjBi8Uxy/Upmy5wcnrE8sUR+xVM51N8P+Fss2Z6dY9fOfgKj58+5emzY169d8ida3tsVi0pV0RTcfmVO5y0mZ3ZPjvrgNl0dLmnMjUSW7pFZvewoeojp+fnkLIWBEYLE2c9cRjVoF0BokZNAaPcBtG8Go8hIsUojsIpGYywS6dhlPilP0tBVetcyc7JJKP3ayDnDnJDnNXiqHRPIevoqZ15ZGeCm1qMdbiQdIYuSQmsoh1QihEKodgNG6CvVdYdI9InRVhiIsZEytB1kdBnUhByVFLtJgRiiMRY/CuSPlspqflbVTkaZ5Go/rQ+aypyKt+/S/CEzKkYrlaWqdPO9tHZKS9zJFcOWevozZScmIFgDHnkBEkScrb4nKmsYZWFaLWNsqhJlDGGlCJilF9gRDNz1Osmka1QG4u3GpYHFGjf6aZv1EPH+RqxiZgSO6X4ENGCFWu2BEDkggQ0k1A5eEKYWB3n2ZH/NEQ3ROzLZ7T/5F/SXj8kvfYWu3t7/Nr/7n/NBzev8vy73+X6lTtMJzOe/It/ye2/8Wu8/r//X5Ku3WGVhJwNncm4rTkzIkJnM9InvvIbv8Xxv/oDHr//IdeqGTEb1jGyzh3nyxWLsOG1puLd+YSX7QkfdIHPNxuei4ZoTohcNZbrznDdNVyrKq41DYf1jNo3OF+zDj3HizOebZY0swkH9Zx207EJgTFSAYO3lVqvG0vli/EfFuudOjRbSx+DypvL2hDJKm8uzry1r4gpMqm9/u+Yxu88FA++8njvaDctQiZIpM8laVmEXiKbnFjEQCuwYx2vH16i9jXLxYpNCIQUiCkoB8QYjEnKjbIWbKLtNdSwakpUBAZnHLn4slhrlWfjfOFOQEw6pvLeqiLPW5yBrm/L3ykoogzOuxaL0+IL9ReZoLW1sYbNNNH9+g34+it0zil5FRghBQbUlm2hXPYiNa0UIOjJXuqH0blbFGW1BckQo8WSKmAHjk9BXbKOuwejVK3XB5M2RU5MgViEXPi6Sce4pbGh5CwZIzr6wVAsy7AJzeQbCkiKAtAMMudtvTR8xQJY694HiCuN2QU+oS1ZalYrpdJMDl7dv/j134GiJQEqexvY68bYMWV2eEiOni94uQrs9oZfz5aDvYaf3HN8p3I8ebIm9GtOW8PZ2YKPPn/EP/q93+dtX/G3reOKn/AvJBFiS2UyBwEu+4qJ89TGUgFNiqyPV1STK1Q3X2F2/z7337zPq5vA8WbBWiLdcsX5csHpaqEGYn3Pqt2w6Tq8d0yaCWeLc14eveTph09APH/2wTXu37nL22+9yTfe/Da/+sv7rFYv+OTTD/ij7/8xVIk+HLFaB65dv87L9ZplqLh18wa7ezWXd29w7/ob7M0qnh0/44OPn/H8+AUxdFzqer4yNZhNZBojZnePw/kBuzdf4ejpZyyXJ0hquHow43y15tlxRz27xGTvkIPbt/jODz6itzWvTCzhfM1g9mUQDnd3ODzc5+TDR4QUqY2lN8o6L3gHCbed5aIW7GIESXoQZxjh7yEq2IhuYqYseMzAbysdT+GI6TIu3c8wipEB1rzQ6TCOglU66NTtsa8MwVuy95haN0gfDSGhXVbZQI33pKzkYVf4N0kCtWsw4olGwdSUMzEkuj6y6RObTWTTZTZ9LHkxkRQiKUEu2Vmjr4M1VL7CF18MsTLOk3NKdIXE2+XMY7HcM44seugu4gqM4fLEwSoSRTvpNvSEnApykaiM1xm9MaQERgKVt5hQnGlFi87Bo8ZZh0hiYoq7qrPkoPejjWrvbrMiE5oabYgyFEoF6hYl6NbGsOccLvREtEgdYOiUGRNyh0NCFQtartZY/ACil/siRUVmckQ++An853MWv2Pp799nvneZr/5P/mPWv/M7PP7uD3n6n/193vjf/Pvc/bu/w8t6AklzcHymhGQWLhRGyc/rDTx4Rvu7v8erj455tlnwucBRH7k6nZJix1HcsGszX2kOOG4jP1ot+DxGOpu56gz3jeO6dVyzNVdtzXxSc9hMaJxT4zYMi/WKo+WKo7jBWeHe4WW6Tc+q68v4JuMp98J5teofORJQ+WpLYseM4xxV26RS7FiqusJVlhwDzlnNj4pDsrde7xBCOYig7zuNb0ioM2tBwjIQRdikyDJrQXtzOudKMwHjEFR9qQnEBeErJ6FI0ucjBUXMfVPM5wLWVmAohGJLjAEyJNFiyVhNmG6aphzu+hz0bYf3vhTYWWW+rpBVCz/HROV5aFq84LD0TWTzzUNm/4OvczqvoJC9v0A+HXaOsm/pZEr9mJQkC0b6EbPYDotsqRa2P8MMf0LK78NYiKhBptmijcaUERXlCg7IYubCDy3TGfMF35jhWRAEl6UEq6qIAPI27qEUK1rAFCTI2bHgG8a0IZX7KcWioqwRke13yKJ04lz+Gfg1v+j15S9aECiW3zDMDPUhSKWiNUE4e7Gij4ajLDxOgmt7vvrVr3L/L13lyeMjfvaTIz752XPOj3tSF/Ehca3r2fUN74vj7y9XtFPHbOrZx3ArRW6YiivWcVAlDk7P2DHPaTYW21nstTtMp5e4cWsX4zJJeiRblpsNJ8tz+r6n63uW6xXrrmW5WmGt5dnRS3784c85ak5ZbVoW3TO++5On/OjjH/OH37vPV998m2+88SqXb77FL892+PzzDwntKavlOZ9+/AmzpqaZTlksHiCuIaWNzojtXQ72bvCN197j0/ojHn3yIaenLzljzbyaUK089UlPFx13v/GbvP7OV3j26BOMDfQhsHjWc7xMHPhDrt+8Sz3f5zQ5unrGsQ8s3BkBiEZovOPqpSuENrI8XVEKbUUOy1w0pKiKV7Qx6SXRpjj0MWpdby0yuisWDxYpnUgWcLpIBs8UdUQ2I6GNskhHd0iG6YEgeVAebGfNauxUpJAp0oWAFe3ycnG+9JUfu6fKezKCzerQmUpUwMR5vHFkC9FaQurpuo62a1m2HeethuKtup62i5pkG1VCmhPEqEm7g0LDOTv6YgQJdJJosxK8+5gJokZtfUr8THreMjWHoiOA/XpK5VWG8ZJz1rFjD88m9Cy6DipP3ahpnhGNuOhFXUOd0Vl0zIlorHIfLpiAOSzGO0Vdso5pnfOEEGmTeiUZo1uWNRqylkna5xqVRkd0Bj83lmaE3ZXU6I0hlOKVQrD25X2tybgszIyjwpLEUKEImLOUUYFQr1Y0f/gdnq0WbL79bY5uXyN7T3z0iPx7f8JX/6N/l6u/81d5KZluFamcwdV6PXJO43PR9x39y2P6f/GH9P/sX7H/5DEH/YbKGZ6u18wnc6oYuTafEqrEnnMcpZ4frpcsTOZOXXPPea57xzVn2bMVu9VU1x6J2niStZyHlvP1hk0XWKdIIPHq1ZtUQViElnUKSvw3GQpK4qzFe09dVZo55E0JGFVVzWaz0ee9FMLOOioMs2aCd1Ylq8aOAYhVVY1F9jC+cM4RYo/3hr4PBcncHoiBTJcy5zmyNpEd47i3v0eNIYjmig3us8BYXFrrdS1bVcf48vxYqynCMfUYrwd3iAGgFFS5rMFGv+O6wzdufD4nkxmShXbTjqns+neyhpMO6cWoU2yPUNeG7uv77P2Pv8V6v6HK+hwO42RjDFLGkEPxvO2S9Kgf+SyyDUBUitYgax52IbP915/juVw02RvG4JhBRBy5yJcx5T23o1tVK+m4nTHUVcdaupqMqLmlMSUt29R4owMpf2EPHXKDRplzcRNOo6JTvbGGzz+Y8w3/7YqL8jZ76C92on/pi5aUAiIK4Q0noJFSw5YOmxQ5fbEmRsMJ8LkYjh18/d4cP8vcev0KN97Y51uLuzz//JQPf/icxUcnvHKcCR5+0m04aYQYA2eLwFPj+JCeubNcbWou24qrqxNuN56DuXDQzumePmbz84+ZXrnG3mzCpZ0p86nlYP8SN65c0YcNdaaMKdF3HSFEHjx5wt2br/DZ0yd89vgJ58sVMXScnZ7w8PFPefryAd//0QHT6YRrN69x5fCQq5dvcZPE5vyM0LdYb9nZbzCmZzqNrNNDfvjBMW/f/Rpv3Hmbuzfu8tn1O3z0wfv8/OP3ef/Zh/Sx42pbM1sZfvTHf4hMLUcvlxzsHbJqF7Rth8mJylpef/1tHh8vlAxZ13R4VpOGjV0zT0ISWJ+vePH4GaHXYMGB+T6EHTrndZ7sSvWey2w3K8wpYkZCrghESQVSZkRXKOqjJAY7oC9lwYybSnnphjOQcEuGhrNbnkvpSI3oHDmvO9abNXs7Dap0UsmnlKJrsPEeYFhvwLiMtU7h/SLhFjJJIrHvCH3PetOxWHas1i1dl4l9hgixDWqsJ5R5fR4VG75ST5U+ZdqQ2HSRLmaC7r+QwWfoMzzOic9N5o6xEBPTZCFbjuOGs5zYxMSeccSUWbQtpvZMTcWkT2RJdFE7wVh8OXJOishY9SXees4MgWiQiynZFEfTr4l5MXpfqLeKjgH0biiy4zwF6VH4eG4tE7M1QFMk5YILrilBkMgIMxtjikOyIeaMFVWXqC5kSPcGExfsf+/7LH/6MXLjCmYyIZ+cct1Z8mcvOP/TT8j3LtE3FaGCWVGLmSz0SQirlv7nn7H8e/+Q5sff42p/hkmQnOGyTHmnMTxKGWsrutgxrSuMMfy8XXKpdvx6PeeOWHariivVjB3j8bYuWVUZZyqSwOlmw8t2oWNEDNFlbs/3OKwajhcLNl1fEoOVROuHf6yl9n58dijjNO+8FhhZyngoKF8JQ1NVBd2twQi11WLcOl1HseQ4DeMhHbvoc5mSBnzGfjCTE/ocWaae49gjBq7VDdcnM+qqYRXUeXc7XNH/PxTKQ2qwiIoo1H9F0UlnCtcqF6RElLCtByKApe8jVdUoiiSZpnGkpNwwYxRZ0ZBCHRdbilO1aGJ1AmpvSbccs7/1Vc6vzklGdywt/QZUQ4aNpxSzmaGDMaUAkjIiUuNMdOaUpYyNlMNjiAxO3houOZQcpfDJQ3aUvpcrxfywRzGS0m35OZpvp+MywxbQMGVClbXYsiCSyCarwsw4nAEnilb6wTZCtBgTWwolGRRe26BERMaiflR0ZsF5LXCNdaomGu63lb9w1fKlL1oU/kvlWZKx8jeY4sgHIQVWi17D54xwljN5fwd3aYdEUlItnume5813b/LmV16h+85TZr/7c5bzCU8XibwGQsIlgZSIEc4iLLqOh9ay6xf8ZHFO/eIR00cPuPn8Ia8tHvPWe7/E9eu3eH46pW4qrh/scnl3RuU1P2dSe+aThv2pBqpd3t/ntTt3efDiGR8+/JxnL49YdR2L9ZonTx9ztlrQ9ktOX7zk0bOHgGMyabh14yqv3bnJ/v5VDvYP2J1OmTjL4U7DfNpQXZkxrSds+h6Rmis3vsLte+/wa+u/zh/+6e/x+9/9XfrnT7F1xeOffZ/Ur+lXZyyn1zhhwvzqIVdqx93b7/K1X/oNnv/+7zNpPH3KnIWO01lF5x0pJNoQePjx50j/RSleISWQs1E4VYSEbjQk9WYJktkgZCyx7HID72WELQtca8oGay6odbZV/eDnURYdZXspiz8VI6jRchuK7wMkMtUqsD5b4vZ38MYQQ6DvA02jPhU5Kg8kOw9ZgwM9XvkudZnD54R36pLrLcU4TohtJnaRvkvEqEoIdbcfyKuM3gbG6L4XUiZmYbEM9BFSVndZGcYYWTfflRje79a8N9GslC5E5UHUuoP0KWNqnUdv+oi0G5JkaqMGbeu+J6VEBVTeUlXqazFIwQdqrBYuWZ/jgedSlEoiaD8oBjtwQorsc0i4DWHgH+n1n0wsDbASiqJD75kvtvRDwWqFovzaKrDWKbDja3XMzWXEZ/TiRaOHqkk91dkR6fwIyZldU3Ewb7D/4B+y+N3fR15/lfhrX6f6pa8Sr1xCZpaMI5yes/zj79L/Z3+fg6ePcbIhZ68yYKOHyL6taG1HrGCDUaJrCHxjussrxnKzqtnxDZX1TF2Fy0DxIMEYljFztlmx7Fr6rARacmLHWm7s7bFer2lDHMfdtsD4ja9onFrug461NCMr4ytH6hOhj/SFfJvKoVdXXn14ymHWTCYaKGpUUabjIM2jGhoB50wxlAtbvyQgG0ObejqJnOeODYkZjlf3DplVDas2EIIWLKlwakwZuY08J1OSndG1PLyPM5a6bhCj6ekAMWW1FED/O6VY0p7jmLvVdz0mG+ra00ehzT02l6BOMZBEwy+9ozOqOE1NYvpbr7F6/RLJVHrQi6J6I1GSgiaMyMiA/A78nGEEksfoiWFUQ9HoaFEzCATKGi8jcB2P65+VEoI4oi552AEZ96whZwlRVCVlwYrd7nUMn1sbIClITzBQAy47tRGQYsRKIdHLYKipP8EaO1SbpWlJYwEyotYy7K0Uci4Y44qU2o77xl/k9aUvWkAv3DBbRFTzL0KR6QlxnegWATFKyFxiuHJjHzOvCAKVNSDq8WCspWpbJi9fsvPqDvVvv8lfbSyffnzEZz99wYsHZ7SLwbFUyH2mzZkuCMfnS9xijTk/4aPjR/zBz/+EvX98mes37/LK3dd55+33eOu1N7lz8w7WOZqqYreuuLK3o1kxWQPEmtkOd25PmO3u8fL0mKfPX/Li5TH7O3MWmxX9esNytWS9aVmvWzZdz5Nnz3l5dIxYw+58zjffe5e//K1f4dUbd5jVDc5IkUHqP6v1KauwZCVL7r59B7P3tzh68IyTJw/Jy2MuM+f54w4zvcTHnz3n8YcPeeP1N9i99QrN/D5feWvB/p/9iHW7pJtaFpcusXq2InYrKgGimiNR5tYMXUDQWWhCpawDaTAYYUOiNUal2cPBVTgY/Dm4Eu9L16Qbgcre/7xZlS6WYb7rrCPJhUj6nPF+K+fNZSzsMOxsYP9l4ORgxWSe1M/EWrUVt4PdtmByVG8Y8YhRLwz9VAUJ8J6mqQm+x7peiaYhkaKM7wva4SbZ8jIovy4ixAy5C2QRVn1QQzrcqGiIFP5O8Z14YhIPJPAuooTc0GOSMBXlxESnyhuJkdAWErEokTjnjMlCXVWEUvhby+iy6pxDsiGQCBLVUt7Apg8c9RtebJaIWHJWxKTs+PodjWY8qRJESKUAxUBlLDNjOJVMZRzJ6P13KLclqOayHNgWUkL9WoTeZHpU+YTToM3yABBzLMicko83fY+xlnpiwcGEDrN+zOZPHhL+5E9Y3bzFzje+xt63fxl37xX6P/kzzP/j77F//JQqRSSrPD+ZjK10TFHZxKu391mRWLWWl8/XvF7vcb2u2PcNc1PhHXjVN4IVvFOZ7bLtOV6v6WMAAzOnRXGIibuXryEtrDaaARYkaR6UU0+NYWwzFBEjWmhV2RajqkSilIgTYOIqpr4ucRiWqW/InYZjmpIvNIwkBjO5EFQ+HIpXijGu8GosKel48ixFjlKPNZbrdcPNnTld36uM3VrNzxqeb+eQmDCFsDmMH5zToiulNHK4Qgj4qtJ1ECPODjb/GVcM6ELoMNbQNDVNM6HvA5X39DHQdRtMQaEwxSMKV8aQ6tBsyHRvTvDfvsfKexqs2vAXJHVAbKU0XuO4+QJycNHdVobmrHDEVCOiETMiCeuL/HcwqUQbE0QZXbnseRfHRkPMgRZ2/833LXIG/e9hbyoNUMpDIz+gwspdqixUVpuEYfg0FI4DKfgLzeD4vceNXb+vKR5MImW8tLWdgMEfa3sdf9HrS1+05KxE3LLFl7m5DCgeAvRtImy0+nNiyd5weGeX6BIJi5NciEnKDahO1pjTNfbr9zm5NmVaw3uXXuGdb15jddLy4ONTPvnpC559tqBdRCRqd55S0c13QuzPYbVkffKCo5ef8NOP/oB/+a/3OTi4xt07r/PG6+/y3pvv8LU3v8I6bNR1EsNquUbEqTRRMnUz4d6du9y5doPTs1NW3ZrTo2O6HFi1G04XC9pNy2qzoY8RkUjoV/z8o49YrVtev/sGb9+7z83DPXZmM3LOdG2HxXNp5yrTasbp6RHHJ2d8dPyEVVxQ7TUcBUN1/RVeufMe/8nf+I/4P/yf/lM+OzpG3v8+1++8wnuv3+VgfpmjRYepGta7U052jrlxusKHwh8pI5pc2Pc5b8nSQRIhQyfCMgtLhBVCK/prZuikKaOXUuorx0OddLOMo2R9FkTUo8KYsSvFbEmaIzFx7BK28l3Qn5Wzel7sdoYbx8Lz50vCpcxs3pQ/C3VTKYkw6fgnJ+ULZMm4NjCNmco5KqfQcIqZrg+kogwKIRGSqoYGuaiAogOSS8ekyIxxhj6pO3HfRdqYScYSh/GRhbqyxAiyMdRZiFl4EALLnDg0nrry1I2l7jq6oh5JRggxsel0ROmAWa0IAkb1Fb4UX2QdRzir8tRABufo+8CiX3EeW1YpsRw8IqzC8GYMoCtj2oF0XbhDmUEhZHA5MzXqwWMLZWMklhbZsUYuWLKJ5ZbrgdylSIdyWnIuhezodlzkskZY58Q6RyrnCKGlDzWVOGoczhl8XtE//An94495/s/+KQc37rC7OCMeP4NiJilWcCRVv4Ws/CILyQaWuaeZ1tzCcWhq5pVj6mqa7LBDB+48xumBer5Ys+oD2eQy6tHCsI0d1w4PaaqaxaqjS4XMXST1lXMqu/cO6xzDACPHTD1psA66PpOIdDnSFflxbSy1MXgxVN7T1BWx7zE4qroePY2cc1roYum6HsmZGJRPomhOeYZi1uRqyZymwCYLM2O5vbePKwd309SsNi0x51LwGA21xI6duTUG7xxDUKByIzIh6ri172Nx83WFo6E/V0TFDNZZduY7pBxLodVgraFvN8Qsmo+UY2kQRJvDlHBZ37/bzez8m2+xOdwrniId2CFaII+Nl5S/O6BE29rhohS5oBFDszQe3apiLBuh/sHy99MwoqagFGyHTsM+Bdv3G6JHnBuKniEWg+LRMjz7hbQ7okCDH46WIq6YPZK36kEd5+qvD7w/LWBki0izJeSO57BI8UorDWBRM+k+XOwo/ntOy/AaKltLJiBixgpeX4Z2HYmtLhRLJlWe/VtzzYqRAWhUONskgSdn7Fy5THfvMhuLOpdaizjL7rUdvn5tj/d+5S7r48CTj4752c8e8ezROeszQZLGnUvOEIW2T3Rdi1n1mHrFevWS5y8/4Hs/+uf8w9kBlw9vcP/e27z9xnvcuXaby/v77MynnJ5vaPuE82q+tLszY29vj4Mrl7l96xVyTKz7NS+OX3B2vgQMi+WKHDtSVI+D2bRmuTjmRx8s+biesL+7z8H+Hnt7e9Te8uzlOS+Pj3j6fI1Nlhs7O6zrlk8ff87TkyNScnyygfefPeWtt+6R+oQ1a/70+3/Axw8/ws48e7uOZZtg/4DT64csnx8zC0k78OL7oCx4dA5qtHPuKSGJYugRupTpBAKGSCFxooVEbTQltnIOY7TTx9kyO5aiFMuMbPpy38UOHIxtthBl7SjRzIwbgXo1ZMYg9gz3zg0nn274wdmS48MZ9WwKkrG1Ydo0VMZgUdQkRqFPEWuFZrmmmlQ0zpNaHe0tFy3nq47T0zXLZUvbZ7rCedExtSjxWLQri1kwWW3vbZuJpaATZ/GVYb7j2L884+r1hms3Dvnk/SN++q+PqXOiEseDmHgcI3ebhkvTiqoyfOTOOUqR14rJXC+JvhRVs1TTZA9W1ILcOFxWqHlFYi6J3LdqABg6ujiMK2BN5KTvOE+ZbBJza7Apj7P1XCaESTuKMiZSmbQxyiOqEGbWaxFHVo7SnufGO4ckW/Hy8Yr2eE3uKlLsS4aTlJFXoLN2W/il7T21CMREZ4R1Vnm69xZBpbON1SIQLN7VGOuxKTHZnDF91CEWOhMUHTHKoZq6mom1JJ95GRI/Wq+5khq4fZNL9R47T37GrKqYuhkeUU6XseBUrh1C5Gy1UTmyESpv8cbTuJoQE7PKszubsli2rNqWlBVl887jDSX7SkeSxpbKPgu1r7DG0YeOKEIbAq0kuhTxItReVUZN5Zk0DVkiYjKTiebxWJwWIznivScFPbSbekIfupHPkkQLKLGZLgfOpeW074hiuVQ33N09VBm6d6w2G9rYaRo8+lkN2sknGUzNIKeAcYaUNak5p4j3NTGiBbmUJHGn6KVmFFkwnqpu2LQ9BmE6ndK2G02sdh5jLCEFjFEKgKDXSlLW4rFKhG9eIXz1Nm1pjnqzdcrWs8Uw5PjouW3H3DRjtMAGRRz0MJeBncIgHhjGNIj6qigxVxOqjTOaD3QBRUmiRHSG53wYMYlBSkjh6NKbEyMKc2F8pf8eChudQOSUqKKMpForhsp53NCkZEbeoSmVkDZ6W/Qm5kw0ijbmjPpblWR4bXi08MwFptVy3YyKr1/0+tIXLQOcqFCcQnBGVArqXEl83kRslOK2CdW8ZufyXC2/fQntI+PFsLcIsOyQ12+zmFv60tWl4VEsbGnjDfNrDV+5eotXf/Uam/M1jz865pOfHvHkyYJ+0SO90Iq6t0oUCJbNpsU1Bl+v6VfnLM6e8emDH/Gv/uC/YGd6iatXb/HWG+/yyrW77DR7zJo5ly/t0G8yHzx+xrWDA2prYOKZzya8fe81lptWP2EKhK6nD5leVK/f+Jr93ZqqgtW65+HzR2wePKCZ1rja0sYN56Fl2WYkzTmsK+Y3ZtyePufp+QnH6xMevnjBul8xrabszy7RZ08ynt29CSFdJR6fs4o9iytXOTp4zqXNKbbIuYxVKH948I3Z5ub0ojJJJcjqAjWihC+FtHXxu7KorBg1SHKqSqHM9yGNnYIxxTFyCGOUPMLj2VCMB7TDz0a+ULTYUjSYMnXe7eHrS0+XO763esmT/QnVdIpNPQ7LfDalqR05BGrntBDre0jKATAipBBZth3dJrLuMs/POpbrRBu1Q8Wpw6wxmvab0uCPoaNMyYZkM/PacvnSlPm1imu3D7hyc4+dy7vsXNphOm2YXn7OT//sCFlBR+SZGD7NiV82hh3nuTqdcm26ocs9yVuSgVbS2PQtQse09sywaotlBnlq5tHZGavNkh1f472ncg4qzWlJEboeknHgCmfA5HItS79o1X9HzDAs0jGo0lk0nLNKsGtVtZK9Z++1hnf/xn3u/sp97GRK2mQ2j1a8+N4jHv0XP8W3mvAdrKG3wjoHtIHZomw6xlP0bZMinSR1KxbQqMtEzJYkEc1PkbGYdUXKHgs6ZAUqYGcypa5q1r3w6fqUP1udspgbbkwrbAzkboGzHk+NFQ2Vq+oKazTIct31rNYtkkRHjsZSeYOzHsESQ8fly4es1q36mlz4DEbU9M9btz1UJCMknK+ovWGdOrKF1Vr/bihmhLV1ZSTgt2PWmHDDeFQKAiFC5Ss1jTOCdZ429hiLegiVhiwDfU5sUuSs7+kFdo3l1b19dqqaKBDL5xer6MrwTAyBfs7akoGjAaIx6Z5ljcdWFSkmUiqGjoPKCUdISdPMJat6rTQljbOsVivlrBHoYsC6bQxEKoiVGrIAFZjLjvlff4duNhkbq+GwL1My3S9kG9w5Ih/jSEX/uSiLvoiKXOS8ZEELpgvjPC0ghvdWVMIYt/31EdKRQgu8OKZh+7MujJS2aicKmV25b1YGA1BwMReemhnJwBc5ftbaYpoJW5PPLb4iSenHkpUKsM2BEwYpNcMIWIQSrPMLX1/6okXh/wI7DlWhZKwYTX41ma74X/gyF985nFHvVCq3lIF4lPHR0LxcEw7mnN2a0drB98WMD08aHw49/xJgvGPv0py9Sw1v/NJN1scbHn3wgsc/e8mLozWLNtIZQwqZmLQrT73QrhPGd/jGUjeefnPO6fIxP/v0z6jchL2dy9y68Qa3b93m1vVXuHxwGUzglUtXOD86prKXOYoB08y4fvUGjdHN11mPyYyzyaayTBpH17WcrVuOzxf0oed8teb0xTmfPH7G0dFzDInawd3ZjFerS7xWO573pzxol5zYhmW/4rQ/5ej0Qz57vMfO7Bp3bn2Fv/Pbf5XTx894/PHHnNy7wfrkjP2lQbM9CgKSy+iukLaCiMpZzUBOA28tKQ3mS0Yl64AdoMeSy4FRb4eLi2BYwMM8ePBoyZRO36pUzw4YpRkWonYQ+cJiHBwkk4V5zPzmsuFyB/+yXfJouiKU0LjT8w3OWdzEYrxQG4fJhhxV0t2HnrbrCCETNol1mzhpA21U1CcbHW/aYqwXk5T9VGgM7NeGa3sTbt7Y5ea9Q2av7sGtXerdOTgHzpRiDa6/dpnLt2ecf7BCgBbhk9CxtoZZ6Hm0Duy5ikXXUaEBiZ3psKIkx/NemFeeqq6ZOB3HZAN7zYSrUTCVYZUC6y7QS0s2MLeWXV+xO62oArg+kjA4USIhUjouxksOZQQ35KOMsHYS5rVw7d6Ue799j/u/co/q8oxk1VjQzR0Hb+3i/BU+/Uceu4nj/e3JrHMxWjOWPNz/nLFGMGLYZA0VrJ0WZUpMFPqYCgqkRU/KGesslfU4Ua7Nfj0pSJ/BOstp3PDjsxP+KKz5ym9e43/4m1+DXcPepR2OPnnOi/Vzjh8tuJF2NBMH0aDS2NKHhPVOCc7GUHvH1FpcXXOyWLI3nxJTZN32dKGQ1Itxpi228R4dkW7dRj2Vb4gpgxW6LpBESe1ZMrU1avFfrP4HObfzHmuVZO6rhhB1/whRR5i2Uk+CECPWaYctiBLWrdoUbHJihZCs4ZJvuL23r07KfdCxYBlrwfbgcwUVu3gAhtgzGA72vXJjBEpaMwWBhJjjKF+WnLHWYyuPMdCHnspXzGYzNus1uW91Y7AXmhLKSFiE6DLmN+6S7u/TW4dI3GaK5YtjZNnGGAx7RCH5m7HI2TZeQFHob4uN7T41HOKFhTIUNLIdKVnjvkBxuDjOvkjOHYqUoRi8iLCYQp5V196ERE2SJwl0iSpkarFF6lyQoYvjG+3exgLtAoBdSPiKfjGeMzJyx6wttJqLYzOzvRq/6PWlL1rEWIV3s/pr6CBczaEMaYzKnhqLIRPwHNycIlODkYhNGWMylRH2jiLyfIl54xKxEbLohmnJVHl46GVM+Y1s+RC9KEHN1jDbq7n32gE3Ks/552ecPl5ytIqcNnBKZJMjMZZcnJBJUViv1TPENxnbeKgjR905R8ef8cMf18yafW7cuMOdO6/x9Te/yt2br/Dzzz7Hes905xK2mXOwM8WkxKyCS7v7TKoK56B2xTF0ssvhbub63oaI8PGThzw7eoHB0dQzNusFP/3kId8/O+MuibfnNbd35twwjqPVEcfBclLVnPietT1juT7nRx99xvn5I25dvsubv/Et7v3mXyIe/i4vv/9jmqOX+LZTSBRLlyPBuCLpA1MCC721TCQTU1ZumgDGY416Chij5ke1tYxwmVjlOojCzTnpYhEzdPCUmbK+BidcW7oc48pmlqWE+g2ZqMPhWjI1oqXC8E6YcjU3/DS0fMe2PKgTrTfElOnPEg6Dd7onJDFIFC1cUlTpc4BNGwkpj2iSynKVD+VzZs9brjrH/WrCq/OG13Zm7N/ewdxrWN3a5fzanPV8QijzFQOQtVPb22t455eu8Yc//xyXE0YMpzHSp4T3FeehUzM+CeQMtaloCwSdSOQknIaMNwlnHK4k+xqbeRE21HaCS8Jx37HMQjSW2sNBityqGmpjaDz0qcQqSC4ZTKUwK9/XkYv3iprNDXyezgh3vnWTG//BO3RXZ2RrSOgYxBW1UDR6XYVEZ5TMrRNBQ8xmvC5RYkmIzlgRsJaIw5IgR4z1eBxOlKMzqJOyFR05ZC0crbVUtWWncAeMWFZty8+WZ/zR+pQ3/trr/I3/8Bu8eLjkZz94wNf/rV/hld/+Va7c2OH7/9ffY/p5yz6WLgtd6IhGNIDSKfVxUjka7zBRx6PWQFNNOdks6VIkFmt2shp/ee/wXkMNdfSa1JyvcsXN1RI26v+UUiAUp0LrLNaB8QZTaYNk0aTgGCPOeVJQpVtd14pQVIaq8nTrDbXVXKzRDhUlUi9j4jQETkXzlu4d7DKtPKu2I/aRKEmJ0EIZr6BoaNZUYZE02sNba0r0hWArRyp8lnG0a9R3KwuQAxKzujE7oe9bEGHqKnbmcwDqZgbrriAYqSwWp2nNIlgR8p5l8u37nHk/2iFsk5aHQkELtZxkRGL117fjyWEYZLFjMzSguQXHImNh2PsujqQpyIvV1TEGTw5ny1j3WIwpO1R5zkdvqTxw9XRB6Ahdx1WueCWREzkkTGtwG0u11rPHZ0eNVX6LQAlfG/lHmG36dEYdw7frLmnCO2owZynFNU6b5rIfq3XB1qPnF72+9EWLxnqrckSraCkKETsypi0UC3lIXji8vUu0gTQkBwOTlTD77IRub0K7V9NJIjIQkBg7t2Fm+AXN+vgqKZ4F3nfWsgPMeuHSWSKLZzmpeV5bFlM4S5HzpOMSk8BmR14n+mVH7xzNtKGaQdNkrDnn4ePv8dlnP+AP/uD/y/6lq9y5dZ/X7rzJ7Vv3Wa5PuX79FtYKs0nF9XbNvJ5wZW+fw/mskLHUdn13ZxcR4bXrr1AZx9zP+eTxQxbdLreu3uDTB5/y6ccf8/nROYcvT3jFW+7v1Ly3c8jVq/s8TWs+evaCoz5y2girkx/y08UPeP/T3+fW5Td597d/jff+zr+L/egzzv/ZPyS9/wGcRaoUVetj1Y8hFjjam8wUi3HgsnaGQSCIHY3HptYUy+mymMo1Vhh32GAGN8Yyf2ULeQ/d0kAoxWwzisaXUXlfzmVUVTZaKc/PzZXlspnw3mzCDwj8MKx5YDLPU2SNYLPQx6yFS1Z5Zs7queES+JQLSU1oxFIDc2+5UU14rZnyauV5zc25nhwzsUycYzmb8Hw2ZT1t6GtPNIxOl8PjpzHwmde/fps//a8+w5wogtTmxCL3dG3CWCGazDol2hzBqreGFJIqZJZ9R0NiVpRSlTHUJnMiPbk1vNrU3JpaToLweRc4CpZjn1nnzI26ASxZNFnXusInEdFsMDP4rhiwlpBFDfgKpyeL0OxOSVd3yT6VFm+wKR9vDzEO7sOqftkWpoY+J7Al9LEUqSlnHbGhqrDKWh2xGJ3l2ywY70uDotlP1qn5nbeW2qgHTTaGVd/zwWLDv9ysOX1lxl/6W+/y+MVLJpf3+Dd+5zf50x/+hIPrr9Lcu8n1v/wmJ3/vQ/Iy00iNcTB1NTNfU2GZWI/3lkwkeVgtztjd2WWzUR6L+proN/NWg/+cc3jvi+mfHlrOWGrntVBBVGWUIn0MSM6jl0vlPLV17M136NoWW9VFsl6Rs37vqqroug5TgglVQlwCFEV9UmJSb51NiqwNvMw9gcStquHGzpwYNmp6N63o1oGEjmGH82pYbVpLKopiCwoSg5I+jXXY0VRSx8MpDqpD5dl4p1yJqhQIzjmcc6xWK+qmQYwjW8H6AeU1pUA2JGcIksi1h3mtqE/xh9oS87ckV4bYkIyOTfMQTfHF/f8LqqJxPFJ+L8uI+HxhdJS3SIruXWVvY/uzhrGMQdSVuiApqTyrKhcfZ1alSMpl9CSYnKGPuD5i1i3VJuFK0WLZGuJtx0sXFEpf4MdsfykVH5ecFKUeQ2sHs04uIk3le8XR/+D/7+tLX7SklHDFWIpSmRpKIJ8BseouatFxhFSwe21KJoBYXBaqJMweLSEkutu7rL0ujMq4UX+u7rp6MA3GVwxz+xHGKxhmTheISx6XHJPOYYOwsxL2naGfQjiYc3pgOJHAeR9ZRsMmaikrWeg3HZt1wDrLZDLBT2sqD50seP7sjKOXn/HBh3/C/s4+N67f487dt3j1/ld469U3mVQ1MWbqqsYbw+6kGX0XQL/T7s4ut61lZ3efGzdv8smDR7TrBQe7Fdeu7PLx5w95cfyChyfHfLxK3Ms1b7444WZT85XZNZ4vzjn2cNw5nj4/Zj57SewW/PDRd/iou8Gt2V1u/NK3ufTbf52zn7/P8T//p8ijJ6q0MeU6GkGcYJLgRdix0IsQrSFkQxLYsZapgM+DIXSBRovyZJw7FObR0N9IWXyG4ntiKMqSixDrcDn0JmrnMhiYDW6X+vOjBSOZy73lNyZXeO3KAZ9W8HD9nJPlC87bBW3qCSnToSOPynga49l1hl2vXidzV3HJNuxYw7yCQ2qumoZZMDS9Kc+bQuShMrS12uQn7NgBDcqo8guIgcPbu1y9t8fxyTlCpiOzJNEbi4vC1Dv1TsmGmXVMrMNile9DLkoT6JJKWx2GqUBjHZ+ESBOFV3zFFeeQ2vIs9DwOHWtXcRaFq9ax6woJt9h7a+zCIJ9EceNMCapTH4xcsPJwsqbJsCr8AXuhMBu+72holQe1AsX92Iyp4A6jOTtGM64ymio+FCwVtvxvTTnO48GQRz8QU4paD1TOc973/HSx5L/cnPJR3fMf/tvvcOXKjGNzi7CO/ODHH/HmN96lOtgnvnjOjW+9xuqjFekPTzBRN/PGeRrnmbq6FHJqg3dyekpdN+SQWG3WhFQycVBTPYRR4jxA9s7o6GpS1UhSQmY3FCxJBbtW9Ds3vqbxnmkzIXY9A48iRfVJgjwGK9rRdC1hvSKhuahLUnGZDhJoSZzFwEIyjbG8tXvIIRVYTzCO8/WqSPHL8tneyPHemrJXi0BOqGU/kEZbAX3OQ0jFPNSSU0RcGffGDNnhnSaKd23LbDZHsrDsF4hTNE6Q4hWi45wKo27OfaLqim+M2Y56LnJE9C+lC4f3hZGRuXiYf2G2oijSBWTBlmL64sjkIqKjZo3b/32xWNcRe1FOlfc0Fz6H/rCCYwhgrPJKRHfDlBIuJFzXY9ctZtFhlgGfCoeweElt84bsln9k7Ci/VqVjuaM6GRol9Rel0QM3ZijihjNyGL39oteXvmjRua6yjcRYnbVZSE5v/mD85cqhNdt17B7uoKNi7XrrTUKOFoSbB5xMDVGkEPa08ld+lT4Iusy1CzelSwSgGE1ZKKmghiRJ9S1WZbvO6IM3zzCPgkTLLTujOWwIOxUvcubx6RknizUnm551Etqgh2/fJ/r1SmXE3mJrTRoWOjDnrB/8hAePP+S73/09rl66ydff/Sa/9NVvYd74CvWkxiRPJZFMYb1H6JL+93w64/bNG0znc9rQQg58+NmH1PM9Lr14ycvjI9rlggepZWMyG3HstQtiv8H0ELpELRVVnjJLlj0TSevPkYcf8/BfBf7JqmJ95Rpvf/WXuPTmG8jz56w//Zy8ONPrI4KVzEQsYj3eqKIrWd26Z1bToY2zDDmkQ7pxFBk5SYPRHOZi9pQiLzYbTMxqPe4UitfQMiXc5az3XKXEQs5RN1TDGHc/eMZYMfhkaKTh0mTKfLrPZHqT2ekLmnyCkUBEJYUT46iGT13kuFbK98gG0ytPisLDiIDL4CqPm1TEiSVXQq4FnG6e6lRK4WKAMfq5JtOGV792hYc/XlP3LRGDGM+kqkkhqmutMwSExlYgCQt4SmgkiZS1sMkms46RZBIzpxyFz4Pikret4WrtmThLCvAgBj7LiXNXc8sIhxiaogqbaFmBN5aUdYNTh2QdE+h4JmEkw3mL7zLOKxlRkkqNtLnU9UW5Z2ISgaQpuMaW9QfRZIx4pNzLJANPQL0kLFIyloYeR4tTtbJXt1ApYyzjBJxl0Xd8cLbkX6/O+F7e8M23D/n2r7+OtTWf/PQR/Vnk0qU9srvE6vyYmSTYbbj29lU2Pz5CTjLe1QwuvWIhiRYsi3WLWE/jpxwvF6yCqnOySepYaj3eGGpf4SpPNqm4Q8NO1YARzXSyHrKiIrGkdTfG0liVXddVQ+VrUh80tTwMJnGM3idQRkxdixEIoR2LxWCGhHQN51ykwFG/IhnhdjXl9nwPX1V0SVitF+X7aZGja0fXm8PiSlJ7ztroaUMhI+lWD0hFWHKJ6/CVEoFtBqwdU+IjgqRS5Piatg+kGOmkRVxZ+7Y4TBttNNV01OHW0Jxn8pVItvqzlcj/xUPXFTQ+XzicVYl4sSz5ouzZJgZiC4jB2HJmjFwZKSaJBuXmGVIaCiH9eRc/A+X6qyX/IKXeoisDwm/KtRzyspCsnkYhQBupVsJkJfjeYJNBTDGKE/1MSvIePoQZ32Nw3k2SEKvWDUkiYlNBVAuyksGUeIcMZFdmGcKInP2i15e+aBnhM0Tzaih8FqPjIERwFZgKpIOdq1OqHSV/eik3+2xNnlScXpuOleKg6XeiQXLWafcyqgkM+q4XHkLY/stai3euNJZqYiYJDZAyYJ3KHGvjmdops2aX+zs13LjBpu94tDrn06MjnpwvebGKtBhCp4s5RSHFQLaJtOqJqw3VpMJPG9bVkvX6Jc+ff8zv/et/wuGlW7z5xnv88td/lW9+9Rtcv3xZmQIh0nYdbddxFnqcq3B+xrSZMLVwv434XDPzM+pqQrym+bpHzx7ykcl87d5NwqOPOTCOnRfndGvhrE+4ZsLZzg7Zzujqjo4jNi9PWT1/zh99/B3m1Lxy9zWu/dZfwbQrzj/8mM3T57hOnVgN6rTpjdpKx5SYGU9TiIRjFZ+lkGxLpW/dyIQfNj4p90FyojAgdLosmkSqEPsAaeoit9aSClKWs6p7FDk2mpOidTASIzYmvBgihpqKnThh1jf4oCRJj8FJqY6MYG01bsI5ybawMhTZY0JKZgmVITaGVEGqIbpEtrrBDEZhGTNyApIBWzlee/cWf7zzCflEWAo8ST2mqcihJ9UVk02NiTpmU/UGVEbTl53ZdvarTYdJmeRg1zdYm1lI5pOwoasUVWnqxEESlsbwTDIP+44T57nn4K6z2s1uQ8GUL1KQy8pCKItFkRhDWLVUbUR2ChHRlc20nAZRMuIt2ZVRZzYamChOFVgFFchWC5vKFCWGKPbmsiB6to/jH5t1xKguzQ5XenNvDBWGGBMfbJb8/vqUP+s37Fyd8m//1uvs7cwRB7fvHjKvHDm2/Kv/6p/wW3/tl9mZQ/YNs+uHrPYm2GPBix+71RB6jIFNzqxTz3w+42y5YtP1KvcX5RV56/HGqvOtr7VoyIrm1pVm7vQ54SvPatPRBU1yFpFiBuiYNA2Vr9TwyxiqSpVBwzhl2D8Hg7eu6zAofybGOHImSEpS6GMipMx5iCwlUyPc2ztgr5kQDKz6Ti0n4taKfgQshC+oytSoMOpIL6sowllXuC2mGDmqH806tMWrpdgCoAVPpAcq+gDeKDnbeINJSjhOoh5HBsrP3Y6AXC9UZy1Oan22BhiLwdn24kGjh65xBRkSRQe3biXbQmc4QwaG3OAaS7HFL5jEF76HXisuvO+WS7L9ALqDyVAgDfy+C+fOFwm5WW0cYsb1iWodmawS1SphW+XhDfli+vkLCfkC2jQgY8Nb6HfXa3ERSTHYMUZgQMh0n87ksmflgdf0C15f+qJFCgQ2xGln0dFQ7VSuRTbI1GG9FjJ7N/aRqeasBGOYJKjPWvLhjHVji6pD/64eCIHhUcugh1iZL47Of7KF8wbzI9BFWVmDrSqsixirXhUJAeeY+pqqarB1jfEKyVlr2N+t2Z1Pee3SZc66lmfnK54uFnx+fs7LVccyZGLW0Zh10IXMpm2x5yuqZkJd10yqwKRasD5/zpPHP+H3/+AfMZvf4P69t/iVX/41vvXe1zjc2UNSZrNe0cXEi6MTUsrsTics1gtWfU81m5PF0HYdKUWqeodNTmwmOywrw9N1T2fhUuW4lQ3ufMXxYsVyZ0bzyl3u/Npf5k3X8OCnP+L8Zx+y/OQBpw9+zNlHP+bK1RtcevU1rv7Wr7J6/IizP/4R/XKDiVmtzo3Cug5DYwpaUQ56a8zIY0ro6M6Ykv9RFlIu5C/1QNGiJJGoTK0djhT0TKQUKzLmIJlhpi1DanAZOQ2LNGcqSfikYwqXwSbNCXFDIVuQII8WB2SjhLSYsX6Aiy9sdlyY+XtD3xhSZQjOk1xDFk82W7XcsDmp1FA30St3Drn59iUe/tFTUjYso2BtjXWZF7EnGNikSFWIzTnqtayswxjlmRgsMQNJR2W1rVmkBSunJMYnacVN8dzCs19PuOMy+zmxwtLnHisZmwditMp0B/mmx2IKqdHaQVUCUQx+1WMXLenKdAt1F4RFPVdUuuvLf/fDLSr3yaAdbZBEZR0NWshYoYySVMkSsmB9DSkXM72MdwZJBocHgmYdGcOny1O+vzjlowRLW/Nb37zOu197RflXJjLfJB5/csbrv/IO3/ztXeb7BhMEEUs7n/PB+Yq37JRkAhXVSCxNtWHTbai8BhquQqekbfpS1DVFpmz8214DAACk50lEQVSpnVNn4GIoZkW9WgSwtaftejZ9RxtDUQwJNZrpU1VV2Zf0WqukXqjqegxHDCHQNA1d1wFQVRVt22IKr0W5MYY+Z0JRCx3nQMZwtWm4t7OHjZl+UmObCZvlaswkSklQfxHZzmLZFi/2wkHvfQWin7GqaiDhnKPtO9S7xxZUUrt6JeE7jHOavYOlnk5Yx55uE5juzAl9P0pxFY2IY05ZnTL1eacIS+HQmIKqcOFz5RK+CeqCrhWwKT9vO0Ya0KoUc3G8+fOvUsiMB7pFGatFii3bPzcUIyMCNjTGZjCfU9RllDjzRd7JOP4WtGjpEr5NuI0gbdK8IWNwGB0Zj433tkkwhUg/uJBrDaP7JtgL77dFfYb3tQNCCuN1tO4vVo586YuWbJMaFw3SK9THIxtNAnbGYieOpjace8ulW7tEAxj1hzDnLbLpybcPSVZGRA/0Z6iXR3lAShE8oGexdO+6aQoYhdaSEVxlsB6oMr5CUReU+JQsSFVjGo+pnEqxKRbTRhODFQWt2a8rZodTXtk95N0bkeP1mmdnZzxYrHiyaVlH7UatVQ8Tup5209OirqwHB/tMd9UnY7M54+mLn/BH3/0HTOtL3Lj1Ou9+9Vt8/SvvcrA7weSe9dk550eRtus53SxYdxuyMdSTCVcPDjk7esGj58/4/mfPee/qXeaLI152HR89f8GLVPPV3TnvGHj64pzHL8/50cMTrr32Jvff/RaH3/4t2hcv+PBHP+ToRz/BnJ7z6IffZfXZlJ1fvcPkP/hlrj/rOPvux+QnJ7gClVegowSnYyI9Vs1WvixK9lOPJw1Z225sGshnkkPl4MVESQaEwqlplZQAwKxs+1zcMiVq4GMmj6iaN5YkCaKqz8RoIxrQtFsjyuVIWf1jxBSkRmQMNNNlr93NwKCBwtMwgDP0U0PbOFpviY4SAW9GAuPgOTN0hwahmlre+tVrPPrOc+iFTYiEnLHOYcVykltWZpdLxjMzlqURKmOIJukmZsrcxJYQQmeZWcsyC08kE8USIjy1iQchcssnrljLnvfsisHZhiZbXOqxKUHxm9Bbs/XowBgqnJKKMXgnSDSEZYeXmiS2FGi69Vm0MFRSqRBLUZqs0xFB1nGLKytJTMYmvcYYqNA1MqgbUkq0JhCNjsLEanyEKeM8nOPBesOPl2se9YFzV1HNPX/9r77LZDrBGEttKvb2EyfhgN//x/+Sb3/7HZo8Q5zFilDvzujFIASSeBQHVu7NJmUieg3O2yVd3ysx2mhkgrdmdLzVenkwT4xMmxo3kNljpu0CXYjEFAuCLDTOMa8rfHGInrhKkbOcqaqKvu/VKTgpsXmz2SjS6T1t6Mu0YKumyUbdm4NNrNolZzHiDbyxc8DUV5o4vuroYq9oprGYwm3C6n23Zrt3qjmcK86zjCMOw9aRdxij6S2sSFkjBnIpZFNKxdrBK2l6MlXiddIGJfYBP+wFw6iFksNDhiiwXONFcEmvp0gqo/9yKBdjzIFoOnQWQ8Gi2482rcZc4HTkjEgqSKpXJDSrHo6CAA0oS8pR9290RJxN2StkKEZMGSMlxG0LBX17/UCDF4sIJFMcewV18A2RHBO2C9AHqkAJGnWYwcRfyloZJk4D6gK6tmRwM1dptpZZfgCRVf1UChb1ydJPNrALsaYQhn/x60tftChRSFMqB0Z9NlqJDhWiqQzTiaeqIwdXd3XzykoRcI9PaXzFslH3VIX89IFScpg+jQOyMkCp6v631cmbsjikzFzFGXJlMVOPn9VM6gAdkISq9piqwjQ1eI2Ex6uKQ3IEo/K3mIoMWBTOnrmKnb1D7u8e8i1JnLQrnp+d8mC14cWqZ7GJ9INaJikC8fLkDHdyjncVk/mU2V7D/oGjap7y7OFTfv6Df8V/bubceOUV3n3vG7z12mvsTHeQJPiUScs1bddyttlwcrxg2tQEPJsu8ocPz2hs4uZsylUqDjCwDuzfPKQ5OkNWG9brZ/SPnvJ43rC8+wq7t29x/+u/xL1f/VVMu+Lk44958NlPeHT2EceTitn1S7z277/N4Scdi3/9U+rni7E4GfYNna+6Cx2BGefzg5pEYOSiDLP14qpTGpmxp9KiQbQoyUmzidRau3i7iBndJw1DuiyYlDE5YZySrqX8XNADXzcTGTknldXPbOygzBikqiCmSCaHLqyyhBpS44he1TfKqdGtbTCqyoKmsZqyeRh4453r/OyVn2E+SYj0nNrM3pVLNPsVPHzCetlyzTdMvGNdFCYq+9eu3lunfiAl5beuLcE5TpKGImIMaxGei+GzPrJvLHsWdr1lZjLXjOWetUzFqrtuGQvkmLR4c45UQteGIjKLhkfm817HtpQZOYNXj94pWyIcbFkTRmSMczCoyssai03QUJoIdFySiOPGGskEyYUTMxxogs0aNni8bvnwfMXn3ZrgHH1K3Hn1BvdfvYFzvf5cSdS7M25WO9y+9A47OzVBzOhL4msPVUXMQc0lKwPWETEslytmsxmL9ZpNVLVPRvDWU5fcHVdycZKAdQ0Si6utlrvELPQhauRHjMVhGBrnmFYVjauwWCpf6dilBCoOhEhrLW3bUlUV3ntFUwXlVqAGnaZ0zBGIzrAMkWepJRnhVjXl9t4hlfcYcYTNOVKOs5hSMZhUhd7oZ+KG8QEFydGRjzXqnl1XFTFq+CG2RHYYkKR8NGstkqLymopdgUH3O2O1CPNW/WcuGrgB+jnG4kI3CXfWUgXYGIMxAxFXdCMvz9zgJ3TxULbjD7nAOyknfs7aBAmU56Skjecy7cz63xBH9ZCIfj4l73FBXg5DQrTGjGx/mwvvOYAeeo0VWXNltJpjIsYAfcJ0GXpR51v0eo78zVK0GDv6ToycJsr6GP6P4Z1FG6/tFKtMJYrcO5tcTCe3n/UXvb70RYvNSmoU8th5jiLIcrGzF3ztmNUw263JKVBl8F2kOVkj966z9rrzeYz6QYxzPT34hpyHoUjJF+DObXCfvsRobL2bVPimwc8EM0+YtoyxKodUBvGAV8MqscPft4joTU+xjDgGHX5RMzhjqaqG3XrOK3tXeSO2LEPg5dmChycnPF0sOQuJNgmu8Hsk96zPes5PM88eGuY7U3bmnv25oe3WPPz4MU8efpf/2s+5evUOr7/2Lvfv3WP3Uo2crjl9+ZKjkwXLTUsrmelsRtM0PF+3fBzOuVrXvNIL87ph2hxy6/IEkcf8aLXArBPz8yXx0UvitUfsXN9DLh/S3rrPW//W3+Gv3Pzf8tmn7/Of/6P/G2dnT/j++ojDyQE3v3mLydM18eMXmN6O93T4ZxjPDa+hYxvue4xphMWNzeX3M0mKLwF6bXJKICUPBQeivUQSlbgPXb0pqIZyLRSVsZJUcj90l0OBVTrKnHNBaqzOl43m6+jnLaqALNjiTGqGQ7Sx5MbSu0yuPNm6MiLJSIqa1yM684wD/FouwsGlKb/+l66zPn2B7TIvRbj667/GV/+n/x5v//xjPvhP/4/Uq6TBeV2LtxbvPDWWuW9onBqrmfJtdubw9m9do7k0Ixuhdp5mPtEMpD4iSSX7STKxcqTa8Px3P+T2k9L9IeU+KGIyGnOZMt41+jsxC+lso8qIsgnqHSkcMmMwzlI5RzIJK3lUECUUkVNytVEJffm9AAQzMgzIBSVI3im3qGzU1up92OTMg82Cz8KatbcEY1lL5J2v3adqDCbaEv8R+ezzh6z9DaZ5zZuXdsiijU5KibNnL4iLJSI1iCEniMaw2GyY1DWrdsP5ZkVbrBQcgzzZUVnd1Yy1JDGEnPEWmtKg9VHoekVY+hhHlKY2hmk9YVpNcOLwtqLxDaFr8Y0rYzltlEIIOO/AWfoS7WDElKDCfhzdiAh9FtZkjrqOcxHmCO8cXOKgmtBtWoyvEauFd+ojYi0BUzK6SjTDhWBH4AsFlDHqQjwULM45kmR1mLbgvBlzuqpijldZowGluYShlsZiGHsNJnSuuGWrjxf6RJbP0Jz2TIPlrNqeG/qdt0XKxX3niwZujiGlnDKo3prFeURCaXh1LdkBChlQEqONsMiwa8j43uMCEIp82Y7jmaGA0iTq7fhULiCaA6dPirrWJIGQcJ1g0/Y+21L8XJRYD7lGI7dlONnK15SLSFNpFE0pVgZhgy3XiyylSPuLurT8d6BogUzMmvg5dEtbHyONW6+dpZk49vY9buYwElXRs9hQG8/msCaUClgNjPRmDDCkPlhSlBplMmkABqKZLTdT1PfFCNlbUmPxU0+aefzUYasehyeXA8lVFdQ11JXOSEWgSDpzVi+LkHU+6kBjx41TiWaOJBzROGpfc7mqOawb7u9d5rTrebla8fLslKPNgpM+sAqFJZ4sMRpOj9YcPy8EtalHrGGyU7M/W9Gnn/Lj93/M977jubJ/izfuv8lbr95A7h7y9Olznp2dE9qOuVi8hbxzlSiRF6uWTyvLtRR4dWdKXjfcWmz4eLPgrI/sJYeNCTk65XL9lHr3Ez776fs8euMdbn7tl/gb/87/jBeLhzx8+D4f/ei7/Diccu2t6+ztXGP+LNI/XpNECaiCKme0CNgWL1kKWmI0FFBkMJbTYkEogzjJeFPGEwbtZKSgF4CuRv1zihJvR1FJBBsDRhI2RQqjBOsGZYrOx+NgqJRUqSZ28IgZ7LGL8ZNRrgvDRllDnjjayhDqiuAMCUs2Thn7ZFxOpfBy2Fw+QUFe8JZX/sprfPBoxdMnkWdV4vDzR/T//Dt8/mffYbpocX5OU1VgNgz4t/VOr0VWTkGUTBDBzj2/9rff4uDulCxeiXt+m+uURePtNY8FphEWHzwmPT1HUD7JEMaXyjhoIFM7a9UzIwshCuF0o+aNpvCUSuhkFl3XprFIpciSwxFg3OSHHCcF1CxiDSEHemtoU/FsMmBEHUKdUbItMkQXgLEVn5yd8Um3Zm0T3lrOQiZb4bU37hA9zJIS+WOAqtkntpFgLV10OIvm6IhhfbRE1h1GpiQSyXj6rlPDL2DTtXQpkAqnwBtLXVWjj4yzKvm34iAbvBecVUp5EKGTyCJsaIOaCdbWMvGeia80gNU6mrom9X1BMAI5J9quHTtz5/yItqQYAVeeefVTAr3WMSaWKXIWe2K23K0b7uwekFKgqj0hCzFFVd2VYtQMe7DVQ3JL3CwFbFH16CGYNKbAeSaTiYa/lnGsM05tErKScrVgcaWJUAJoVSlHJxbUyU9qbToKkV6yjn0kK1pq0XvlFkLVRZh7QlEyDYjlsL9viwmr/I+yP2jwox7qbmhSKKMnY8Z9QQrimktTlUsDanTDGt8vl7HyiCjrsix0Gl33AypTJjDluZeyR5X3H2ooKeMhEUyfkAQuqL2ENW58nwH9HV7OauGiKiLG9xtiHYfyQ40x9T0dprjrlulyKdXEFFKE6Jr5i7y+9EVLlkxVKroB8rsI4w2M8OnMU3uwkw3R6o2rTze4/RlhWqkUDsaHbEBULAOTvATsjXUz46JUjb3TbTOXjluTzchTR5o6mHiqiVe3wNojjcPUDlPXiLdfgCAlZmKOJDFEQaWyhf0/WBZZo9LVaES1tcVEKxiomppbVcX96S7xfMXi/Izj9ZpHoec4J05sZgN0Rrtbs1LXyvUi0h1DuFazdzBntueJ/UPy+RmrzYTVsqKaXuPNq9fJzrFYtex1HusqctcyrWqoa05nc554OJ9O2Hv9Njc/TDx8ccxJ6OgQYh94QOL+Wc3e0xOefPw5jz/+Ac2Nq+xeuc3bd/4KX3nl13n84Ad878Of8+Elx92v32T5X/6Eq6dSeArbDXU7r9ZdwRZJ5BDgJWVxIeptQVmM1hpNRRUz/NJ4EA/dhTV2lJgKKtlEihNMTrisShNzwSQqD4vTXFj8sIVIc1ZejUG7Q+8wIrghWbYyxEboG0uoPNEaktEQRSg/zzgGAaZDkKTvqlJDj7tywFf/F7+MJTP/k1Me/cPvcvbwMfd/5Zsc7+wgnaWxlmyEYHLxSwFxRoNEDVROHYfdJjJZRWzWxB5TiqzRNceM7jl6/VxG9qYEe45PuciaGcc4A+IiCDGncl0hiyM9X+OTKSrmolyRobOF5KG3WU0GsyEUz3BJOmvP5WelIl/eSGaTtdAloxyPgvTMJONQVRpJsHXNs+WKh6slK0nMvaN3jmVsuTJpuHb7JhLOCSaDrXC2Jh+95O7hPtbUNF4QcSRlxXD+/AyXDNmqYjBIpA+BvZ0Z5+tz2tArfwEdHda+UrWMVZmusUblquhB4srpFnLJ/Yk9mxSQTDFeNEx8xc50Rj1pkKQMBOdUEZdixFcVxhi6rsd7TwxBCe1Jk4+3z6520xlFRLq+5ySsOU+Bxjheu3SFifMYHG3XsgmbLUowAGUyrD8Z18BQuHjvRjTDuWLVXwjafd8TUsJ5RReddUgUHOqUq/CdFhd1XTMonEwZCSEyIuHj70FBJnRNZxFF6btMHZTEqxSDUnkUoduI1KIUAAPbMEUjulaGBiRrwzoWKuW7j9djKCrK2bE1dlM0YhzblV8z1ur6uIDwUK6fNVo0DYn3gnL3kuSSSVWufxKIgo8Giaid/xiroCP0oYnIIqMAZaseomRNlWcBGf83mJI1xiiEGThkZC1yrOiZ5QwjT+YXvb70RYsxqhAYxkMXIT0oU7TKUU0885yocyKIoQmGySKQbuyxcaWKHPCrCz9iZGebgaw0PIBazGxVZzJWv8qlKKY9tSXXhjA12KmjpsI0FXZWkSeWXAvODehQQQay8mlkQHCyIjuBVA7XQQ7nMMWOPCWVhEaK4iNmXJvxnWEv1LwSE291jkXMPJaeFzZyYjIv6Witus/2YpEOjh52vHiwxnnLfLemNxVvvl6zO9swbx+wfP99NpsZ9Y1b7L1yG1vVtCHRL1dUbeD86Jz9ScX1O5dZL1aYvRnmdMkyJ4IVdlLmmMzR+pSvzfa5dhT5bPmS49uXkfsvaS5d48pr7/HW1/4ae1fe4nzzGfXPfkrdK7SipqrqtzCMiAYnyeGeyaAcKluIYVvcDBVnKv4Ow58a8kb0/l0INbvw76FgGXJfRtkgqgbQ4lLJwIMHxUBE1dm9GYtdnRnrx3HDc2wM2UFoMqGBzluCsyQjYEJxqTEkHKYoADCFKFeymGxW5ENmc/1eVxaILFm/eMTixR1yMyd0G7yxdDnhjGVi1aK7DdqVe+/wSWfdlcDuIujIyA7BklKC3cw44ollnJbEIJd2WNsn7EerG5uol4quszzYQnwBgg7JYo97Jj0sq9IayLYQHTteCiqaE70VOjJT9P2d1eIrGGEjiSWZVcoI6nJbZZgadQvukmhaM4L1juMQ+Giz5CgHTUM2llVKHGK5Ndvj4PIdXpz8mKkT/NXb2OkezbTjxbNP2du7xsfLnknTsE4d1/Z3ePF0SZ090SS6mGhTx85sxrJrOQ8doTjRNq6m8RWTqsZgcE6JpTFmRCzOC5VTFDekTJctbUi0fSJE9WOpnWNaeeaTqUq/+6iHpaswJhNixlU1IWdqr3Jna5X0P4xUvPNIKRrGAtwI6xRY5sxpTkSB23XD7Z09autZrDtiylhTISYyWPN/YYxSnv2tEsaRkhldfnMW/TxOSEk/T+W9klVFi1FV96n5nfUGUsaVCAZVG1WknMZR+hf27nKQakGfSSZiRQuiqkvUqwCmxpJJZMQZjX8ZmpsL+8vF/cBZq39eCpXeXChJZNuEDhvTRXXPn18/I/+yXPfh160Z+Gzyxd8rzdAXJM7D+4xHmE4BrPXq8l1sHLbDqIHjZ0fE6r9xfooaC5LTiLIkCvJJ6R3thRHShe+pRZEUe5AiKf8LvL70RQtofzde7KKHB8aNMQFVY4mfr2jWDW3dM19H5mI5m1casFaMfQa4ZZCAXXzwik8nBsEO9NAChY1uhSjxSiyI5guQKkOqDWHq8KbBTSpMZcmVU5TFKSSbcrEdF5VGxxSQQjBVe19T4D5DcltFSugjSTJt0oC0KmaaNsK6w24CthXsGsymx/dCA3zF1kxmE4KH57bjs9TzYeo5lkSXgKS5Oud9z/nRCz74/kuaxvDqzUNu7czZ3fTUP/iQ1Q8+YrXT4G9fobpxCHueftmy3iyZGYd0a+LJgsp6Uu05CxGTM955jpPhxynwnp9yPTpOPz7hg+MV+/eP6TZLdq/cJtWXMXKLkM6I/jkpQ7aQUgTryU43sOHWDR2D4q1xjFoYO7Cki0eM0Q59AD/K85LKxuqMOrUOcKwrbsLqv1LM4VIqPh9SlBFa0rpCnbcYZCAdUki82OJXUZ7RLAyRZdbo+/QTQztJ9DXEyhJs6VpQLsXQQQo6spSCdoyHvDF0xpKtYiH1QUVdQXUe+OQP/oiu7Xnz2jWMU9+gHsFlDRftkyM5p7wKIzjjSAYm52uqdMjGmlHlQVFmaQe59afIBtzlGS3CfEBCYUQJMUoiFVGSrP4s7SjToqVpA3mn1o7zwmExdHROFIp2VpOXcxZSIeRrd+joxXCWshbKIhhjqax+5gpLZSwhZ7LTrTgY+GhxxsN+jVjLvvdYb6mD8HrVcDkbWLZMd/dIJ49Jp2eEReDl0QuuXZogrSIW4XyD946w7Hn68xfcSEIwCXJgXlckIyzbjl7yOKLUSAFX0BQlk8by3b1zCKHsQZYg0KbEsu1oQ9AD3xsmlXq5VEY5Wd46uq4Hqzwq79T7RH1eNJjUWE15bruALRLq0Ed9LsthlWOiJXNE4CwlGmN44/CQibGsNxtiVkQkRdG1ia6xAXUri28cI5CFyimSNAgiFDXQ7KOqEHFDCJiy5vqgqerGlFHwiGwrUmq9pQsdQhwbD+UAbiXDwyhF94eCytiM6RJ2s8HIVIUQJo/FxIAM6DOVCz9LFT4UxM7kNI5XTDF+csYUhEGKSmh7oCtptTgS//lCpJwn5aOWeyWFaD/kHm15L5ZhvFaanWHKYApHpSDGMSeclWLyJwp75C1BeZQp27J/6KF3obESYs7lmXQj8hLHM9EUGbkdizysudCgZTUEzP+9emh85eLnQekEU/EqEKsyWZMtvvGE80h3GrEHwnwTkYkjTGqQYnBVpMclovJCpb59qLakKO3qhq5+6KiHulpRMx3r2LIBmonDmAoqi2tqaGpsU4Mtc9dSwXYxjpuGK3BjLk6ItkhIHQqT5qxx7iFnupQhBpo+wapF1j22zdB2mBCJQehESDFTec+NDVydTNif7CITy8vU8ZO85odxxc9SxxFCLxCTxWWD7+H5gwVPwoI6a67SQeWoX54gHz8lVp76zj7tzWtIMyH99Dm2W2shlzTdNhrY9IZdgZlzLMTxw5w4tInL1YyTlwveP/2Yhw9P2b/6GLN7jfn+ZW7cvs/p1wPTH/6Muku4pCOdkAYi7NA9lPHeCMQWBE2EQfkzZi4aNA0cdMRRpI5WpJBzGXN9bFH+WKdqF/276teiu8HAtDHYbLdz35wKOc2O83lTOjMZCpGkBW5EM1XSzNLPPX2jUuds9f7rZ90qFcRoiKAxHium8DJKwjEGI+puO/OeelIxA6gCx6sVfdIUXi1aDI1ICXvUTb6uKxoUIOnEMFv0THrhvN6aozggXbjm1hj1dpGMu+TpHUWKrlyTgVtEWVVRNOV78N2xEuk3PfWihSvVdg3KsM6Lid6FUMNGVL4ecixQtwVnWKXIeQpszJCMLBhJeNTYri73JhDBeT7bnPN5XLMmc+ArapV0ccV5vIUr3sLyOYf7PXkngT2iNT0Hdy8T27UiPbVh3mRC33L2MrN6fM7EVfQpIzZyZbbL6WLFJvXEHKmc11iByhfJq+5DtrKj2RtlDwFDspZ1CJx3a9axI+WIM6aYzzXM6ik2QzOpiEEjIpuqog8t3hn6Qrxt+05DCGMmpYjgwVpCiFu02aJ8oBhZpMCTsObcZt5tGu4fHNBUNevUMa1r1u2GlIIaaRqrxNvRH0JvX9Lztxja6RYrohYQ1lhCjCjtbiCCOg1UFaGqfClU7FaCnZJGD0gmFHffumlo267wZ3SsOKy/XJoTayzWaLEQJSrfbNliUyJWThEH2aKhUoqPkasoapamn31QIw2jr8KHKTvB0MiOfBHZIijmwnkxNlrlD5nS8AwaHilF9zB30YIK3RgoTUy52Kb8GbHDLEowOZJTVL8WKQpG2dIfhuZ7QHaGl7WWmLS40n3Bqv9OLsrLUvxYY4oNhSLG+tRuJdgDMvrfzOr7b3/9d6Joga1TLbIFoQzKMs+ScQ5Mn1g+OOXw5h6TRUe/27BpSpjbMO4ps3TQm6jmO3rIDHPZ4YH+b4MiMWV8IVCPeIyowVxtNRWzqZDGI7XTwuoCLCcYTHHPlfIgVaWLzGIQS3lwVN3SZ0AsOYJP4LvMrEvUm0RuE9JG7CZAG0iS2Yg6IRoyjTVMgZ3sqLrMgXO8Kjv8hp3ygI6PTeBj6fi0ipxIpstgAkzEEQn0JvOkz8RWyBHEBi79uMV8eo7f36c9mLBTKwS8mU+QBuK6ZdVvsFnJsm1Ys4kQDnZZGSFnjyx7Hjw+5un5gsnhOVcurbl2/RYy2Wd19TKbR8+0C09JC0fDyCUa7sVF2PQih8WW4mH4ZzgQt5yYP2/opE6aBkYpoBCRbBFRnocp6MtgDuicU45ROXBysRC3TnlPzjqEVGBnOx7MYg25EtJE6GpL8JAs288yIg9l00M31S0AvX3uMfp8emOQSY3sOOZ1zVf+6m/Qv/8T+qMVe9YTjZDI7AybYilcXF3p3zWCiGf3rGc3wFPJ5flRvHH77G9HcYLBHMzoa4e0SZHHYawzoiZWA0zLpmuMVZXWJiIvO6p78/KUcuEA107bGB31DM/QSJ4vcHiHYYnQiiDFh6exmSmOqTFMEGo0j8x4x7MQ+GC9ZiGJg6ph5j1Nhrn1GMl4a6hCx+KjB7zy2m1yqNikOas4pTIHBEmsNysuX75FXD9HXObB90+ZtFo49tJzY/eQtm3Z9IqyOOOx1uN9RVVV44jRlDXvivRceXIBYy1tjqxjz7JvyRJxBqa+Ylo3VNYxbSY4EWJsMcbTTKYYk6nqWkNKraGPgZgSk8kEER0beafut8MoLpcmrM+Z3sJxu+E0R2orvHt4hQmWlJQrE2IihEAuxnPDWtSxz4VxR4nvMYMjdLmnOeXx+wIlddrpODwEvPfjKGZYl6OJW+GtVVVVxkeqqqqbipi3RF4pBZPBgFckSgE5g42Z6lyoxNIrO4yL/BRjbfE70ebUuK3VwjDaHVadFKhEjFWp78CilbIq/tzoxX6hObYXkP6s10kKiblUFcNYdriuas5oSYUDtt0FjJLZEUXnozrjmgQuGVw2uLLnjJyWC5/rC6O94jRtCm+MspYNpVEsZGpnNe7Ain5vRYFlRF+4UNz9oteXvmgpBTQw3O/yoF24PiZnrLdUEdrPTzh8b5/JOtAe7tG7bXFwkUFtRsidbfWch1FDuQEF2kwpa6EhMv4sZS1pKqcV9aYwVfl7jUUqB5VXWG+QqpXRUsi6wVuGCHfGAyEV3kNMhlaEPhtEErbPTDpht8/sdJlqk4ltJnQJes0iiWT6nKjxyrg3KvHWM85ho25YuxHupIrDLLxpYFnXhMrzohY+zC1PQ88yZkI2ZHHgDYHMJmeeSeR0EXm+3HD3Rc21nYZp3dBNa8Jkhp02VAjSd3RdQlJiWmDM9c0p9fSQSycr0umChMFbQ7tasDx+xtWzxNneLgeLJfOTtd6Xcr/H50EGEp4Sbo0Mo55B8jxIjrMWe8NsFjTDxJkxvRS2BDNXngfFCkpnk5OiLRc7y9JN6SJX0psZDApRiB/UyC6XjVAN4xTpM7Xa94fakiqv2R2G8TOORbnoZ5Oh2C4H/LgQ8jDINGzqirDrWEtCLt/k6ruW9vf/iEsFZeokY4xXWHnY5A3Yyitsb2CyEJo2YaRRzkLZ3J0pclLMWNRnhGo+Ic4cnOWxex/8KaRszAPKkkWhZmsMLhrCkyUVlwhGUc3RNVX0WrhaE6Rtea9kNFDQUUwUgUXJ1aoxTIC5MUytYyIavGlNprKeKIbHqyWLnJn6in1b4VJi7msOrVfirtMx1vnPn+D+5lsE4zD9MbPuGY08QZopyXbUZ4lKDC+OO773//wXXM2WVQzc3J0zyXDctfQ5kqwil8563DC2KZB8zlmRl4LU6t6g47RV37PqWvoUMSRq55k2tcqjjSUGldhKhnpSF76Kjpy7HNQbRNQnKsSeGNNYNBtt78lJStEgJAvLEDjJkQh8pZ5zY7qrz0gWRWbggu8K438bw2g4NqhjBoRgkDTnEttRV1UpYtz4rOh1UJKterYMjYU+/M7Y0Zspi9D2PTHr/ddcoLIUjIHsxqYlF7Kvc44sgdp4qqU2fKQt901HRYzGKIq0mwuIamEhDMt6RFF0xJztENvK9g+U4n74kmNBN/5EbbKdGT/8BaRlcKTdIjJj02I1Xd05lU9ruGQhFadcGrwMQfOVfEbHkgMUYhifv4so0CBkEQbrBjsShk3OIy1C0ZVhj7MXK7mxwdfi779HWoABgiuBelmRkUIvGjsHp0lpNCLIgwXXHiW6IIR5sz1GBh8OLowZRMjOlMIkKeRWHuBR5ipgjXoKDA+ZLwuVshCqXHgMrqhMrENqT7blwRIhpKhwuVh1toXS+KbCGyhhjKKxHoIaOJnkkSjYPjLvMrud0ISMDYKNQK8Syd5ot+OyEhW9WGoBb/xIMM4o+pBExjTgRoRZskyi52tVw19z+5zVkRe+5f244mf0vOwTVJbdbInZESLE7Piw7/jkuMMbox3hcc3h3pxqUtNVE8Qk6tBDTmzWJ9y8NCPdbkhxgpzMMS2ERWB9fMbJSeJ6V3M2n7C5dQ3OHkASvJhSbLhxU0vD1iZ2hEKHQ00P2VQO2MHIT7sJ5fd9kaMyeH0MyEwSq1B3FmwUiEFVYMNTMxStQzltlKuiaiNbNvLSrRi9jzlDzIInkStP13hiZYmuorcwxPdkEdyAGVPGXSPOItvDJzNifEaEbGuYTwjhlEe//4f8dH3OG13L9WqKN5ZFKZz6GOlsIvlBlgpiCndnk5isO7zsEHMCK4pVpLjlCxQoOBtwjSfte/KTVBYCBdHUMZgTFMVBoftoNH23SkL/cEGVLWuXcEW5Z8r185OKauYRm/HoiE6swWTlugQyaxIBizdCTabB4ZPTpGQjJKs2AlXT8OBsyXmI7DnHjvPMnGOK47Bq2DOOpp5w1q2V//Kzx6QHx9T7QlVX0DoqM2NzFumrCY2rMKHnj//xD6gfnyPGY43lUjXlvF2yjFHz0ArqpsKnctIXpMs6HUdKToj39DniXUUbMqs2sGk7NWGzlkld01Qeh2U6m6p5XNvifYXkTEg9znvavqMve+HEVziMelVZS4ypcCaMpjw7jZfoU2KTAs9Dx0kW9nG8c3idmZuSs7DerAvSkUlGhroAhvGNKPeuPBkYDFZNQfBOAwJFhMq70X9lQESG3LaYsypkrNci2Wrx6ItlgDUDEpeKd1LEOUPlK7rUj4ndDi1q9cMMh7IS0K0I1TLj02CLR0FGCsJuBuTdjEWfGrENT+WA0g9marr3uFw8WAxF7iswSL2HomQodAogo4WGWiJkN5xwOprS6xPLXqRXNYnyaMSEgnBotzGgdSZnLVpixvWC73NRLroi/Wf0zhmVscPRU/Y7VZAJyWhjEcuoSCNSLjRTAMbrflEEI8ig5yyKp79YzfLlL1pAb9BAalKFjRsv/gjlAZbMwXHH7KdntK9XnDaQrcGJPnjDzxqZ2xcUC967wpLQnTlZUXJRUvgYGAsan0TzZUqFMSw4sQYqS2ocoVK5aS0lmRUZD0MvpnQjajpnnJIhnVECXUKISeFSCQFiwveR2UaYtUKVBBMyMWTIsIm5WMeXrAl0pu9FVCqJ8iWMQQ8kM1Amiw+BqEldFTKTZNlxnlfyjHdDzRMf+ci0fCI9D0xkaQJ9bQgmaiIrnpgt65g4Pl/w+GzBXjNhPm/Y2ZtSTyZUxiKzADsGOwvMTGA6q+h7T1w7TDrD5MTG9NB42vkcPnLU3WDOlEfoNF0Y2W07mTLLHr9/6ejElfu79SQYHha99xfGduVnqtlfgUmzYFKGmIedZLxewwMxTHW+mBwLg5nQQBzMOZMMhDoTJplu4ulrQ3RlsywFUWJ8q+0Gai6+5/gojl2umITsVWrINvN8/Zd/jZf/n38EXjugLsWCaqgCR6+hboLGWMSC62F+FKjvBmJlitPw1otDn5kBEUH/zH5Dazc0AgOaELMgxo5weUboAazmuticSU/PmbVg5jpGG+7lxeIxSy5yS73vUSBao6OaHOmy0Bjw1jPDYYtT7YqEy4m96Q7Pug1P0gZnHZe8p7aGubXsGMPMOXaaKUkyKQcEwT0/59E//FPu/QfvEhZrfvCP3mf38DLBJOL9m7x36S0+++nPefhff8i+aehCx1uH10ld4DQG+jKadRRZc5GrKvpXYHSxarVv1ZvEWlU6nbRrVqElJv0ZM98wrybU1lF7B8W8a0ARQggYb2jjBuMNlVEFiXWOrtPCJoQwFhYxxvG5iQgdwmmIPI0tMUfemx9wb2cfK7BqNf25qira4uQbSsioLeTXnEWbMynssnKAad+n76kcle04X23ey3pLeSw2rLWaGRUjWHVl1vVuaZqG1AshhjIyUbsDjI5pY4ykUo5oQKOMe7vRy407XVOFjEzduN7teDW2dvrDITwc1YYLKL0Zl7T+fTPwHbWNUqTGjWt3uxeURsMoD8/ZqvzZrVHdxbVty/Oy5bmUssBYwBbuY+HMxYSEBF3CtxnXCqY3at5oZUTZlKfptugUxboga8M7Nhs5KwKHdrmWYvdhSrSIGe7zoAi8iDSNR/EvfH3pi5bhgR+Nb8rFHA4LW1Q3xhhq67jlGpq10F6asXZFvmX0RpoyIsrl38MDOSTfDhUuULpKGR05pVSlmGGbhZgULjYY5UwZQ3aW5F2Z/SY6dOSQJJNQoy07jJly8c9wOscPSTMfQk6kbEhRsCFRd4FJF6l6oe6FOhooSEuOaimdJREQOknqS6F6XSVJjotSv6N1WsRYzUMokKt6wgjQJIto28GNdVA4PcNNUxNdTWwc5zZyYgNnEjn3ibOJUVlkD6scOV10pLNzbOWZ7e1S25rzh+cc2pa9S47aZkwd2MnC3EXmlz3xaM28dtgbM2QSca0v7qnbgkOhyy0/ZYA8c0mMNdZtCwWRQgjcbqwYyphwO+kduhAtdAYUp6jNshr/SUrFF+PCiIph04rF+CljqHRjGTeeAZIVxFtCY+irRF8Zem+IVgvJAQof5sn6DJZtYfwF/ddYppfOSxz/v/b+Nciy7Cjvxn+51tr7nKrq+/TM9Iw0uoOwJSQh2ejV34YwRqFLEAQ2fMBYdmAjEMYiHFwMDj4YCH+wZBRB2H4Dgx1hLBzBizAfgDA2YBl0AVuSQWgkJPCgy+g+F81Md1dX1Tl777VW/j9krn1OaYSQbN2mORnRM91Vp07ts/dauTKffPJJ5NySSZR0253w+CdwTRQNBuVOHhokkTmLylOmJgtkSinEGji4lulr5kSjdQtUtn63k5/9XpUAcmGfwjUPXpXq7tScX0C9I6GKt5ir9VGVR46Rowz7idbjUJ20Wau1S4t3D5mWS4EQrc25FlY1UyQaQhnN41YxBC5o5WLskQIPHh+RgXMx2YBB4GxKnFE42/d0AXKxq9ZaEDqu/t5Hue0v3kX/rEvc+eWXefAjJ+RUeMpZ5ZF3f4D/+Qv/g71D4UbJPHXvHL0IV6eVqVv7ARh9nc4OflYftanmSVzksBS0ixyPA0fTmnWZTO039ZxZLOmQmcg7TiNdt7CsuFa6Rc/JMDBlYbFcUnOm6xJ5yoSYmKZMztYqPB/ijjQWMe7b/XnkWs6cCZEvv3QLqRZWJRNSJEm0idAV40xgvk9cal+8ZBRDpBTXVgl4B8lpFkXbM6o2XboUQxS61Ns8paYY7LolIVq33ZSzdStV4+VM2fadlevNJzROjCU0xdE2JzoLSAyk45E0+XPGtZhaWWjrahsXa3PY6/wM3XXMpbImpmjvYa3rTbiv7c1NW7PYb5WASJkRp80N0q3rELs28HKMvzZ4wBIi1GJl82rJs64rYVDCSSVkmc8umT+fv4mX72ayvydTNstLUDEhV8T1a7Salg7GJWtMN1Wb3bY9LuLUYf1n2E0ftASfa9H4JxE7jNqNz2J4QQ3CXhHuOrdHXlYOLzgrXE0+P6qScEKvl4GCAMHEp6TRz8EhP/sdxZ1040bMoj+qNgG42kwhE0IVsiuiGpu6ULDBi1KZW3dVZObXqBhnhhoo1bQKSi2MU0GnShgz/SqzNxT6MSNjpa+JWIWT5nDFWN05Z4rCUmz4nGi0CcW0jAG0GtFMNXszlX3monWWYzZS30Z/oc+JZVGWUqHALXTsL84gUTmOhY/VwgfGkQ/VkQdT4YZzJ7pJkFw5vHad40P48MOHXPzgHrc9/iyXrxxw7nygn0Yefy1TuMFJLRyMJ/R7Z8l9mIcLKo3Mqq6v4mUi3UT8IbkzoYmztc1Z57p4AzObDkL7u6ghNNPcsqcUqVBNl6J1S4ja4EaCoMXerXESJPp12HQxIMwdFNYSaKMfclKmPlATJt0fhOB6QIoSPeARrAzaguXmgFoEajRZQbRaV9L5BWURuf6xj/Hg+ogHj1eMiwN6CllNqDCpIoYgkyfQpIhkF9QT9q9PpFpINZFDnSdOm0hf3Cp5ZTqBeOuSIkbmpSqT4IMQDTks1WrmUUEkzcFhPhqpD63QW3ukdhTJgA1fFCq1x7sgcjvxbA9pICtUfNaJKEkxcUAR0MBSIstuyQOHh0woe6kzQnoMHHSJvQDnu549LwlTTYSsJ7CQBMeF9/zCW7nt6l/giX/5Gdz1vAXHx8f84Vv/N7/3n99Jd21iTxLLKNy1d4aT1QnHeXReRiDGRBQXU1M75HOtZCw7j9X5G0WJKXAyjVwbV5zohKjSh8S5xZKL+2esPNwvWDt5FYRRK1Im1H9niIGxjIbSuZoyKJNm4iJa12K2BoSKUpMwTZVr6xVXpzUikaedP8sdBwce5CRygePVilpM1yQ7kqEKJTOXGwLBpCTwNVyslF4x39pQg8bpaxyWmGzfDeOa1npcs+2vzsn2IVqwlsc1feyAwDAOpC6Zvy/FFJejKehK28vILNJYNdNph4xKvxqRKtRgAwRbsjN7fT9jCvZe0cvoc6u/YAq51fy8Rm/xVtuz6glSdc5H80uqljBY/lDmYKWVybQWAkqbrCwSqGRENpOkjQtpf1N1RWIRQqnEKZMmC1jSOhOLVQhCm92mhogFUXACda7VkBVv167VOhVrzTR5U9teEXFtKlF7D2GDOrfkrZ2LZU7nP73d9EFLFTucWrtncW6KOEm29abLInJxP3HL2Z53XD/ksNxmCIqTXjVAIx11OIRmNSXwg3+GBNvK8sVnCMUmjJStfvcGl8di7bIaE5paWcJb6ILVH/tqZYvJEZyWRWQ1UaSqVk4Yp0yeCjJm0ioTjzN9MV5LHH1QVrHrUoEUIlHL5lppwKfOUXwTmrJ8wIdo+WfRUq3nP/pBrErTB0CELiQWodIXZSUwTJWzIpyl51KYuCzw+LLk4bjgY5L5uFYeovJwzFwrI4OCTkI4Hjn80MTwwJrr50645a499ELPLSfKtF/5SBnpzyxhGCFX/KkDmw2SPdNsHSvbtdkQtngv/u9WXrB2ZLy+rBA27y1stHeaVo7gyFptAxU966oNXdnc26pCra7rE7YC0lPXCHRiSEuqTNHKHTZY8DQqs8Fdt1slN102M+Tsa7RKQfcjemHBmjW36Fk+KsIAdDEy6kSmZW/W7TTkifUYbGhf7Ky98vqafiiUBQxSZ95MbQFSc1YixiG7vM/YC+XELmRshzOyNTQOP9Rs2GEXzVFP91+ne/qtTNJg8Dqv15QsiAr++TTgz8CQrkJFJPjU6kByRElRLqYlD54c80AeSV3HIgb2gnCm6zxw6Vimjuwl21qNQ5FCJCHEGpFHCh/4/97J2/7ze/jQsuOea4cMDx/yVHoeF3qyjjzt4kXyMHCcJ8bSWnthM2hvU+rKtdjeC8oCh9tToEjg2jhyNAzW4qvCmb0lZ/f2vWMmMjoZvFcYc4Zo83iGYY0k46fkkjcdQsWQqaZ6WkpxbZgJjTBW4ZFx4KE6cUTlbIo869xl9qUjp8SYMyfrwQ9d2/8hWklm5n2VMpe8gs/9aYvWZjxhaKjqPHUaIOfRyzZhRn+Ct2LPminVBiciNvohpQQqrNeDHfCxo6q1KjW+Bltrsza+oF97LpUwwN5RIepG8XUzlLR6wICXh2YcE9jsSa06E2hbU0d1tGUOQFRha++3clY7I1DrNlRk1nESaZdqn0O1lZbse61s2vxyQ2S0qpNv7YxIJ4rkgOpEm2MkIt6NJ/PZoHWrMaH5EdV5bzV3E6y/3UqCBjk78mOip6dNZyTmM7E/F0ELwZxeqUYY6vxhgHd/1MxBhDvO7kEIPPDRE44+NJFuWaJSnS/r7XkilKLEaDd47jX34RLzxOHmgILQhhLNj6Q9ZN0IGyUFECSZAmep1VU9ndHtcsciwtIJllkLIxa0ZFcAzc5VkdVINxS648zeJPRTIU4FqRa4FYXRBbsEZhLUqTqqYl0u2urJkJynMx9C1Wub4oMb5wIvs2OJIbCQyFILk06UBENd0yVImlECfclcHIwvs6+Zx8XA0C046pdco3KtZg5LJquS8kC+vuK+j3cc3nLAR2854AzC2XNXCHfdQs7XCG3QnWdqpRRXBLaApTq5tK2DltWw9fzMIbgzaGhFuyfCVsaABw6bCb4G83qJpJQ5a7HbLPMfCyqcTeP3vLUsNqczBzketNS9RO4jJYoT+x692WdIujk95NRnVN0qqWhgOtine+pd/PW/9T1cXd3gf99zD2Wy3z9pZaiFs5LsumJkzJl1CMaX0EiuhXSUOXNSiWe806cycwNa8KQOJVcK3cUlJ6kylnYARUJVm66MtnODzS0T0ELMlfHjh/R6OzmcRsAkeCeeYBksRg5sDjX7OlCsvGnde/bNMzFyUgY+Ma4YY2SREj2F8ylxPnYsQmDhXBLUiZlqk5WphloVrMx5ViPh2oTmgbJac9Ad8MTU04+F5f5ZLpfEA3nNyg/c2NIEZVYVtsGrlVyL3w9DMasqEiM3Vmuuj2vWubCnwsFiwdnFkogr2HrpQ4Igxbp9VIT1OBBjMmS3ZIhWdgoKXUo4rDNzSJrYGiIcrQcOS+aBPDCiPPPcRW7pF6yP19B3aIikLjGsB+c8eNmrccraEMSWsH1SgNZKlgDJSwshRMZxJCZ7XcmbVulNu7vvEwG8kyYEgzNaB5qBB4WqBbV2I0dxWlm4NVvYWjXyvsCYidcHYt2H6MrKUjdCjluo6+xDZ1dvelrimiW6tRY3kgqbxKL99ll2oX1dTbMJda0kbwFvP2qYJFv3csO3xD2MwJaPsaBFcqVbV9KJwth++SbgaXurvW/bbdW7hLTqfNFbV2u/M4QZtbZn4no2tJxdXeu1cWQ29+HT2U0ftKCgpZJ9YGIEVwp0nkApBFHO9HBxL3FjKpzcGHjo3Z/gCV/1JKaoTFuRbARwKN+Y3f5AnXw5a3eIULVQa6S6oF0MASlK1IjWyXrjVUgYhyTGRO06CEow7TIb2IajMxKg2gFX6ppBRoYaKDmYEFYu1LGgYyYME/1Y6XOmK+JcljgL+2QX3wqedRicF0jBOlCiL7jWpRZ0k4kI3u2ikBAmNeBm1MqCSqxWbmoBUJRAD3RJQCu5WPlk5ATVaCWn6owGNY7NcirsT3BWlQtSWSeo/YKSEuuoHGnmmMC1h094/yNHXDy5zF2PP+DqnRNXjgfSKCY0ppWslVFNyn6qxTCD0MSZdG5Zl6bb4PyiokrUalmNQA2znJMnh80Zt7k+BuMWxASWVA2FygWheK3ZNmdVsdcRwZU27TpaI7Ld5ep8jxQj0zKhi0ROe2hYWOs1Nt/Dshl7ukWbaqc5u9Skn4OwPdTNYjLrMqLvuDGs+eDb/zf3P/QwwypzTZQkhiSsVcgIQzBOwJSVkWoBbJhACuH6yOLGQL3twKdA+77wK2vtQ3YbC+n8HuMiMoVKlUoqkB3NomIiYLGiYgKJtVrJKUyCfOwGe2OExWBvqCZM2EslLgQopEZmJnLizzZjWkhFrZyUsA6LDqHrA++/cY0jEQ5iIGhmP0XOp8RBCCz6HsSSh6zFsu1Q6SX4WjKSMmpdGakWHq/C0w4uzAJo2sF+t+D6as3onIsWCEeRecZY9LbgqVi514ibE1UifVwwTXA4ZqapgBqCcLbfY08SdSpoZ7yUWjM5BWpNZAmM08gyddayXyspJVbDGmqh6xcMk3UIaTVuW6WSMdG5oSirWHh4teaoVO5IC55+9hZqVorYNO9aI+M42DMPiVIzjbTZAjHxg6y07p8YiSHNB7XWyTsyMykuscpZB6pGIG7aRai3hOvsayQIKSW6tGQYJpSMSmAUhZiwQqIdkiEERyCyoUv++60slWxti+3G7nBNX4UxCyVBdaRZ1TRi2uDB2K6tndUKUk6P/DAOFDMssWkrx+eceVLTyO5+lBXdiLvN7ymbbljrOmxrhc3UAPfhjfNivCalywFZB8IaZCimhl6TUQLE0ZxymkSsIt6KDlLUS0VK0YLJ6SVqnkxvLFQIafMZq4BEQm2zxiqS7P3r7Bj+bPvMXrVlb37zm/nGb/xG7rzzTkSEX/mVXzn1/TlC/KQ/r3nNa+bXPOlJT3rU91/96lefep93vetdfM3XfA3L5ZK77rqLn/iJn/hsL3W+nlPjzUM8FRVK7Ik1cOsqc9ALD69OGEbl2ns/wfSIQcmdQC/RHBtWv+5USE3hcCsdbL+jMaRbdBt8M1i78+TtZqBZrRyvAU1xC2nMIJkQCik0npqQHPpEbMEMpTLkyjpn6qjIUJGTiXg8sjjJ7A2Vbp3ps7fgOlGqVN1EuzTI3g43U3H1zhu8pNFgadoAt0Qn1qotMcylqlI3NUvw4AfoHD7vNKIVJoSsAYJQ/fNMRvudF+WoxeDhCstJWaxGDo6OufVwzVOOC8/Mga/tDvjG/Uv89SHynPuOOfc7H+LcO26wGKyMMFIYa2aiMpTsctN1zr5gIyi3WTSbrh0NXhKSuQAx60vMRDJxyLpCKXUzjA0FnQilEKdKLLpp+3XhchGvC7cW4tmRtQzOKi81+froIjUFcmiqug3C3Ti+7c8xZ6B4dreBwdqKNUcYYTi6yvt/8ze5rRPOnulZl0zABi+u1eZW2bUWpppZTwPraWQ1DKyGQl4L/YkSKM4n2lxMg4ZDbH8PyEGC870RuOcMdCvrbAlBCGSEjK2bEeHkE4d0Jxu9DfXPpCjSR5vFpEY2NPKwtVJnaZms/ScEYanCXkg8NKxZOdov0fgt51oHjsvH11rJ2XSNtKr5AwnsxY4zacm5tMfZuGRfOvZCx7luwV60vRJUWYRImSamaYJih3bzD31Kc9kVrGOn3ZfqHXBBQWPgcFixHie0Kr0E9rueLkamUiBYScnQ4QBVyUEY8mQToEtxIqgwjgOlFFJKjv4aMpFLmRVZu64jU1mXket54L6aKao888JlzsdEILBY7JFSz3o90lLvVjJoB3ZDEFsJM7ovoajx6Uqh1kKXXMIf40m0/1uJLNL3PSmZ8J51ItV5vcTYgUZWq9Vcoh7GwaT+fQgjIp9infnpLlYCGnMma2XQgmShO3TRTRHjffg+nusz29tuC3FpgQ1sCKct4bHXhlM/s+lodGR2RuV13tNzB5OjmNslbtsLDlEGz6Liaf8mWDJGnqjFpl7LWEi1nVnuJcpmqrVuo0Q42iO2VwqtGtFQeuOxJNdeEd+gsr1X2Woz31ojn4l91kjL8fExz372s/mO7/gOvvmbv/lR37/vvvtO/fvXf/3XefnLX863fMu3nPr6P/tn/4zv+q7vmv999uzZ+e+Hh4e86EUv4oUvfCE/8zM/wx/+4R/yHd/xHVy4cIFXvOIVn9X1nhKEE1dabAELgGb21pkrD1VkSnz0eM0RSrqx5vo7H+LCCy94GxczqgIY90A27G6r4W2VVmCuP6p3kMwSxiWgU4QSqLFQotiQLwmmgKuY9kCxg0vdqSGBSrTyUbZMQNSCnzIUGCppKHRrZX+A5Vg4yMJyrPQa6MBLPU6oykZ9KhgkP9Uyt/22bMEG/PlnVpzTIqZtIsG6l6TYBNhgiFHjsrRN2oVIF5ReE30pnFRYqxILpLBJCXIQg14JFrCIdVWp13JLacRmgxS7PLEkEyVwYZG4pRu41C24mBKFhOTAKEYDHLVQPAshiGezYYZBTzke/2t1Em6pJnbVmvRmqfDZWZoCoXWsBNDsWRHASCg9fY0kR6Haoalq+hHqg+/USbjNNQQJVsoKWGtzCtQUqTFQk3W8NA5EO/AVbxV1pF201dVdvF/aXvD/u4OqsdKlynB8wp3PexbyR+9mfe2DBAJFLWgZtbCsFuAUMlOFbBAUtVgwIYeZSKEUy6paic53kClQSyVooPSgFzpUTIGzaCXEOOvotOsrtTKplQkaGlZvDOjVNdxiLmzT2RUIy8TkZWDUS6ySWGsxDgwyP+PW4n8klUdWI5FoGjG1st8vORN7ls6psHILTJMNDIwS6LAWZZvKnWx6tPphPc+VwsnERpy+Pqw5quP8rOx5GJk/hUhqnUNbpVrBrqnvFwwlczINjHkC1IYhxs7b12FyImRsoyWAdd1owFj7sdE0Y4wksfs35UwIFpx5TGd+gmK/UysfXY8cVeVpiyVPOThDFwOTCCcnAxLTXNppgy5bkD6jKHOwbBIN6mVyIwrbsynecLBYLAgSWa3WgNB1aS5Vz1wR1VNJqaqSJ9PJUTLT1CACK03lhrQKp4Koth9yyeazxaasJxEgITcy/aiUqGiwhG9O6ubSJ3Mwsn094pypDe+jbp6pbjrqWgBkbyGPumfb7zt/fSvYafpO226slY3C1qYPtaA5I3mCcYIhWzcgW4mGGoMzeulyMzvMAhV14cmqTabAfmH7/SnaXPhAm7XmDklbqdp4j23vVt1uNfz09lkHLS996Ut56Utf+qd+/8qVK6f+/au/+qt83dd9HU95ylNOff3s2bOPem2zn//5n2ccR372Z3+Wvu95xjOewd13381P/uRPftZBS4s4G9VCFc/sfR5Crlx6JHPLw3BjhKuriRoqeznwwNs/zoW/epm0HPGWIDsgZOu9dWuhzAeELRVRg9kIJmCXxEoQw1ihRkNT1DQiJCZ7XXAlSAmk2BjV1usxEJi85XRCKQXqlBmniq4zuprIY6FbVdJUOcjCYqwsiyIhW3auVprICCOwLspQlXWt1lmhldD1mKZVptJTYWbDB6CTyIQFEjEEOm8ZVWHOalUCMSimbAopwVIrPYETMusi9CRGEUIFjYk6TVSEqTrfxKITskaTAAdQ04lIalo4gwh71eYlVakEJyTnZHyPnAtZJ28pDiCBKNBJMkI1IFYwdLjYSHbWsrtxHNty28Fn2LTSjUqdCzpRTAwuhcDkWVIM2codNAKgE30lemnH1o76PTQioaIaKLkY1BITNSVygilkqiRXjDUpfq/+uGPwYMWdQ5kdmwUP4q+bdWNFKF1ElqDrgYf/4E+4770f4pYKl6MQRNFgiEuvCQ2RsbYSpnWMlVzQIZCOBvosDGmjC9I4NS3gqw1LC5H+ygFJriKi1nWGT8kWC4zttgcvmhknTaXCypRx49NuIYN11IiQqYRkO6ao/79WhmjlQa1KUXPjghKkUlLgkeEECUJvAhMsY+QgJQ66SFTTqVCx9usiztnZOixRJatxrqaqTChU7/iJ0YY49oHrw4pVGanB2kOD2MTmEL0s2A4WNXdTK6Z6HSN9sFbiq+sT1nmk6EgXk4nWSXANJbvX4sRaEXEpg4kUIzJWI6OKMuTBvqbV1kiKFriI0MdkM7RUyVUZa+KR9QmfmEb2KDzn4m2c75dMRVmtBkLqGabJkMZQTQQPUC8vBFxKwPdPipE6NlVVK2tYt5TvKQ2UDBoMYTIkSGdUyNpm67yWwecyxUDoIlBZrSYkdLano5Vxcf8n4t2hwXx6rWrinsGE1VStQcF0EpV4w1qr23BC8Q6jpjpdsdLUPEQJR1FcN8a4YB6UtInKc+lH5qApzMKWJg6HCFYcUGileRHHpO1elhKpuklAfFXa7/WtVhXnk5i/HTEf1A0ZBqUbwizpscF6rOtImsAhjh75AVjUPkvAuUPtRWK0qI44a/FEaQmCOTmjNfk5KdJaqT6TE/2zLw99NvbAAw/wX/7Lf+HlL3/5o7736le/mltuuYWv+qqv4jWvec0sXgTwlre8ha/92q+l7/v5ay9+8Yu55557uHr16qf8XcMwcHh4eOoPOKzlxDmtusmOsQ+/rHDuEwNhpTx845h1NkIatVLuO+LofUcU6ZxQanDWXBrYQlX8G5vvS/A+NR/IFnqiLNDao7Kg0oP0BI1EbLOlLs2oTZcSMQa6LhnLP9qUzFAhT5mjceS4FNZTIZ+MlNVEGUb6YeLMmNkbM/1U6HJxfkEwIrLaILqhFI5z5lgrx2ROtHhQYsFWcOh8Dn4967J9aBs2ik/T1U3w1kpOLQMRICabVLsMkT4IfbTp08WDr0rrnHZY1R0BYqTDoqbXoWKo0PynVsZqfS1FoIgwiQU1Uymsp5FJK9m6jvHIxZVvfVtK3XxANiUUwbJ2pUkxYQKA4hO2a8v27GdFLBPWlr15vd4+XCaQMVn/1nC2lZ21jesZb/XSXXWxJhE7wUp0blZMFE/M7L1OazsANEXQsJXh6JwJqR3AeHdarWiIxL0OKcc8fM97WPQmdd/HyAK7llzrTGTNpfh9sJJgroUyTcQbazrvIDb9CSuDtdZxm9eCB0LK4s4z5GRzllJQFgi9Kp0qfYBOoFNlXyJdNaFDUUUn5cbHrpKqZ3zVIKxKpdtftAuwgExtPMWkhVKLk/+M1DiJcL1MrLNJzmdHCs9I4FxI9NUVs71kYpwKmWfOtLlgmcpUM1OtjJ6te1pt60BgKIWTPDGUQi7Vslj/07gLhrR4JxJCH6MNTlToU2I9jRwPKxNLU1vLKUaHRcLcLZmrlYCKX8+omVybsmwlFyu1lNrEEK0lN4BxdHxMRVFlkjCTb9dknrC/x+PPXjAxy1yJITKMa0OgPPCacmacprlEAx7A+fTmUjMlZWpX0KTE2Flpx4Pb5ktKqXMJKOeyEYQrLlAn20GxTavOeeLkZE3dKtemzrgvzXeLWCAUvIunBS6tzGv7zwL+rBU9HujXJvPQyjvuMWZEowVgM2/H3sSQTG1KYe0j2p5u8hmzN3Dfp02GPCiV4tdoTLTie7Fi3Cw7ZvzdZW46dn/2SeiL+5c6FWQq6GDJbpjUNUM9sPHnsI30tHsy/wP1JNj8dynVSr1O2kba5GlOlfFayathQa3JY0Nf/vT2eQ1afu7nfo6zZ88+qoz0j/7RP+J1r3sdb3jDG/ju7/5u/vk//+f88A//8Pz9+++/n9tvv/3Uz7R/33///Z/yd73qVa/i/Pnz85+77rrLvlHrqZkGDdYV5xccrCu3PThQJnhgtSKLL8YAy0H4xNvuI5Q01/rgU4NY2zXJ6pyQ4v3sXTCdy5IjmnvC1JHKgk736LS3n42VkKJlZTESWkCAK/LmwjCNrPLEyZQZx8JqGDkZbdGxMlXD/VXmoGYOqrJXKr1HxiWDVivuZIWpQFZlrJmxZDvcWxYkYa6XtnXUBJf8FCZESDFsApctEpVukg3fpEIngQWBvRhYiBCrDTPL3mHQEIyGjBnJVJ1LYvFG9n8X7wKqAQiB7HyYdTFV0alaqcvKQpDFPneSRB9drh9cG8cCsG2Yt33oWjbdD00ivKDmVD7puW9g6q1/iysJa4E6WKZTmUscFtxs1mbjFPjVGTkzCBKU2AmaoHaRGju7LtWtjLw+qv4dsOAw0o4CL0eIbIaACkClSmJ5bt8UXy+e5TnPfw4DsIg9+y7U1p5Fczjq63wb8u+PJ6uNh9aGbHdNglJdB6Ri5NEiheXt+/R7gQMiZ0JgibJE2AtCjykzL0PgQJUl0ImNU0hEjj96zUZReA1GfK2lvd6Cunk9OorjB7t4cGgT32EolUXsIQhrtYNxKdCLQDWUs6E0bK0RAUMJ7WVMtbCeBtPrac8gWN9GVeVoXHOcM2NVTDjASkHJJQQWqSMF2/M2ldsCGkHm8s/RNDDkCbB29D519MEO39ISAJzHI1ig5l/PugkAUKzcmpUmGhL8PZMKvZhG01QKJ1PmoXHNJ/KasyHyvEu3s6im61S1MuXJpjhHuyGl5I30/sZDWoDBJsCUGjxpS6bILWkmsM/dU9s8GHQruRVEoqOd2+qyAljXTyvH4Qd1jNESqJQ24n26Kbc0XoiqkUZLUdaaTXRxrOwd2wDU2qIau4o5MGufay5bibfdF50bGWbCrVRCUFTzqfKSBozY6gc6zn2zhMahWAnGI5yR7ealqgc8nNLysvf23+EJRsyVOBTikAljQUq1tSjmMxyAepTp7NwtYctOK7CO1DayYauPqCFI7R6392BznzadUp/qZH20fV67h372Z3+Wl73sZSyXy1Nf/4Ef+IH578961rPo+57v/u7v5lWvehWLxeL/6Hf9yI/8yKn3PTw85K677rJDJVgbsXiGNcsp18LBtTXnrsL1JDwyTWTF+5ghkFnf8xDykQl5UrCan0aa4JcGI+NWaYeUA17+pJJYViMaSTWhJTCOmZChK4GuCEl9Km0fiBG02EaoxSLYotYdUjSzLplVLgbX5sJ6PVm30FDoh4KMI2GqxAJdVuNRKEChBjvASw6MmDLoURlYa2GslUktiMkKAZv6WaoFCp4qED1NaC43YRN9YxAk2zTgKVR6Lc4nMMTJoEkjZ/Ui9AKroAxlAvWhcME6FRJC5xOsBy2MqrRJxZ6cmDPyHV68ZDCVyiiGyExFXUalzqU8wZCjIEIKVu6KniG0rKFBlap2ADQIs1aThO9iczzV4W6HgLUSROe2+CiBXOx9pdpsjyDBtHCCiZFFv68xtMOkKSt7p0WbKEtFolJTZUrFEJJQqMFCkRqEOE/UMjGvJk5XUfASZfAgxwaGiosmeoYthiLVC0tqFBaX7uDSpX3+RH+P0EWiVI4lUbBnadIUwpQLieQdX0IiMp5kulzsNc0Jzdmp318sg00EuvN76H5k79D35ExWNIXc7PyQKgZ1d5ggZEE5+sQxy+OJkwtefkAJmkhdZJkSi1wZVKmETYmMNpfGZg7VYs52HuMQAssQWAbrtAteUmUuEVqHm2l+GPLaJhivspMaY5w76yKQJLDKdvhnqunGUIlBSFLpgIVYCUl0E2A28ndCSdJxtB44HkcmsffuYrLyTrSgqFbjgYlYYKpqGXqICameGnjAXVE0F7pkCVkAtApRI7VmYt+xzjafZ1ULD0wrTrTwVQcXuNItqbnaPLRcPCBI3plniGhKm6PFDilPDKqVt1MIRN1oc1jnVfGA2tfINNjspJiM4FvxhC4498TWr4rx02ISchnNVzkyrFEYykSXzLlajG7dSS0GNZRTXQzOHnNU+3m0UosQxsDiOCNSvKQbNmipByiKosEESJufUKy8UrcOb1qJpQVNXmo3lLrdD/NfjUcHzAJ/pZhoYmgihCjBg87q4xrsd7R2fqzhwddUqZU4TpSx0K+FbnCdMPfnrUNJVSlqiJzxOdV5Wu4va7FOPKmM3tmnCmQlRRfHrJk2AkUd9bQBsX5ZDjMJ1pX4mdjnLWj5nd/5He655x5+8Rd/8c987fOf/3xyznzwgx/k6U9/OleuXOGBBx449Zr27z+NB7NYLD51wNNCvZYd+/81BhZj5vzDE3ES8uPOsfrQA8iUocHQodKdZD7x9o9x5a4nsk4jvbu9Cn5wOkrgx4xZ+1uhCwkpkaiJmoVUArVAV5SYJ3Q06eguJjt4WkQVhFphAsZaGKrVynNRm0U0TqYfMBZkGIlDpZsynUZidr6BGo9DxTpmBqwteVULawprL620oD6G6IqcPkTMu2qq2mZswk4VJVYhMFl3UPWhkYJxDnxz2STlANWg8JQSfcksQiLUYoFSreTYNriXp/yaxCFyE2/3LgrxIEKCHbxSbEgXgREYK+RgdWjrsDZyY/RgdVMa8kCGLaJxWzJzmapVGFxrpDDXm3X+byPDqjtCc6QpJuuEwOAJ2/NNGVRnx+IfdB4NoDTxKj+IfINLArqApkCRggab/gub39miuk2ngTmaVvIKjpS0+9umI9eAlaEuHECsfPzt7+L9HTyyPkHP7rMfAo8UZQwe2Fabp9X3CUZFnMMQopAHYTGYRk1wOLsdLpvOiOqHKqSDJfHCgr2HKqFWGx2AkS2rGBLSyn+94M/aBBaHGwNcHZALS1erNng/LaIRwqsN5cu1koogxXQigkQWquwZuchGaUTjbO0F4zppI03CDOFT7HCcJ3Y35AkrR+Zih3YS7/TzuThZlZMyMbpmiJZM6nq6EOjUEJ1FCPQxbQ7CJsGOslgsWY+Zo2FgLNkOQLGhgSlsjv2myWPBgc6cFmvp9UWYulmjaOlBzzRNpCSEqEQK0kXGkllrYYjw0DhwrYxc6hJfeeEyy9BDDJQy2rqPGA8NmQP3R2XRIk6ghe1QpVmtmxlSlhwqe33v+09IMUG09yxlcmTNnksIkRiFEG3QoWplb7lEgaNhBWoBkWBJZIrRUNtcMBzS9FmKWDlNCMS+9+GofpUZFiufWKwtrGyIXdhcjz+7hmiiOpOSq+/FNky3fd6NCz69T9oia/dR8VKuE1wbNCPqyFXYvBZP0huSay5C0WKdb6kUGAtxpcTBBuTayBm7kqqQggUwIWzKPOo+qepWedk/Y/FrD0HQar69s/r1HGAxh8ztXLbgrzha+pnY56089O///b/nec97Hs9+9rP/zNfefffdhBC47bbbAHjBC17Am9/8ZmsLdHv961/P05/+dC5evPhZXUeDQ2eV1lqNV6Bw5rhw4RPFZuE84YCjPRvq1ImwR6QD+grX3/5xwn3+cDySlYo5O4/Wt9sF24TLQqBMlsqWCkyJRdnnjJxjT5fIutJJRycdFCFn7M8E41gYS2WypiCGarqiecysT1boaiSuJrrVSLca2RsLBxP0QyFlGz9QVBgQBhUGhaEqJyUzVoMkO8ScJib+1jqHkoS5jBKwCDm73kmtuNyI1ae7EK312TtdplIcsbGsv6oPNsMy66UfCguJdDFSBevqKHmueeKloRZkmK6AdWVkrR4cWQtrIwCPChOBda2sqmW0re7cDnGb2orzSjY7ZLu0J2xvfLMWZIgjGPN056BEb+HddtT+ZlZqU0GyiThttzPP7+7rp8GuVjxp98/LUV4uK0ls/lBwQWNhbk+fOUT+2azDa3snuFt0tGUDSftBoEo9t6QeBI7uvYfDP/kTQwZKZS9Y1j5RTZsFm668F4QYhUXoWMSOPnTsnygHa0Or9NTv34LN3T8VVYZFpBwsIAhLifQEUsVlBdRKRAKLKiw0sC+RM9qxrMr+ulLvX5FK8pEMtv/SfqAmhWDDHNuhMScuNXMmBHqUIZv8fa5G1F0QfECqlyHVOk6aKFrzJfYADcUdS2bM0/waYVMyrVG4UQZOysQwGQrQhWjyBwiLkNhPvQfyhliplyVVlUVIoHB9XHEjDz4uwzSfoqNDNLE7b1PeLhO2AYGNh9OGFRrimNBcTBHYSxihghbrJhyk8onphI+OJ2iFZ52/xJ3LAwg9wzBREKpExtx+VxPFk1PBSvPDMwcH4819cttxO+i1Kp0Tb1vbN7TsvHhJ1xOGEGxwrL8mxcj+/v6s4L3Zi2FrinjTF/HyCp4MeSoSEcY8zSXmKhBUWBxXQrGSliDzmir4hGOajMLp9S4tUfZ/twO/iP2pLqtg1Kmtvbn197q1Z+fWadQSQgdjjOcmm/OubvyN+QpDVCRXyjDBMCGrTJp87EXzfcgmOfN1tb2mqu+XWQS18eLY+Fu7VivLW7nOBlja/KOmZSNzGVPlk4O1P90+66Dl6OiIu+++m7vvvhuAe++9l7vvvpsPf/jD82sODw/5pV/6Jb7zO7/zUT//lre8hX/5L/8l73znO/nABz7Az//8z/P93//9/J2/83fmgORv/+2/Td/3vPzlL+c973kPv/iLv8i/+lf/6lT55zO1WYPEs03xml1XK/uHlf1ryuH5jgdvC0wHnTkB8ZbaEOgFuusTN37vPs6MHaE0x1U3iyI4SzyYOFYJVonEN2YtlTopWoSgHR17hGzqml3sCKlDVahZKEXIrmOyrpWVTpyUzGosrI4G8lBYjyPDeqCsJ+KQWVRDbvqi9F4CzR4oNcn6ydv9UJt10VVITkptYX9QJWphERJJbGPWUudoWmlZhJWELILGu2kwhyN4cOHISEMVxEoyKST2QseeRJvY64RBaJNALUMOrf7pyEMNMh/UVaytszhBLasN7RpqYaWFQZRRLR+x8kh0foDzWMT4AqHa92YHBKfqwPaRttoAHfsJYiRpI79VD6osQ1N1FK5lXs6pEotsvXvFYXA//AIbx9IyECPI2jwaFaF0oMla4iUm3DsQaGRlK6fMGRU6dyNV76zxIh3tsDU6gCnxlqDk/cBqX0k6cSZmugBVAgcxMFBZU330vJUsF31HDIEUO4IkApE4VJZra1sPDum0DLcFTsExLpFA6QPl3BJiRKJdXfT11WrsvQRDIlRYqBjnJUb2C4QHbhBDoHjbeRQMKUguue4oUlGr5VcnAZ+LC8sGg3U6jKJo3CBfhvLYfSy1bA4CLHgNGGQ+5GwIaFVs9pEhTMtkKEYu9nuHOtnvDuI8MAvcl11H54GJPfcyc4dEYLlInAwDq2lk9Mk2gUiUNAenXUxzRgym75KLHdilVmsVx4ZBihhvZRE7RKt3AwZCDaSwIHV7NtE+WILz0HrkE3nk8mLJX7h4GUE4WZ/YQeXqstXLsLYHxANxD5B9HTdCbENU275uwXoLdIIEuhDQUhBR+kXPOI4uP2B7w0ZxeAAcoFYbQxBTZ1o0UTmZRpNMKEoMyUi5CGOx0npWL703v2U1UgIJlbSZXqy2DsYpk1cjnVoXThWdD9sg6ry1MiO4pwIW3XT9iIsGWgVvE/iwVdYD5uTDwZdT/sjbGwxBdW7L3NHK5vCvUk0INZigZBJLCKRUdMqEoSKjwlDcl4e5E2oOOXxdRZG5BFZV50YJcGCgPU8U1IVCZTOmAE8Ig4aZv2SjNpqfP/05P5191uWh3//93+frvu7r5n+3QOLbv/3bee1rXwvA6173OlSVb/u2b3vUzy8WC173utfx4z/+4wzDwJOf/GS+//u//1RAcv78ef7bf/tvvPKVr+R5z3sely9f5kd/9Ec/+3ZnABUjP0aDAcGIQv06c+YTA8tJeODWBVfPCuNBTwlW/KmlEKsvslJ4+A8+wuWvvsLRFW3K7huYzE5q74oQbz+zzagq5FzRSYlZyVOBtc0CitjMEmNSWp/8WApTLYxVOckTqzKZcNekrMeJPE6UYaIbKt1QYZyQDDVb2+lQA4TodfpIcpLqKNXJtt5d5pmBirduVstiOqyduOlXgKMAM5rnPB1xhCHYPJhUBLIhUTlUGxcgFmdXRyKk+tTZEFgILMR0PhqMWcSY8ilEppJPLWRzitvQubgjbvVl6xwZtDDUykKqK6Ta66zcZX+8mmM6ES3a39IMaGWThohI6xRTgzYtuc3WiuoCXsaNsY1ZW0eSeuCAzkJdTYvWpsgGV6RtbfIei1S7t239iARKhw1J9CDEgjjdaAdpc2abNsr5vhnmbJyJ+X6eznQ1KLoMjBd6xn3hGf+/5/Cx3/tDro0TZ5IRNY/JlGBTqIdSSV1HGgqNP62iVm45HknsMah/fXZL3mWlmyQCBC7uoXrN28ADNIlwLXMXAyEYqoQFdBQlURk/ft04WAQIxqVJy46SArSuC0tzZyn8hY8LWOVpDoxLriw6C7Rqsb0xSaVEL9UFPID3TDQEcqkMuTBka3U2TZym2WKcn3XOFpQHZr5KioFebEyAoS7enaSOEIpQcubg4ICpFg7HtZWFnEvVx0Qf07xOiwvK1UYIzRUkziUL0w6UueQb/O+hqUJ7V05LxKoqQ81cG0fudwTmuZdv4ULfMa0yKQjjOFkSRONleXmq2v5oM2tsgKvNm4khsJlxr+BJVReMRFiKkmKyoEVtv4zDNKM4dv+FsRhqswg2LbqLxk1arSeKwLQ6IZcmbpctmQArrWsLKtjSW3IELlpZX9SnT2vF2EfWuTSts4n72Wm+QRI9eUDYSGtUT9aiBya+BsVlFWioslgiNKOwwXlN1d6zNT3OjRHY+iS0UvK81WeUA5rUwIavRQxosWCPXAmjwlCpQzVyMQU0ujS/X4fz3/DzTOssr+nT0zeosj1O5+BJ9IDFSMpBgpdNxdWww7wEmo4U6KMSxj/NPuug5a/9tb92ytl9KnvFK17xpwYYz33uc3nrW9/6Z/6eZz3rWfzO7/zOZ3t5j7JGvmzlBsQe7P5aufWhkboUHrqcGJdKuLjHWmEf24jt52IQxqsD1/7nRzn7TY/nKNUNOiFtgia2EMWiUvs9hVqTDZudKjpV8smavlRKmaxbQEyCvyCml1IKYykMo7IaKyfeNZRHmyukU2ZZhEUNpFKpWdExUzOMVRk109fKXkyImG5InrMUmUsJMUafnYGXdiqJQK+bAVlza2c7Bh16tJbFMhNjI63bwCDDoRYkGkmWsJG4Ro3tk0Tpov2utVayw9W+dm2eTopWf1Xjr2SP5qO3WFuLbJhHrItPaTb4MlAQsmaf+moojkHqOqMu9q1WhvJ2dsRgenekaONlm/NHfdaJtinMzhmRlmNtWduMLUBwFAR//QbBOr2fNgJPzO8dYkATlM4FrjwQmV/IBkFCmTlGM1zdHKdfZW0QrkCs9iBLEuqlnnF/yV3PfT56z4e59sDD3Boiy5CYpLISITskvkg9LHEegXNxxkI8XBPKeUpyZEcU1KbrzBOn52wQysWeIJmI6wP5Oou2OO2Akc3wuBrsHiYNTA+uWIyFo4WPLwggy0RaJESLA9S27q0zBs6mJUPOFDEOzODIV0cyleoQmaqXdyuEGJwY37JgezBTLozZD+8gVm6NYgiVVia19vDJlZ2DGsKSCHQxzYGENFTSch9KLSyisEwd9x9e58Y0mNIttp8TSvQuxxjTDNmbC/L1WSCmZBk+Yus+bIYUttbXUipJNjyiGCNTLhzXzMNl4qF8zDP3zvLU/QOiRKYIUx6MIK3mR0qt8/9TSoY+ekmtap2DvO3yQYzJ/r1VCmnDDVtH0DQZktJ1nZc1LRDMtbEGLVi10V4W8EzTyHqaZo5LMSdtpZ5qB8D2wT6X+4Jpn4htEEdhok8Ax/z69ZFFDrAwbZu5JCvJEwwLWudu1dDW72Z/fvIeb6Wjdg9mD+LnlERx3ZjNe4RoHJOGrMHp9z3NJzL/XRzprbUikxrKsq7ESYktWfC1GMVI6NtlKtw/CzIrdbd93IjMG0/UPo+dh1WNGF1cf2zTZm7XHmOklGKaVJ+B3fSzh4x+4Zmyb5quCns3MvtHlfVBx9XzwqiFvVv2WIlANUGfhDnQiLVeHt39Mc79pduQJyd7J93kDS2LFqwmLc7vzF7z05IpY6Cslalikm0CkuwQrtpbR1BWhnFiGCurqXAyTYy5wFhJk8K6UtaFccyUaSKM1rIGBtlPYtBlSsoUzSkFR5uSZ9oRQbOycHh08Ba7qEKSuGmRbTVmmOG/5FmK6EYJdPK/dxLINTP53JIibVC7b1KHh4MIncPjfTQFTNMjCXQhWYZTnR9QHHZ0RKKoRezJNVealsoGlrYDuXFCDBUzqNJagO16Zg0aMbg+lxaMNK0aI/ipRw6NAb8ZQMjcAdB0VXC+0zxErAEMjhk1590Cx7l9sEGojX9RN6sqgHWHJKF0VsYpfs027K+S3TnZ4WXZdFv8ptAL+DWK81MaymS/1uDjkoS9SweU6RoP3vMhOBm4Po1cSuLBqDIEI3MPxbpS+pipUeaZMJJBrp+Q1ILhhokhM845B23mDAPhfIdEhdHQweqfb5vAaDig/b86eiOi6LUV4XCEy6asW6UQ+kjsTA8kqgUJxmOytbPQSqnZC3swivEaDuiM5CtKJ5FSXYMi28GVSyElc+jtQG41ebQSU0eHlbVayTJjBHqt2OgLrBzTx0QKxhqbuQ7Oq9BSOH/hPIfHJ9wYBlZ5Aq30IdnajwGhEkI6FSarNiRI6VKgi37YOBoRRWzGTwu0/WdjCFQtpNSRS2WVJ67lkUfWa84IPOvyLSSJHB2PjNNggWcwmfZZ9yqaCmrXLVivT7zk651qYkF+C27bzJ858A7RqPa1qUjLHEB1acPJaaNHRCGlMPN1YowsFgufoaQkiSZepxmhR7H9bffI15QacmCIhRFDp2rFXkNNbIBiShZsFSAcjixGhX1tG9vKs05yFgkb5KMd5sqMwrTAUvwzniLNzgFNQ2UMudwEDJuAxmsBTk9wHafmL0LYklEQ/z3WDRUqNjhztAYQOcnoyeRSGOanrDtTcZKJ7V4Ppq0kZX5yKnmLjOs0AdpIFPPJVjYMm8600Jvv8/J/s1KsQeEz5bTc9EFLUAz+coRAtCJFufhQZTEKDzyu58bSIvL+1gVXo7BfHF1QQxO6ICxDQo+V/NaPsv+4p3DYF6TaYR5jdKdjPyfRx95VO2wzNvI9ryfKKiAlcJACqY8wZWMahI6SKhoLUx5YDSPH48iqVPKkaFbiOtMPFRkKnQvHJQL7AaJWNAZCl1gsFyxjRLMxxIMHUqgHMckls8X4A1WtzVDE4MFO1BwSFmQUR49a/Vc8OAgSCVoxxkgheY2y+GK2LNNIg6HVrYmEUumIRAoBHzjmeySqshAowfk9ulEgDRooErYUjQMTlYW3C/YhuWy4lddK6BBJzsFxWFwaS14gbB2OcatE4yKCtYEZW/VbB9zNEdXq/AbLuopm00dAWpwAQCkZESVK529hjirGYO2LeG1eMCeqlVoFCZGoSo1K6YSpC0xdIIdoZT5pqI2ra0pwgqNdqwVc5pCCd8pYdmqQsIqp3FowFqlBiZfOEMPHuPqOu4mHV3kkjzw57WGzrmBUG5Q4FLWJvtGVTpM9905hcZxZDBVN1ZJNNeE/x71pXK+mi7E425N7QQYP4Dzziy3t9cCxtkBU7f6WWqnHA/ETI9zS+bOwrFmXkSrq08utjCaq7MVI8nKgtK+LdWBEd+5RLbjKWiiSXOa+mhKv84JsLER77sWI7BLoY2/IEBhiWibGbN2FQYUUxOZwibesqx2UthwDeRw5t9xjWBc+sT7heJooWujE+D3LriO5omwgzATNrHnWhwkxEkJ0Nd4A0V4fJRCqzutWSut4q877KdyYBg7ryH2aOSmZrzx/gcfvn2Ofnqv52LrxPDNuQWWKwUqVwMnqZG5+aPwx2w/qJRl7xg3ltSjFOwzDZqZXO8CmnL1jy0MLqSyTBWApdY7aBNbrNTEE9vuecSrEruPG8USIVhJp/BnjGJqqrqRoc3NKQYsnBrUlWHXTjYPP2jkpLIaCVEVDmEtBhCbn31ClzQTmTTjgROIZAfEuG/X257bWW+lkq19ZtAVWzL4lutJsmyLtYBFtnprqNhHaODdFK+SC5EyZKstVIQ4gGulESGwQYwW0JT/2Do40dqiOcyCXm26M+mwmrFRuremJNqKlcVxM6XrTUt3K53MJ7TOwmz5oUW2zR9rGUbpBuXD/iAbhgdsTxwtz/Mtbl0x7HXUaGIt3f2DM+iFUzsQOed81Dj46ceNJhsIE3Y6YN79zE+sanFZyZiiBVVbKFDmahKPScSH0dJ2Sq5WAxqmyynAyZoYxM42VXCpaFHIhjBPnSjXxOIn0KH0KxEWiLBJ1megXC6ImyslACBldjxawVNuIjQXu3EWkOkSYoEt2WCQ2GaoXNc1xe/mhqb7iQVtXTckzZBcQq5VJKqKFHtOqmIvAHsCkYGTciJcNgs+X0UpXbRjdIgpFLcdOaoFHFeMMdNVKd1GbRo69bqiAJAYNTNUCzmYzmtL0ejwTasFJ1QZZ2+bftm3i3KZpzzMhWh3c3js776d1x86f2xbFTHaL0SZ+q7hoFSZmVvzkk2StrQQho4zRSaJ4VufXteHhbPVFteuU5ujMwVhbtDjXZfP6gpIvLgipMjz8CFfOXeR9x/dRY2IfOApwopUS+nmd9ymRi5KCkkumlsCZq4WzQ+XBM1uQ91wG81bMhjQB+aBnWibSDUFz64bwTFi2yrseeDRV4ShCnICPXkP+wp7V70sg9IKcMZXYqBbYDTnTxcgBibFWRix8Q5RRKgvC7OAVjP8VYF0LUQuJjbrwiCvsVptnpWpBfudI64R3/lVlmPwzYGunS4m9rp/ndymbg6yUYuJnXcfVo0NOptGgdUx8zmZ4dXTBOlgaHwsPCJIE4844uhKCaSMJGOfOD74YwswPaeMeJEbWuXBcCg/XysfHEy70Hc+9fAdpqoyMgJVqxnGcy1DGAbPRI5PPQipeL28E91qsBV7EVbXbAaXVD2yd36uUQtd1MxIXxFA808sx5DrGSPIxASklSiksl0snIBdC3zmBHTSqlw0tMMH3XNZW0sR1tioU8caChlp6QFkN7WQ9sTye6C4vGHwfN0e/CRC2+HDOO9mcBFvng24r51qg3uIWmRND+4LFNE1GI85levvl1mwgtIBFT11HuzZwwmzJMIKsFFlBGJVYsbbpABqtRBCCD8OlEWXNH7bu2Nn3sUGnFe8gw7WQqgUr2+0+tp63Oi23ymRVd+UhNz9wxTQaBGFxbU1/I3Nysef4osHKWivpQqC7ZWnD2KqwUmUZA5ILIRdKjOzdCNTfu4+DO+/kpDcovsyLZetcFjt+YpBZJiyXkXEq5LUFL2O/YOor+zkQdWQYYT1mxlJZlco4FupYkVKJVVkWOJMS50PgXOrYz94K2kV0GWHZw15HWiwoBYZOyIcnaImmIbFVimicipKtLtzHSIwmGNfF5FmA6VxYImTA6czJwIlslhrT5pUsMWXaUisjGQkmg25y+XJKARbPbkODqqvfM6xjZKIyqZpAG7jiokmc70siiBPR1DIJdU5RVkPJRjVOgjqzoUGSzZFbGUXnw31Trmn/dxTDFWyDIxrgn7/BsU2GusG67l78vLQsyFGedg1KMEG6UgnSeQBS/H1NqC8EQ4NqwDg+UZhCc7L+R5gP923Y28TSwixY14SulFZLBifp0GagaFXqfoec7Ti3f5GPXLvGSTWExcbPKQOm/GptwPZ8e0upTZAwRvZuVPbWDZqf0W5HdLx7iUZkrOT9nrpn4l8pJGopXm6TOUBuCF5zo00pJxZl/dGrJL2DKRgMTRDivpUgOmnaJfYMOhWbCSVNA0ZZ1cpSIhlDcqiG3q3yxNKTHcsxzdlO1QYIZgyx2QuJ3qeel1pNnXmcWE2Ta1cYmpg8UIcWyG3WStXKNA2cPXuO42HN4TQw1Mk+oxg608XORmxgk+qro0ptBo8Wg+klbHhNItaJ1YUIvi6k2icKwWdbebloPWWO8sT9w0DNyjNvu5WzIVIlME2FMmUkOfcruCYLQhlHNuIUvm79gKM0lWfTeEKUkrOTg21sQTvEqqNE1ctEwQm2+B0z1VUXYRSZA6fUAimq8ZG0Mq7WZK0sYkcep3k0SCtNtIBfYUaQ2/vOiW7YdMygoFmRdQbZm9fmvCJlw1tDNltspsULc7JWK8S4QcmiI8W0MownULOGy1wiclQK3D+3e+6/zV/Xvr798+JvXrMSBmAFugbUZrSJ7+GWWLTPUjCNLf/q1n+bb9PZz1Vts5jKPAqmkYrFg8ztNFBbYhbsXtTPEGq56YOWgLURNjl0WcPivhP2xsKDt3ccHZgTLQGmqOw97oD84et0NVPVRJMEJalwNI7EqOT3fIIzz7mF8cv2bZzhFgzXJngaabS4Iq3JSR8EO5JuTJn1SiiTMo2FVWcTMccM4zAyDSNTrkyTtTP3QThIibN94HwVLhI4V4UzEumJdJ0gex1xuaTbX1JTZJgqU0qsSmCcTlgNIwju+G1zKJuNIUFJtbDsrJ0SirX+qakttha/LMb219qGlVnQ0cdEQdnDCHaDK1aaEFxFJfoALz+IKkayU0MOJq/FtK6erJUgFZFKUnPCo9dwm55E52hDkUpU56y4kmmlMpXCBGQKhM61KeIWrNug0E2WYwQ0Nk5CgmuxyOx8tyHeNq9E0FlkzpyEd53M1+SbXdq6DFtt0h4guaPPVcmqdH5ztQftBInWC5HxLii1TqLt7E6FuZ05+AE86zqItTCDlUxjo76ozo5NFz31UmKfS9x18YA/eeA+QjYUbJqEHGwG0lozY52IqadxuUK3QClMec3iqBBroUikOHG63QDjnvj9VkEXHfmclf2iT/gVb1OGQFNE1mJt3QX1IYCFUZTVfcfsnQirg5Ye9Byc2+NYHiFqJCZYVEtAVJyIHiJBXTBvEkJv4PbkMv6V4LIBYusliJXzRJlqZajVSO8x0juHIgiMAuuxMha1BV6yrwJMi8V5K8XbjbVagLrKA2f2epgy106OOcqjvSaETVs50cjfPmxxw2Nq/BH111uAbT8X/TPjw02jISJq2kuIDRjMeSRL5cGy5lpZc/v+gi87d5YQI8Mqsx4H45MV102y3YywUYK2PWL7pWzN5goeRKn3crcynqHUNo6jOPm91GKzzFI0zl4AicmfhyEziYgUy+CnWixp0MIoxTos1dC8FDpKtbJGrsrkSrgdMneqtJ7SDVoAQzXEKyBGxHU0QwchHGfHEcRLi9GS0lI9eGkOZLPXtUUk/q2G5NjOtQBKYpjRk+Z/NiGCWfQykLZsZUZTNmhO60RrnUWzf9dkwxwnRU8qclQpqwJq/jWIevu2lS1LKXQxoZhiN7Xp2WAobcXYP1KRUE0hWoQg6h2aeU6KWsAk4vy5ljyGaJ1bbXTDLmjZWOctjkWUM9cyF99/xHRwlvvu2GMdW9+IRa+3PPUy6z/4OFOxKci5eEtehFArxzmzOFLCmz/O2TueztUzebNm2MB+oEZw0kCUSJXCUiIqiVEHViUz6sSYR9ZjZ8hMEaZhhFJ9TLy1RC+DcH6x5EJInJfAWYmckcCeCkt6+i4g+x1xeYAsOmoKxPXEUDOyrsjJxLpu1ByLtvZiPYUi9ME6GjobIoKqeATscvjBdE2siTDMcF6L//eCseiLONSoTYjInG/rQyqqLtpkG794xtiylSxK8cPY+D4WOHXRAtBFEBbByMWtS65lTAYfO7kZ5QSlz4WDWFlE5yClOBNO2rOaXYR3Us2OpmVQ7bdIc9UO6YrMCFup1Wu0jhyJOrK0gYZbmyVN7IoWrHhG6aWj1vUSghIWgRyV0djBc4t49TLP5sDYdA3M8GtzcjBfq/2dra9t8p9xEUi37lFX+9x62xW6u9/JMUqvNrxwQhgJfogYryXG5MNEnX6nlXOHI13eY+oakrYphWiLENtzS4H1xSVZR4Op/boqLUvUedRALr421LuCBOqDK+LhhByYFH4IQjp3wCSwwEQIF1iZsOQyl2JCCLNIVhU/UCuGBkhlksColT4mP5AiRQsnqpyUggrsO6lWqlJjIteJSUcmaete6MQGhnYxzYJ/jeOhAcYpoyqkfo9Hrh9yNI1M2PTuJGH+04XkgaYRYRtB1e5XcLTM7m3swxwsWIZv3IjJtX9yzrZvg5j6ba18oow8UAc0ZJ534Q7Oh44bg6HDRYDkBEyxA6sRf7eD+MbvC45a2NDMxmfJ1FpIMRkheB7gaDellEIMgb430cJpyohENLsP0kKMxu9IXWK5WJBRjlcrqsDxuGY1VlI0wjIhkbPLDQTAr8VIrNE6I8XE7pruSFbj/knFeEvinaIhEit0RyO92tlga8ILI8IpmoCRcq19Yd5jGk91zXhN2v1H27cbdETbNvGERovOfsRKMVucE7/nwatGKhs6BIgNOp0mdJjQYaQ7mUjOdxQ5dTm2Lhry5M9um7fjPd+g1eYkuT8XPLFzp2zry3xtm6d1OgzTGWUxusEuaJmtEYR0Uvp7r3Lmaub6k/Z46EKHhkASZ62Hyv7j97j90oLr64EHsjAGWNXCnjvJMRqptb7vGuf++BH2vuo8Q8dMSttE2r4A1X53h0HzirAngSqmu7JiYpBC9bqwaEWLkVr3Y8eBJM4tei7tL7nULTgQYS8E9mO07puwYNFHwrIjxCXSd6aMGNcwrSk31nPwQwV1qHrQ6u18Lh4UvLtAWiQciCFBLSaV78JJ2VEjwRanFluEqUGIJgAB08hQskG6Du1KiNY66gdzI56ilqEW2rRPE4+r6pocnkwENbg/qRLVnFPBxPuGaiMQIkKvglQlS+W4KH0IrHNhL5gQXdBAF+PMMzC9F+YnxNaGt6SnDdmz9dQcgfi9q6U0VHjekC1UsZhoQ/JtU7xnuBp74xa4FN/U0bNREWvxrR3UKBtSP1vwbzUIPni2r1vfE7Ydon2htSzWunF8jaOkEbrbDsgfhKf+la/l8rvey8N/ci99DIRcyCJMCFlhzJUQOyRExGfYpARnB+HiIwOLopx07RpwXgoOq7dsVE3g7dIeNRyi2mB2yxTVT+ImoKfuJO0DeEfbUaU8eILcsSA6+tZdPGCKdgiVUjiQxFIiBSs9BREIwnGp1GDK0FG9jR6BGJi0sioTSwnEtECriTQWJ9bGFG0Kc4h0wbg9k5ro4bB1mEcJLJLPaNqaV6Ri05DX08T58+c4PFlxbRwYMH6RtUR7R58E92OtBLDhgRi51Fp+gwRiSjYU0NtvWzec1kIutqfaWiy1MuaJI808NKw5GSeefv4iT1qc42iq5AlI4hof2adymDJOm2geY5j5M6aQav7DtEq8JJLVNZ1mTVyMmGnoCghdl2xP51ZssuQJTJxOBOvq7IzfsRoGYp8YSmY1DazriMTe+C4zaqHz/g3SzaMdJIVZK6lQfRirlWL7xuWLwTpuQmSqht7Ew4FFFVaIlzrbnhefVSTOT7GFLv46Q2asND3jIrLNTdmg9aeKKGLv1NBhw+qZy2NzWcqD4KaKq7MH8uSxFivVDROsJ2Q1kSb7TKE1kEiYf724XhJYYDsr7AooNllaczYunhgCIxsH6ddg15aCz9hrZSoPuDcfsVERdkELYA4+U5EonF1X0oNH9HvCA3d15OiiVNKQ60A9V7jy+LNcuRGoh2se8kpbBlu4wRR108ma4zd/kLNP/EryrYHamfhVI3cSLCoOGcKY0cl+SYwJiYVuGThCiMOa4zowBndOudrgKImIBM4s9rhlueTSwR5n+55FiuzFjmUI9DEYsS1Em3WTOqYoSKmUTshBKDKRw2gIgQg1gWYLCMYqTMAyCIuWbbhIlWghVoPTSy02chzoaiFhQV6Zp/b6xhVzyjZPpaNkO2Bal1X2FtESICtoBmkRO3WW1q7qM5fESiXWGlrtoABSsOGN0bk2Kdp8l0mUIJU11l4ZgjJJJGpmWSf6Yo6/D9bOGpCmwYVq0ymAJHVWU00Ofxea6FxbWfagyzb/wuvcjXgqotapwgbLqbiWhnhRpZrg1rz5a5NY906uroeU0BioQVwoEFofiwloWTu7AV8WKJXm98QzpYa2ZAWtaFAg+NBH/75a+WW6vMcHf+dPSL/3bm48eJV1GbnSKWlUJlXWWlhVL1OFgHQG5xMTISmqmb3rIwdD4WqKTDHMoosO/fjeFHCNosWFJSWBlOqRiuOftYHk4sGfKbGOGOqj2jFMGT5wTPesW5iClb72L++Tl5BXpiG7L0LUzORFjRQigwonRWzCOmoBfGuZrzaOolOoJCRUxpxZlxHVzCL4mIEavWsjm/J0LuQSwSdZG48lWSlHwqxboti+GvPE3nJJrcrV9QmHPpU5+kGXou3tFKxDQ7WhKb4KdcOLSOpjJfASarADNDgqYvOx7JkjJgg3VSMVX58mHspWHv6qS7cQF5FpNRJScIE8m5GWq7WLG9HUynj2nAxVCECVZIcQ2QMqD2JU/aDPqASiJFu/FbpkZO6SB7rYbTgVRSkFSs4G9UXjrEhMEIST9Yqjcc2Egib2Ys8iRLJMhC5QpuLq0laKLFVm3lIMgpZiCHSMTIJddwvsiwmREpQSC6EIciOzp8L1EGb5A9d/ta4ZdKPnhCHtM42s7UXZDNmddV5OpTuNpJpcGbduAgKx59oC99kfiReEdBMUVTUfQSmEaaQOI7KaCMcTrCqShS771m2JqPtAtFJjcMTIZR2kXWX1yREB1dFkBoIiNbkfVNur4KOFtkm3MgvnmUZV3orRthi7n8Zu+qAFrAQQirI/VK4cC2f3D7hvr7PYgian7poMfSA97hxPeaBD8zX+ZHXC/epaJ2KLMgJShfDxI/LvfISDb3gq1/tiDk/cxVaQGpAiUPz1auTIc0noa2a5CFyPNlLgZCqMw0jKFuWmGDi/2OP8YsmZvQX7e0v2lwsfXx8JKW6QCoJlCaJMJcN6Qlcr6jgxDplxqj5WwKieRQJTrUxYO3EbXd/KRJsSrGVJVEOSLHips7rsDBfiJZYQHF4MLsFu7BLUpLdrzXM9f6yFAVhpZY0ylMqETfDN+CBFL7eI81VsYq5nn8G4Bo3EJ01zBmbkYt58eWIpkb2QWESlrzaBW2QjNy9B58OkkcjUD9jgn8uijjqXF7bLKnUOuBwilg1ki99bYVNqKvhUVPF740hOaJ8P0/sIMVKizRuaklDiZvAaOERNQqSiYjyDRm4zvoCz+vFulXZ92kpKluWaTzFBwOn8Pis+xCNv+x/cysCDtRJjRxR7ZpOX8LIaMUnM60FK1EUg5MzBjTXnTgqypxTxrCrIDAW3gpmKic6VW/ZYd5XFiQeybN1HrExbnHjdRPOy4iUy5fCDD3ExP5ncW0lm/5Y9wqUF9foJBwrnYocUWITO2lyrsqKwlsqSRvRtZVDrVLHxEYkk5ibXZWRQKwtFLytEz5BLUJf0t5JH9CQgiSCi8xqrzkWpGCeHGOj7jqtHRxxPg01V966eLiSSdw7FRmAWC0o2aq6byeJBNsKQihGyU4rUnC2erkIu2eF8KGrSAFfrxANl4EjX/D8XbufWuLQp3RIZpoyq6cnkXGiDHGeS6lZZo2mhmBqq+Y4m398y+Vn8zv0B4LOEhJwzXermWTdWIjTkSqPSd4GYlBhN3HK9GhnyhGolCSy6jv3eW85rmeeVWenWJ1CHDRKhqvSdIYRFFUrx6esVDeZTM5XqOlIhJOR4oM+bEuz2vg4hQNNY8rO7oTHuLWmdfOamPlmbRDwI3KrXOMIhjqCEEJzr1RAKEGlzg0pz3LSuLkOQhakAY0HWBT0p1CFTSyHEzvKIanvLREf9HGj+fQY2LUW1SdHus6ojKgixBbEaLAGQreGi7fM2TqO4GjPMpfFTt+LT2E0ftLRFJQHiWLlcEou9nhKdjFWq34UGWirj5SWX9ia+8vwZk7VfrTkslnl3AqkqNQS6MTD9/gMsn3SW5XMvkaMQS91IQBfLfoNGG0ZUvPySAmdCZK8v9DkxTIUhFE5CZ5kw0Hdwpguc2xP2Fom+7+m7nhgjsVuaOmpbUBUTmysuOLeaYH3MeHjEuJqsdTpXEsnga/XAACPxZfVx6tFgO+MSuAy4bxSpxlXIGLm4hs3Bs81SV5HNwRtMErrWQhZDaxrHZdTCmsBJ8YMQYaWwLj5vB0AM6Wks9E5sSFwSCxxRNRG7WgmSKJqtJCWKSiR15owylWvTyFISi5DpamJpogSUXEhRZkXIIIZ1WpYwpxb4B9xeWRt+it0Eg2DFCd/2A6jKrLw5w58iVMkUMdXaSTe8+XbfEqblEWO0gCVinUMxzBOhSzHRM5PglpknI6KmxyH4IEELzIM7i6bp0kgcWsPsyDPCdHaP5W0LrpSL6K2XeOCRt1s2SgsWLGAZp4mshU4SjWmrVdCYWI5wcJSRW9qtKx4oWVDS7kX1/wwXF+RFK6+2tbS57eqfpXhy0eTNjZ8Axx8/5OLxBL0d7uFs4sxd55g+dEJXC10KrNeVEKqTWWHtA/UCwiDV22rt/VWFdVXWmol9YJomJlVGipU41NCt6AfTVEfWJftQ0eoaKclQwSB+nw3iqGozt/I4cW7/DIerEx6ZTlhrQSV4S7O1US+6zlqpxaZVmzzAJnAOHsxsygTN53lJrtpnhmRDHZ1/ULQy6sS6VB4qE/fVicv9gq/YP2fk4FwZs5Mv6+glHDsgt5VYY7RgplR7SK2N1+B+3x++7tSR6vZQ2/dtCxmCMOUJUQ/SRCgUsmYkRjucNTCsyyximbXSdYlOrHsxqAWPLWloatxe8ab6lGNth+pWZwvVVJMlCCWI8XdQK7n4J+5XhW7a6j2ay7DbyQkbTsqcxDQcw39udgXbgZ9jsnOZyMwk/L0MWFsX4Ka12YIEBzla4uVJW/SERLNSR0VWBV0V6uhTr6mE0HnHl/OsWrnpk4KseW+KGIBUDZ0EQ6Y0GJdRSASJ6BZCNF8TzOtUvdy78aHb+hB/ut30QUurj4saIW4vdU7itIM1+x0I1RjxGpT1gcFcdx6cJUgiyTXef7LmGsVQlnkBKnpj4pH//gEuXDnDjccJhUTMUIOSqoJae2KqlVQTSIfGQu/O6Ew1fYthnDhZr2xmhmdWixRZ9omuT8QUDU4r6gJ0vhCGER0zOmWYMrKekGFiPDlifbRifeOEMpjGglWtjOtRY7EMQl22PoJUIyCOapwFfCFHMQ2KsU4MMhKkI9XN/BOqTXS2A8UQj8nlsYvPUprUJ6GqK6pqYSTbgEOESQMrRx+kuhaAtx5LjXNduhfvOGkJiQpJI+JaGjUkstqE2nEy5cwaCoeiLMpIPwX6DkJJIJGkgVIFjYbcKF6fFatTqTvVJIZwVD+UjGi7JfCElYOMkBc2TqAFCcHuc6kmNZ89eCu4noSjB02NTUTpAkgyyF9FKcGUmEW3lSjFoX7rUIlOeqkBUy2uFnxVtc4vPx9shlT1ej9Okg2eTS2EvUtL5KOZs1ceR0kRss2KCmLPsKCsp8G6DPC1mEdCsHvRTYULhyck9m1IWrCW1zafR7ykkgiMqbC/v0c5EHhYIFspZNxKOrVUD1Ksk6OqDT+sYm2ww/U1w/3HcMtZy5gTXHzKBT7+tkc4GNVR0OLky0pTuakViNZhIsg80mCthZVWziB0EaZcWFFBI6lGEiY62XvXx+i8phrsTaOXaJSAVM/GsYO7BqFMlYvdWYZJ+cQwcFRNqKsTJVLZTx1dMO6GqhqBODhC5mgaczbde4mjzChaIrGM1kBQisnfjzUbzI+tl3UNXCsjD5QRpfLcC5fZ700uYT0NPqtHvbPH1lWb42MEebxlWmhDU61jsGwdTHbY1Vq8Dd+fpR9hKhvy7lRawmZ8iqyFEZskvUiRRCRPNlByxBKvlHr6GGcEtkuJsViQY0JxltXFmJjyMCcPWqsPEwSw+VldNPHHUSvryQKfJMnkB9TW/sFJYHlUSZd8qjNOMfClGubOSnv2BePuuDjRjDYUn6sVCTNCOy92v5NBfdhqC5rEfGtLcTZNAMWRtKY5ZWWr6ElmKRnNfk6sK6xs9lCnQgfEaJ2GSVpDQNhCZ7dJ/eZvcq1zAmd+qMxXbXCxIXLGwwr+tdBaVj0hZV7bm4D7M4NabvqgBWzyclClX40sSiW6NgHq0FTdCP3kWsjLxEqUW7Xjjj07mDu5zofXJxxVI7xZrVE51kD3sYEbv/l+9r7ly3jgYqYn09dIrIGYhZgDXQ3E4tlGjHQSWYTIUhVCpIbEFAPjlBmLSbVLCIhGcq6sWaMhkWMg6nqjx7EejTMzTJTVRFhPxPXEtF6zPl4zHK+s5o+18mWpFpiUTduk9/T6hrBDO7s4XOPNZC+HZK0+0BGbBO1IzORZpvFShKEUxpLngMUEvcxRDmrS81Urk1/X2A52ZM54fFa2QfDVCKkDprwY55LNphNq0spKrVNgwrqlFhXED7GjOnAQIvvVeCsqHQUjKds4KUvHzMk2YrXOhFX13aYe0NWtEpHBw+L1bSwJa86nfd8J2M1Btd9TddMG1WDgGE2GXiPkaNOIbRarOY3GWWk1cvcYdn1VbRq0f73NNzoNRbvTqOrFGHcmVckhwh1neeQ9D3FOnkBc7lGO1/T+zAaESWxo4jAVFsVJiDkTmsx7UfYOlWWurHpTSGpaNc1ZWTebBell0VMuLMgftd/TCMkN0TLovTpEbW3yWasp9AqUsXD13k9w8RnnKcHg6XNPu8xHzn6A5SOJKRc/fISOyEjlWJQhwh4WsEds7sogRkLoCpxNCaEy1OyjHpIThIXYJUKy4Z5TrTZR3YOodqcXrUHWM9IqSs2jEcH7yI2jI9ZeshHxoYZAHyLJibSthd0Iyczy7aFB7dgk5xijozB2XHYhGRox2fyyhqJOakjnqmQeqCNX88gzz57nqecuoLkwjcarKeg880jBZ7dtsuU82fpvyrHte6Vl6TR+nCO2sRFXnSdYK6FYh0mKJrOAYDw2LHEquThyG1wDBDTY9OaGJKQQ6ZMpgK9XK9MPqtEPXmbV6yDBuVwtmPLkwMQSyEE4rhMFpU+RWDBV8cSmu+w4s//giv5xPVOCqsaVEjtMIHbzs7Z7orRhL+3rpSG0nvDMUm1bB7iIzCKXOvsSTvmKti+az1BRhy7NHTSuYc2ZOhXqeiKeFMrRSF0XKAlJp8cQ+C+bgZ4NYX4+Mv2aNiVqsGAtip2JgrIhXoVH+R1Dk8LshDZk8h2nZbaEcJArMozcuG2BnDT+AjRYcsbAgjAmuF5GTlaJZZ+4fX+fLsHetcB9JwMrwcbca2UpxqZf//EjdL97Hxf++uM4WVRCjYgGFiRSjUhWOt/YVWXODCTZzI5YApNkpgAnw8SUi2VHY2UdCmNvBNyACwvlDFOhy5W0zoT1yLQ+Jq0zcchMq5E8ZnScqArrWg36r8W6hhzmbwJtre0418pUxdqO/WsoplugleyBSO+Kk6HVqaORDHOuDKWwVmXMmYwNgcyiDLUyUSx48v2x1mrloQA9rqIowUp1YrXoFOOsgrpVEfasz0iti5BYl2lGHdRj/0IgSCRXWIfKDZ1YFhvaqAI9Pobe4XgFQrVNZhkgG1jWkg2fiLvVcujoRqlG+N4+aJPY9FwJaZ7T0mDRurXrN22jgRA3cuakRI7ClHAyLs7W3wQ+otvZiq0xm/Aqp77eXMd2KaGhVW0DJDFC4vFtSx7uHuK2/SV7F85zdHJinyebCx4VTnLhZDWy1002oiCD1sywzqxKIT6c2Stw3TN0O5Bbc7lfu1iD97QIlEs9JZx4Bl5nJAscfvbrr75dbd0Kk4Bk5cY9V3n8ixasFhOqgf3HnaF7/D7dEdRxQIPYgUegqhFj91RY4ATtNjRTzDsciHAhdeQ8sfZZK7FUlqljKWJicmp6QJmN3ojaJnXFZzwbVg/6M9TMwdl9rh4dcZQHhmo8mdYavUhxzlKlYuVOvw9BxAhlHghZmN14IuKdgLDsrcSkRSk+Ibqt0VELRzVzrRYeyBO3psRXXbpMP00cFTtErTRigYZ1LG06v9ra3m65tU4knxcWtwYR0lph1YsRjsaIPQvrXrEjues6E8F0snCuBRS6ZAJ0jXM05olaK51Yl08thYwinskncU5FwNBkjFM0kDd7LYBHU/M+MVHKQJKKVEuC1tH26UIDEnoWOXLm40csn32GG8EZjhLAuU7qZPEQgndaFZDiZOgNYmEB3lZp6JPOrO1W8O1iUQht5ElLcmT2T4b+bv2sqE1stvkbsK5wnGFV6EjG0QnRgifZ+DybRdZciWz4esLcXdnyJNvZG92ZFExuwgZzuqBhcKR85q5s7kXrYLNEbVceAuxhx1pZ3BgYcub+p5yh/Mkj1DoxSEeqWzVVsU4WRLkxjlw9Uc7UJX3t2KPj8efPskwLHl6vONKJMQiLUhmSwqSs3/pRLl06gzznEkEjsUQoQirBMgqtYNQRY9uLbTARKycRAzUXcimsh5HVaEQ56RLXjg1hWISA1ExfCt2kdDXQjYW4HomrAV0PMGaYFMlGsR1KZV0LKzXyXaUyVlOb3ZeefaAirNyxdTjPwjPmeXaPHz5jrSQxMbq+tUpjs0xEFWolZ9N+GMQIh0Xr7JDA+GoTNkyuBruutRar53sGHhRCTETxmTBYQBGCCcYF9VJRBSWTgkf4dVOHbsRh48woh5OpnC41EqXOWhESLBCJoRLV5xNlIEjDLxAnSLY+IHGnJ9HG2ydMgdd08uKcHW1qtjhCYzmg+mGgYg4+0VtmqGBkqESJyrQQpq6jJJtjtWHiN5Q2zllPxZ5Bk75vJaRNyNJ+ZkPKLaJz9pYxcu10yzm6L7/CB9/7xxytV2RHngpKVmGNIWSrOrIeVkQXoNJSOTw54cZ4wvQw7I0Q9jblvQZDSWgt39gskqgMtx2getWQjoYqePtsoc5lOPV2YcMTrMtnAoYPH1Kuj4TbfRv3Hbc9/TLlfQ+SBney3jVCVUPXtBK1tZuajLsASW10wUFM1JJRhRSEpQSSWmkooBSdyFip1cTP2pwsoBhfQkLwAYKGHFzcP8tqGDmc1qxrmVGySKGPnUv8+7NsZRd38jG2aeRsYPcYKNKaBJSDfp9IYKyF1bhmbPyPWpwEr9womftLZtDKMy/cyq2LPVargQr2+tIOkEiIyVaGI4sh2K9VD2AsiLc1X0qxg5pW1pB5/edsU35tCTT+RrJAr2RSMn2VqXggOE30saeLkSqZIWcrH2PCi12ARZ/s95dMv+yYAi58pozFlVmDcZ/6kJhUIDpJPVtQJLGp7Rafwm1jM1ZaONFMH03xeC8JvQhcGzkzKA/3riaLoJq8xOuq1i4cGdXJqI7wNI6ljRUyz5I/6cSShmqIujj3hpQepHXdzCmIDcMNxv9pgQvaOjdtT9bpiLoekHWFtTWKqFZE44YsrMYPKzMuqiYAp6bcXQXvcnQZhqrUaqXnhHcq1TCr67aAlfb1ubXWy6Rqc5OIMktXfCZ20wctqNJl5eDqwN5ij4/c2fNwOGCdCpGOKWwyd7C65SRwY8pcW2XWU6bvOkKKpAh37O+zd6ZyNCjlODKUwknNHOfMcFzJb3o/588tOX7CBZggZiENhZjV4UCok2WNVQJVl3Z4aTbdlnHiaBg5Ohk4GS1jnYrP8alKr0KnytkKBwX2aqROmTROhHEiDoOPGk806fPjmjksmbXFVlRwZVWlauas824MmTCC7ujloVwrUaKRAmOiFuv2WefR2uTE4F2pJkpnXTVYpozPFtEwl52qWPnIujOsi4LgCq/iEDRW/04OLXbVJNRbB1cK7fRzdMgzuFgt+20aLxHrXiAaRD9Wm1K8rspqyiy7SOd5jOm2VercuWJdRTW3zMICKYtvfR5Oy2r8a+AQ9JajNkR9o9NS/f86OxdADeLuHGJNovQhIlGQRSRHpfjMoQqmi9JgY2nQ8aZeNM+ECafHDsjs6HS+rmbNOUYnDZc+MV7sOJ8PqB/9OMd14lyIiE4UYFBlVQtDnhjGNclbv7XAOI029flo5GCEFLtZb0fnu9LuQTTRKVH0ljOUqHSjByufhCobmTPPz8M7K0FM8XR9bcX1j13n3K23MIZAJfK4r7jC6k0fIx/bQZrE7l3Rxptq5F81VWgJ9M4A3o/GTRonBYnWvtw0U5ywWdXa941ioo2PbJlj03zx75VS2F/sUxGunZyw1k2ZLwSx58/m5wyZkHlMxHw71IPR0IYu2i+NYgMVuxDJBVbj5GXaMpd1h1o4qsrVWrheC0/Y2+MvnL9Il5U10VCZujlgay3G+0FndKVl9i1gAWYUsZFIWzm0BcOqvvZdj8Nmj7Uyh9Ily/hrtVJd0/FITfpZAqnvGacJaqVPieWiR0To+wXjEG1u23qiX3Su61PRYEP7lPkhtcU0l93Glrh4SbbtFYnGn0oYkpuKoef6yER/UggHPYSKtfeaA2vHbkNAZ5+gW1yU2TF43On3xpfyFlIi8ygGAR8tEDyc2AQtlkzW+XxpFsS6mTQXylAog1JORpI3e8RgFyD+3KwZwZN318eZ59SJBfQFCwCraydVNf9vcpOBEExF10pJXgZy5Lu6wGkrZ5kqeGld4RTdIHefzm76oCWKsJiUs0cT61sPuLaAoyecMeVTwfUuGkxn+iSVwFDhuBTWpRDHkT4tuLDYI+7Dtb98mY9wxNPevebSQx3DVLmRJ46HkeMHM6vf+iDdS/4CJ2cWyKRoFmoWcoFSTIdFirXxJoFQK6Fm1nnk+jDw8PExN45GVkPmeMqs8sSIiQPtEzmvgVCFhes+UBWZLDDqJmUhgUwl18JKM6taWBdlLabk3Bb3IgZ6J9apoxkEGEpmCMKghR4j4aYKqSh9EEZVcikM2dty8dkoGtHUWYZPpcM6k9airIABpUhgqF7CqIJKZEK9W8Ik+EVsGq84YS+GYOJEfo71amWMgrVJV+d4BbDr1GiBFdCDH0KW4QxV7Q8w5Eov0cj3WohEtBZTMHaUomk2bETY7FBvU6HBSxWOurShh61m26DT2SmUPGdiFfX22WSqzaIksc+WJIIoJapp63SChuidVVvw7FYNHB51ziNbTs/PZmbv2P7q8Z8jyhbIpcjRMvAVT/tynpZ73vnR/8Y5DU7WCwyOXE25UlKB2NnB5e2SKSb6VWZ5YlOsW7CH/6sFekYsdg7L5XPc2Id+ZUMxt3Fxc+IeIG8dPBUhVygqsFYevOdBLj7zNrRXILJ/4Rw3uoCKtYNKMN5aIz/bdqiexVrzkRRImPJy67jJFfZDN7fIGz9DGIuVWYtuULVZ/VlkPsxbSaXvFzxy/TpH1Yi9paG8ig0oxZNyd+yllLmtmvascRmHaJOcgwc7fYwsUketysl6Yj0510Zdxl6FtcChKI+Q2YuV/+firZyRRB5MeyNPxpmY11VQlNGSoNDNQcf2mmszdIKrm9JYUupIhCOMWq18JsH4elULKQYicZ7wPE3TTODvuo6UTEMlK9Q6zYFTiqbqq6qs1gOIdT4WLQSNc9dPxQd5Bp0TB/HgovjnaOWWXkGK8fxisDlVl9O+TZH3Ft+xFMrRiu5kRHTppaFWotFZobslX7Z427BDD54csWzBbVCZ93IT2JyFA2nqJZvOLNgM4GxJyUxk1TAnK6Fau3aZMmUMTCcVWRdCKaBxHqrZft7uQ6A6cbyNJNlY47JsC8HJvDdPda+5w5mRn5r9tVbS3/irTSI137w/w27aoKXdwHE1wVAphwOHt++RV9atolKpjLPSpK2gSiZzchQ4GivXayZqINTKQgMlBtYRPnD7eT50a8+NxTWe/o4Tbru6ZFiL6YwME/qhI4bf+RDy3MdxFBI3ho60FjRX03IYRmoxXonUCrUgtbKeRo5XEw8fr7g2DFwbJms7nDJFhQVWe+yJnJPO0BIpDFWJRaAaLDdhQ+AOa+F6qQxqTl1USKHQBZwjYshNcXh9REkKAxVqJmEM+VFtojTAqGplHy2sirKehIOodKE4emIy7yoJYrGaJuoaKwGtMnNTQrTSXUAMIsYO/aBqyJIHATbV2DCQRFOhtXptaYqqShNwtKwSQyZKFcaaicEGLSqQSjHVXIUpCEsSSSupGtIwimXMSZqAlHcI+IEc2iHf0B4JFHG1G4lUKsE5MC24ULWsYtTJhArVuiM0mIOc1OY2J0ehhjIiJFY1c6KJ46GwGjLrKIzBJv/q7LTsnkYw5yFNN8Kct4iRGcW08C2ECHWWlIdG8AuEWhBRpioMmnnX7/8h7/yj93J1KpxLVvevWhlq4HpVDnPhLFBzMecqlSMKKyCvM+O1NevjFdVJ29RinAdaJhap2bLF9WKBLiKdTlRsJEQtFlQUrLNtqDAGYVLT+DkROEFZKdQqPPC/H+Dxh1/OemmaG4dXb3D9aCLmiU7EVWaVtVrwWoAOGKNxq8BmWYkIA0LO6nNuAoMqohVJwqpMFALHebKOuFp9mKGRjpLAULyrwlVoz/V7fOL4hEemiRtqATdie/EgdUx2Rxzd3Dwbwee5aJhncyWx16UgSKl0MbBMkZVWVus16ymzzpmcC1U8yQjKNc18vBaul8JzLpznlsWSR1YD42SvW3uXkp0p1Qf7CVGg5nErOLEAUoshqjmr6QSpdaUlIoWMhoKEzssB3lUUbIhq56jkUAsnXh6asiHLA4WD2NtcsmFgrNWyKvUkcypeljXOTkrB9hUVmdaIRB8zYbOdtFqilv3+Zi9Zl2JBWgyRwWcTtdlIKUGqwnWt5DxAqvTdHnlViVcLq8sjJQTXvLG1lDwzcPYapgNWnBhvZO0Qw1aSICYMqU0h3Dku1QNpzNdJ3PBeYgCt5s/FuVQW2lRvhwuoFputdTIwHU9Mx5nhxki5saaWykL9vqt3GwVLdJMH0I1Q23xc9c9nXYgmFzAijGpziHqx8ahdKFbKVytlJVpJvRI8KZSw4fZljByORFZl8/VPZ6J/1iseo/aBD3yApz71qV/sy9jZzna2s53tbGefoX3kIx/h8Y9//J/6/ZsWabl06RIAH/7whzl//vwX+Wr+fNvh4SF33XUXH/nIRzh37twX+3L+3NruOXzp2O5ZfGnY7jl86ZiqcuPGDe68885P+7qbNmhptbrz58/vFuOXiJ07d273LL4EbPccvnRs9yy+NGz3HL407DMBGD4zuu7Odrazne1sZzvb2RfZdkHLzna2s53tbGc7e0zYTRu0LBYLfuzHfozFYvHFvpQ/97Z7Fl8atnsOXzq2exZfGrZ7Do89u2m7h3a2s53tbGc729nNZTct0rKzne1sZzvb2c5uLtsFLTvb2c52trOd7ewxYbugZWc729nOdraznT0mbBe07GxnO9vZzna2s8eE7YKWne1sZzvb2c529piwmzJo+amf+ime9KQnsVwuef7zn8//+l//64t9STeV/fiP//hmerD/+Yqv+Ir5++v1mle+8pXccsstnDlzhm/5lm/hgQceOPUeH/7wh/mGb/gG9vf3ue222/ihH/ohcs5f6I/ymLM3v/nNfOM3fiN33nknIsKv/MqvnPq+qvKjP/qj3HHHHezt7fHCF76Q9773vade88gjj/Cyl72Mc+fOceHCBV7+8pdzdHR06jXvete7+Jqv+RqWyyV33XUXP/ETP/H5/miPOfuznsXf+3t/71H75CUvecmp1+yexf+9vepVr+Iv/+W/zNmzZ7ntttv4G3/jb3DPPfeces3nyie98Y1v5LnPfS6LxYKnPe1pvPa1r/18f7ydfZLddEHLL/7iL/IDP/AD/NiP/Rh/8Ad/wLOf/Wxe/OIX8+CDD36xL+2msmc84xncd99985/f/d3fnb/3/d///fzn//yf+aVf+iXe9KY38fGPf5xv/uZvnr9fSuEbvuEbGMeR//k//yc/93M/x2tf+1p+9Ed/9IvxUR5Tdnx8zLOf/Wx+6qd+6lN+/yd+4if41//6X/MzP/MzvO1tb+Pg4IAXv/jFrNfr+TUve9nLeM973sPrX/96fu3Xfo03v/nNvOIVr5i/f3h4yIte9CKe+MQn8va3v53XvOY1/PiP/zj/7t/9u8/753ss2Z/1LABe8pKXnNonv/ALv3Dq+7tn8X9vb3rTm3jlK1/JW9/6Vl7/+tczTRMvetGLOD4+nl/zufBJ9957L9/wDd/A133d13H33Xfzfd/3fXznd34nv/mbv/kF/bx/7k1vMvvqr/5qfeUrXzn/u5Sid955p77qVa/6Il7VzWU/9mM/ps9+9rM/5feuXbumXdfpL/3SL81f++M//mMF9C1veYuqqv7X//pfNYSg999///yan/7pn9Zz587pMAyf12u/mQzQX/7lX57/XWvVK1eu6Gte85r5a9euXdPFYqG/8Au/oKqqf/RHf6SA/t7v/d78ml//9V9XEdGPfexjqqr6b/7Nv9GLFy+eehb/5J/8E33605/+ef5Ej1375Gehqvrt3/7t+k3f9E1/6s/snsXnxx588EEF9E1vepOqfu580g//8A/rM57xjFO/61u/9Vv1xS9+8ef7I+1sy24qpGUcR97+9rfzwhe+cP5aCIEXvvCFvOUtb/kiXtnNZ+9973u58847ecpTnsLLXvYyPvzhDwPw9re/nWmaTj2Dr/iKr+AJT3jC/Aze8pa38JVf+ZXcfvvt82te/OIXc3h4yHve854v7Ae5iezee+/l/vvvP3Xvz58/z/Of//xT9/7ChQv8pb/0l+bXvPCFLySEwNve9rb5NV/7tV9L3/fza1784hdzzz33cPXq1S/Qp7k57I1vfCO33XYbT3/60/me7/keHn744fl7u2fx+bHr168DcOnSJeBz55Pe8pa3nHqP9prd2fKFtZsqaHnooYcopZxaeAC33347999//xfpqm4+e/7zn89rX/tafuM3foOf/umf5t577+VrvuZruHHjBvfffz9933PhwoVTP7P9DO6///5P+Yza93b2f2bt3n269X///fdz2223nfp+SolLly7tns/n2F7ykpfwH//jf+S3fuu3+Bf/4l/wpje9iZe+9KWUUoDds/h8WK2V7/u+7+Ov/JW/wjOf+UyAz5lP+tNec3h4yGq1+nx8nJ19Cktf7AvY2WPPXvrSl85/f9aznsXzn/98nvjEJ/Kf/tN/Ym9v74t4ZTvb2ZeO/a2/9bfmv3/lV34lz3rWs3jqU5/KG9/4Rr7+67/+i3hlN6+98pWv5N3vfvcpjt3Obi67qZCWy5cvE2N8FCv8gQce4MqVK1+kq7r57cKFC3z5l38573vf+7hy5QrjOHLt2rVTr9l+BleuXPmUz6h9b2f/Z9bu3adb/1euXHkUKT3nzCOPPLJ7Pp9ne8pTnsLly5d53/veB+yexefavvd7v5df+7Vf4w1veAOPf/zj569/rnzSn/aac+fO7ZK1L6DdVEFL3/c873nP47d+67fmr9Va+a3f+i1e8IIXfBGv7Oa2o6Mj3v/+93PHHXfwvOc9j67rTj2De+65hw9/+MPzM3jBC17AH/7hH55y2K9//es5d+4cf/Ev/sUv+PXfLPbkJz+ZK1eunLr3h4eHvO1tbzt1769du8bb3/72+TW//du/Ta2V5z//+fNr3vzmNzNN0/ya17/+9Tz96U/n4sWLX6BPc/PZRz/6UR5++GHuuOMOYPcsPlemqnzv934vv/zLv8xv//Zv8+QnP/nU9z9XPukFL3jBqfdor9mdLV9g+2IzgT/X9rrXvU4Xi4W+9rWv1T/6oz/SV7ziFXrhwoVTrPCd/d/ZD/7gD+ob3/hGvffee/V//I//oS984Qv18uXL+uCDD6qq6j/4B/9An/CEJ+hv//Zv6+///u/rC17wAn3BC14w/3zOWZ/5zGfqi170Ir377rv1N37jN/TWW2/VH/mRH/lifaTHjN24cUPf8Y536Dve8Q4F9Cd/8if1He94h37oQx9SVdVXv/rVeuHCBf3VX/1Vfde73qXf9E3fpE9+8pN1tVrN7/GSl7xEv+qrvkrf9ra36e/+7u/ql33Zl+m3fdu3zd+/du2a3n777fp3/+7f1Xe/+936ute9Tvf39/Xf/tt/+wX/vF/K9umexY0bN/Qf/+N/rG95y1v03nvv1f/+3/+7Pve5z9Uv+7Iv0/V6Pb/H7ln839v3fM/36Pnz5/WNb3yj3nffffOfk5OT+TWfC5/0gQ98QPf39/WHfuiH9I//+I/1p37qpzTGqL/xG7/xBf28f97tpgtaVFX/3//3/9UnPOEJ2ve9fvVXf7W+9a1v/WJf0k1l3/qt36p33HGH9n2vj3vc4/Rbv/Vb9X3ve9/8/dVqpf/wH/5DvXjxou7v7+vf/Jt/U++7775T7/HBD35QX/rSl+re3p5evnxZf/AHf1CnafpCf5THnL3hDW9Q4FF/vv3bv11Vre35n/7Tf6q33367LhYL/fqv/3q95557Tr3Hww8/rN/2bd+mZ86c0XPnzunf//t/X2/cuHHqNe985zv1r/7Vv6qLxUIf97jH6atf/eov1Ed8zNinexYnJyf6ohe9SG+99Vbtuk6f+MQn6nd913c9KnnaPYv/e/tUzwDQ//Af/sP8ms+VT3rDG96gz3nOc7Tve33KU55y6nfs7Atjoqr6hUZ3drazne1sZzvb2c4+W7upOC0729nOdrazne3s5rVd0LKzne1sZzvb2c4eE7YLWna2s53tbGc729ljwnZBy852trOd7WxnO3tM2C5o2dnOdrazne1sZ48J2wUtO9vZzna2s53t7DFhu6BlZzvb2c52trOdPSZsF7TsbGc729nOdrazx4Ttgpad7WxnO9vZznb2mLBd0LKzne1sZzvb2c4eE7YLWna2s53tbGc729ljwv7/UmctRKBRlloAAAAASUVORK5CYII=", "text/plain": [ - "" + "
" ] }, - "execution_count": null, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAFICAYAAAB6EQVCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9abCu2VUeCD5r7ff9vnPunMPNeZRAQhbFJEDIZai2ESWLDpoIE9EY0zTlIsI/bOgIK/zDinCA9UsRDkeYsI3D3dG0aYfbZYNdxgZcFEJgMJqRxKABlBIaMiXlrJzvved79179Y61n7f1+52QqRUFJWZwtnbznfN877GHttZ41bjEzw2k7bafttJ2203baTttXUNMvdwdO22k7bafttJ2203ba9tspQDltp+20nbbTdtpO21dcOwUop+20nbbTdtpO22n7imunAOW0nbbTdtpO22k7bV9x7RSgnLbTdtpO22k7baftK66dApTTdtpO22k7bafttH3FtVOActpO22k7bafttJ22r7h2ClBO22k7bafttJ220/YV104Bymk7bafttJ2203bavuLaKUA5bafttJ2203baTttXXPuyApSf+qmfwj333IODgwO89rWvxXvf+94vZ3dO22k7bafttJ220/YV0r5sAOXf/tt/ize96U34iZ/4CXzgAx/A13/91+MNb3gDHn744S9Xl07baTttp+20nbbT9hXS5Mt1WOBrX/tafMu3fAv+6T/9pwCA1hruvPNO/NiP/Rj+7t/9u1+OLp2203baTttpO22n7SukTV+Olx4dHeH9738/3vzmN+dnqorXv/71eNe73nXs+mvXruHatWv5d2sNjz/+OG644QaIyP8ufT5tp+20nbbTdtpO2/+2ZmZ4+umncdttt0H1hZ04XxaA8uijj6LWiptvvnn1+c0334w/+IM/OHb9W9/6VrzlLW/536t7p+20nbbTdtpO22n7U2z3338/7rjjjhe85ssCUL7U9uY3vxlvetOb8u8nn3wSd911F779lnugAEYflYhARKACCIDGLwUQAQwGM4NYQykFKh6IIyKQeFZtQLMGaxLPtnyJFgDxjm688WfuNxVgEmBWQSkFMEFrhqU2HLWKaoZqggUNixlqMxQIZhGImfdHBNWAI2vYmaHBAFj2VxEDBfweASQ+K+ZjKwJMIphLwbYIZlFMIig+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", + "image/png": "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+MQnPsGJEycIw5Drr7+e3/7t396j+dLY44DBHDA89NBDxvM886d/+qfmxRdfND/zMz9j+v2+WV1dvdyHdtXh/e9/v/nUpz5lXnjhBfP888+b7//+7zfHjh0zo9GoHvORj3zEXHvtteaRRx4xzz77rHnnO99p3vWud9X78zw3N998szl58qT5whe+YD73uc+ZxcVF82u/9muX45SuGjz99NPm+PHj5m1ve5u599576+2NPS4dNjc3zXXXXWd+4id+wjz11FPm1VdfNf/8z/9s/uM//qMe8+CDD5per2f+9m//1nzxi180P/ADP2BOnDhhptNpPeb7vu/7zHd913eZJ5980vzbv/2bueGGG8yHP/zhy3FKBxr333+/WVhYMJ/97GfNa6+9Zj7zmc+Ydrttfu/3fq8e09jjYOHAOSjveMc7zD333FP/XhSFOXLkiHnggQcu41G9MbC2tmYA89hjjxljjNne3jau65rPfOYz9Zgvf/nLBjBPPPGEMcaYz33uc0ZKac6dO1eP+eQnP2m63a5JkuTSnsBVguFwaG688Ubz8MMPm+/93u+tHZTGHpcWv/qrv2re8573fNP9WmuzsrJifvd3f7fetr29bXzfN3/5l39pjDHmpZdeMoB55pln6jH/+I//aIQQ5syZM///Dv4qxJ133ml+6qd+as+2H/7hHzZ33XWXMaaxx0HEgUrxpGnKc889x8mTJ+ttUkpOnjzJE088cRmP7I2BnZ0dYFes8bnnniPLsj32uOmmmzh27FhtjyeeeIJbbrmF5eXlesz73/9+BoMBL7744iU8+qsH99xzD3feeeee6w6NPS41/v7v/57bbruNH/3RH2VpaYlbb72VP/mTP6n3v/baa5w7d26PPXq9Hrfffvsee/T7fW677bZ6zMmTJ5FS8tRTT126k7kK8K53vYtHHnmEV155BYAvfvGLPP7443zgAx8AGnscRBwoscD19XWKotjzcgVYXl7mK1/5ymU6qjcGtNbcd999vPvd7+bmm28G4Ny5c3ieR7/f3zN2eXmZc+fO1WMuZq9qX4NvDw899BCf//zneeaZZy7Y19jj0uLVV1/lk5/8JL/0S7/Er//6r/PMM8/wC7/wC3iex913311fz4td71l7LC0t7dnvOA7z8/ONPb5NfPzjH2cwGHDTTTehlKIoCu6//37uuusugMYeBxAHykFpcPlwzz338MILL/D4449f7kN5w+L06dPce++9PPzwwwRBcLkP5w0PrTW33XYbv/M7vwPArbfeygsvvMAf/dEfcffdd1/mo3vj4a/+6q/49Kc/zV/8xV/w1re+leeff5777ruPI0eONPY4oDhQKZ7FxUWUUhd0JayurrKysnKZjurqx0c/+lE++9nP8i//8i9cc8019faVlRXSNGV7e3vP+Fl7rKysXNRe1b4G3zqee+451tbW+O7v/m4cx8FxHB577DF+//d/H8dxWF5ebuxxCXH48GHe8pa37Nn25je/mVOnTgG71/O/el+trKywtra2Z3+e52xubjb2+DbxsY99jI9//ON86EMf4pZbbuHHf/zH+cVf/EUeeOABoLHHQcSBclA8z+Ptb387jzzySL1Na80jjzzCHXfccRmP7OqEMYaPfvSj/M3f/A2PPvooJ06c2LP/7W9/O67r7rHHyy+/zKlTp2p73HHHHXzpS1/a89A//PDDdLvdC17uDf5rvPe97+VLX/oSzz//fP1z2223cdddd9X/b+xx6fDud/GTCcAAAAKsSURBVL/7grb7V155heuuuw6AEydOsLKyssceg8GAp556ao89tre3ee655+oxjz76KFprbr/99ktwFlcPJpMJUu6d0pRSaK2Bxh4HEpe7SvfbxUMPPWR83zd/9md/Zl566SXzsz/7s6bf7+/pSmjw/wY/93M/Z3q9nvnXf/1Xc/bs2fpnMpnUYz7ykY+YY8eOmUcffdQ8++yz5o477jB33HFHvb9qa33f+95nnn/+efNP//RP5tChQ01b6/8jzHbxGNPY41Li6aefNo7jmPvvv9989atfNZ/+9KdNFEXmz//8z+sxDz74oOn3++bv/u7vzL//+7+bH/zBH7xoW+utt95qnnrqKfP444+bG2+8sWlr/W/g7rvvNkePHq3bjP/6r//aLC4uml/5lV+pxzT2OFg4cA6KMcb8wR/8gTl27JjxPM+84x3vME8++eTlPqSrEsBFfz71qU/VY6bTqfn5n/95Mzc3Z6IoMh/84AfN2bNn93zO17/+dfOBD3zAhGFoFhcXzS//8i+bLMsu8dlcndjvoDT2uLT4h3/4B3PzzTcb3/fNTTfdZP74j/94z36ttfnEJz5hlpeXje/75r3vfa95+eWX94zZ2NgwH/7wh0273Tbdbtf85E/+pBkOh5fyNK4KDAYDc++995pjx46ZIAjMm970JvMbv/Ebe9rnG3scLAhjZmj2GjRo0KBBgwYNrgAcqBqUBg0aNGjQoMEbA42D0qBBgwYNGjS44tA4KA0aNGjQoEGDKw6Ng9KgQYMGDRo0uOLQOCgNGjRo0KBBgysOjYPSoEGDBg0aNLji0DgoDRo0aNCgQYMrDo2D0qBBgwYNGjS44tA4KA0aNGjQoEGDKw6Ng9KgQYMGDRo0uOLQOCgNGjRo0KBBgysOjYPSoEGDBg0aNLji8L8BZy3CJxVJAQkAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -567,8 +557,10 @@ "from PIL import Image\n", "import matplotlib.pyplot as plt\n", "\n", - "img = Image.open(\"/mnt/share/nebius/images/walle-image-1-disney.jpg\")\n", - "plt.imshow(img)" + "for image_name in os.listdir(path_to_images):\n", + " img = Image.open(os.path.join(path_to_images, image_name))\n", + " plt.imshow(img)\n", + " plt.show()" ] }, { @@ -581,7 +573,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "The image features two animated robots standing behind a metal fence. The robot on the left is a small, boxy, and rusty-looking machine with large, expressive eyes and a yellow body. The robot on the right is larger, with a smooth, white exterior and a green plant symbol on its chest. This robot is adorned with a string of colorful Christmas lights. The background appears to be a desolate, post-apocalyptic environment with dim lighting and a sense of abandonment.\n" + "**Image 1:**\n", + "A soccer player is holding a large silver trophy with red ribbons attached to it. The player is wearing a red jersey with the word \"Carlsberg\" on it and has a gold medal around his neck. He is raising his right fist in a celebratory gesture.\n", + "\n", + "**Image 2:**\n", + "Two characters are standing in a grand, stone-walled room. The character on the left is wearing a black robe with a red and yellow tie, while the character on the right is dressed in a brown robe with a red tie and a patterned shirt underneath. The character on the right has his arm around the shoulder of the character on the left.\n" ] } ], diff --git a/docs/docs/examples/property_graph/property_graph_memgraph.ipynb b/docs/docs/examples/property_graph/property_graph_memgraph.ipynb index 41ae426ca6cd4..8b3c825f7132e 100644 --- a/docs/docs/examples/property_graph/property_graph_memgraph.ipynb +++ b/docs/docs/examples/property_graph/property_graph_memgraph.ipynb @@ -103,10 +103,8 @@ "with open(output_path, \"r\", encoding=\"utf-8\") as file:\n", " content = file.read()\n", "\n", - "modified_content = content.replace(\"'\", \"\\\\'\")\n", - "\n", "with open(output_path, \"w\", encoding=\"utf-8\") as file:\n", - " file.write(modified_content)\n", + " file.write(content)\n", "\n", "documents = SimpleDirectoryReader(\"./data/paul_graham/\").load_data()" ] diff --git a/docs/docs/examples/vector_stores/Qdrant_metadata_filter.ipynb b/docs/docs/examples/vector_stores/Qdrant_metadata_filter.ipynb index c926b5ca223f6..5bb42bb90b6c8 100644 --- a/docs/docs/examples/vector_stores/Qdrant_metadata_filter.ipynb +++ b/docs/docs/examples/vector_stores/Qdrant_metadata_filter.ipynb @@ -6,7 +6,7 @@ "id": "71144bf9", "metadata": {}, "source": [ - "\"Open" + "\"Open" ] }, { diff --git a/docs/docs/module_guides/indexing/llama_cloud_index.md b/docs/docs/module_guides/indexing/llama_cloud_index.md index 1d9e91c9069a5..add079308babd 100644 --- a/docs/docs/module_guides/indexing/llama_cloud_index.md +++ b/docs/docs/module_guides/indexing/llama_cloud_index.md @@ -7,6 +7,8 @@ Currently, LlamaCloud supports - Managed Ingestion API, handling parsing and document management - Managed Retrieval API, configuring optimal retrieval for your RAG system +For additional documentation on LlamaCloud and this integration in particular, please reference our [official LlamaCloud docs](https://docs.cloud.llamaindex.ai/llamacloud/guides/framework_integration). + ## Access We are opening up a private beta to a limited set of enterprise partners for the managed ingestion and retrieval API. If you’re interested in centralizing your data pipelines and spending more time working on your actual RAG use cases, come [talk to us.](https://www.llamaindex.ai/contact) @@ -84,3 +86,70 @@ A full list of retriever settings/kwargs is below: - `enable_reranking`: Optional[bool] -- Whether to enable reranking or not. Sacrifices some speed for accuracy - `rerank_top_n`: Optional[int] -- The number of nodes to return after reranking initial retrieval results - `alpha` Optional[float] -- The weighting between dense and sparse retrieval. 1 = Full dense retrieval, 0 = Full sparse retrieval. + + +## Composite Retrieval Usage + +Once you've setup multiple indexes that are ingesting various forms of data, you may want to create an application that can query over the data across all of your indices. + +This is where you can use the `LlamaCloudCompositeRetriever` class. The following snippet shows you how to setup the composite retriever: + +```python +import os +from llama_cloud import CompositeRetrievalMode, RetrieverPipeline +from llama_index.indices.managed.llama_cloud import ( + LlamaCloudIndex, + LlamaCloudCompositeRetriever, +) + +llama_cloud_api_key = os.environ["LLAMA_CLOUD_API_KEY"] +project_name = "Essays" + +# Setup your indices +pg_documents = SimpleDirectoryReader("./examples/data/paul_graham").load_data() +pg_index = LlamaCloudIndex.from_documents( + documents=pg_documents, + name="PG Index", + project_name=project_name, + api_key=llama_cloud_api_key, +) + +sama_documents = SimpleDirectoryReader( + "./examples/data/sam_altman" +).load_data() +sama_index = LlamaCloudIndex.from_documents( + documents=sama_documents, + name="Sam Index", + project_name=project_name, + api_key=llama_cloud_api_key, +) + +retriever = LlamaCloudCompositeRetriever( + name="Essays Retriever", + project_name=project_name, + api_key=llama_cloud_api_key, + # If a Retriever named "Essays Retriever" doesn't already exist, one will be created + create_if_not_exists=True, + # CompositeRetrievalMode.FULL will query each index individually and globally rerank results at the end + mode=CompositeRetrievalMode.FULL, + rerank_top_n=5, +) + +# Add the above indices to the composite retriever +# Carefully craft the description as this is used internally to route a query to an attached sub-index when CompositeRetrievalMode.ROUTING is used +retriever.add_index(pg_index, description="A collection of Paul Graham essays") +retriever.add_index( + sama_index, description="A collection of Sam Altman essays" +) + +# Start retrieving context for your queries +# async .aretrieve() is also available +nodes = retriever.retrieve("What does YC do?") +``` + +### Composite Retrieval related parameters +There are a few parameters that are specific to tuning the composite retrieval parameters: +- `mode`: `Optional[CompositeRetrievalMode]` -- Can either be `CompositeRetrievalMode.FULL` or `CompositeRetrievalMode.ROUTING` + - `full`: In this mode, all attached sub-indices will be queried and reranking will be executed across all nodes received from these sub-indices. + - `routing`: In this mode, an agent determines which sub-indices are most relevant to the provided query (based on the sub-index's `name` & `description` you've provided) and only queries those indices that are deemed relevant. Only the nodes from that chosen subset of indices are then reranked before being returned in the retrieval response. +- `rerank_top_n`: `Optional[int]` -- Determines how many nodes to return after re-ranking across the nodes retrieved from all indices diff --git a/docs/docs/module_guides/loading/documents_and_nodes/usage_documents.md b/docs/docs/module_guides/loading/documents_and_nodes/usage_documents.md index 5aea5486d84d0..d42f951d10bc3 100644 --- a/docs/docs/module_guides/loading/documents_and_nodes/usage_documents.md +++ b/docs/docs/module_guides/loading/documents_and_nodes/usage_documents.md @@ -110,7 +110,7 @@ print(document.get_content(metadata_mode=MetadataMode.LLM)) #### Customizing Embedding Metadata Text -Similar to customing the metadata visible to the LLM, we can also customize the metadata visible to embeddings. In this case, you can specifically exclude metadata visible to the embedding model, in case you DON'T want particular text to bias the embeddings. +Similar to customizing the metadata visible to the LLM, we can also customize the metadata visible to embeddings. In this case, you can specifically exclude metadata visible to the embedding model, in case you DON'T want particular text to bias the embeddings. ```python document.excluded_embed_metadata_keys = ["file_name"] diff --git a/docs/docs/module_guides/models/llms/modules.md b/docs/docs/module_guides/models/llms/modules.md index 1a5656e700e24..7a2ef1467d67c 100644 --- a/docs/docs/module_guides/models/llms/modules.md +++ b/docs/docs/module_guides/models/llms/modules.md @@ -24,7 +24,7 @@ We support integrations with OpenAI, Anthropic, Hugging Face, PaLM, and more. - [LangChain](../../../examples/llm/langchain.ipynb) - [LiteLLM](../../../examples/llm/litellm.ipynb) - [Llama API](../../../examples/llm/llama_api.ipynb) -- [Llama CPP](../../../examples/llm/llama_2_llama_cpp.ipynb) +- [Llama CPP](../../../examples/llm/llama_cpp.ipynb) - [LocalAI](../../../examples/llm/localai.ipynb) - [MariTalk](../../../examples/llm/maritalk.ipynb) - [MistralAI](../../../examples/llm/mistralai.ipynb) diff --git a/docs/docs/optimizing/fine-tuning/fine-tuning.md b/docs/docs/optimizing/fine-tuning/fine-tuning.md index 793fe660184a6..faac8d6ac693d 100644 --- a/docs/docs/optimizing/fine-tuning/fine-tuning.md +++ b/docs/docs/optimizing/fine-tuning/fine-tuning.md @@ -80,7 +80,6 @@ In this tutorial, we show you how you can finetune Llama 2 on a text-to-SQL data The stack includes `sql-create-context` as the training dataset, OpenLLaMa as the base model, PEFT for finetuning, Modal for cloud compute, LlamaIndex for inference abstractions. -- [Llama 2 Text-to-SQL Fine-tuning (w/ Gradient.AI)](../../examples/finetuning/gradient/gradient_fine_tuning.ipynb) - [Llama 2 Text-to-SQL Fine-tuning (w/ Modal, Repo)](https://github.com/run-llama/modal_finetune_sql) - [Llama 2 Text-to-SQL Fine-tuning (w/ Modal, Notebook)](https://github.com/run-llama/modal_finetune_sql/blob/main/tutorial.ipynb) diff --git a/docs/docs/understanding/putting_it_all_together/index.md b/docs/docs/understanding/putting_it_all_together/index.md index 45b93c29b32f9..e438551c05422 100644 --- a/docs/docs/understanding/putting_it_all_together/index.md +++ b/docs/docs/understanding/putting_it_all_together/index.md @@ -2,7 +2,7 @@ Congratulations! You've loaded your data, indexed it, stored your index, and queried your index. Now you've got to ship something to production. We can show you how to do that! -- In [Q&A Patterns](q_and_a.md) we'll go into some of the more advanced and subtle ways you can build a query engine beyond the basics. +- In [Q&A Patterns](q_and_a/index.md) we'll go into some of the more advanced and subtle ways you can build a query engine beyond the basics. - The [terms definition tutorial](q_and_a/terms_definitions_tutorial.md) is a detailed, step-by-step tutorial on creating a subtle query application including defining your prompts and supporting images as input. - We have a guide to [creating a unified query framework over your indexes](../../examples/retrievers/reciprocal_rerank_fusion.ipynb) which shows you how to run queries across multiple indexes. - And also over [structured data like SQL](structured_data.md) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 78e163726c023..f45fd433fded5 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -335,6 +335,7 @@ nav: - ./examples/llm/dashscope.ipynb - ./examples/llm/databricks.ipynb - ./examples/llm/deepinfra.ipynb + - ./examples/llm/deepseek.ipynb - ./examples/llm/everlyai.ipynb - ./examples/llm/fireworks.ipynb - ./examples/llm/fireworks_cookbook.ipynb @@ -349,7 +350,7 @@ nav: - ./examples/llm/langchain.ipynb - ./examples/llm/litellm.ipynb - ./examples/llm/llama_2.ipynb - - ./examples/llm/llama_2_llama_cpp.ipynb + - ./examples/llm/llama_cpp.ipynb - ./examples/llm/llama_2_rap_battle.ipynb - ./examples/llm/llama_api.ipynb - ./examples/llm/llamafile.ipynb @@ -427,6 +428,7 @@ nav: - Memory: - ./examples/memory/Mem0Memory.ipynb - Metadata Extractors: + - ./examples/metadata_extraction/DocumentContextExtractor.ipynb - ./examples/metadata_extraction/EntityExtractionClimate.ipynb - ./examples/metadata_extraction/MarvinMetadataExtractorDemo.ipynb - ./examples/metadata_extraction/MetadataExtractionSEC.ipynb @@ -1006,6 +1008,7 @@ nav: - ./api_reference/llms/dashscope.md - ./api_reference/llms/databricks.md - ./api_reference/llms/deepinfra.md + - ./api_reference/llms/deepseek.md - ./api_reference/llms/everlyai.md - ./api_reference/llms/fireworks.md - ./api_reference/llms/friendli.md @@ -1152,6 +1155,7 @@ nav: - ./api_reference/memory/simple_composable_memory.md - ./api_reference/memory/vector_memory.md - Metadata Extractors: + - ./api_reference/extractors/documentcontext.md - ./api_reference/extractors/entity.md - ./api_reference/extractors/index.md - ./api_reference/extractors/keyword.md @@ -1648,6 +1652,7 @@ nav: - ./api_reference/tools/index.md - ./api_reference/tools/ionic_shopping.md - ./api_reference/tools/jina.md + - ./api_reference/tools/linkup_research.md - ./api_reference/tools/load_and_search.md - ./api_reference/tools/metaphor.md - ./api_reference/tools/multion.md @@ -2337,6 +2342,8 @@ plugins: - ../llama-index-integrations/storage/chat_store/llama-index-storage-chat-store-tablestore - ../llama-index-integrations/llms/llama-index-llms-opea - ../llama-index-integrations/llms/llama-index-llms-stepfun + - ../llama-index-integrations/tools/llama-index-tools-linkup-research + - ../llama-index-integrations/llms/llama-index-llms-deepseek - redirects: redirect_maps: ./api/llama_index.vector_stores.MongoDBAtlasVectorSearch.html: api_reference/storage/vector_store/mongodb.md @@ -2601,7 +2608,7 @@ plugins: ./examples/llm/langchain.html: https://docs.llamaindex.ai/en/stable/examples/llm/langchain/ ./examples/llm/litellm.html: https://docs.llamaindex.ai/en/stable/examples/llm/litellm/ ./examples/llm/llama_2.html: https://docs.llamaindex.ai/en/stable/examples/llm/llama_2/ - ./examples/llm/llama_2_llama_cpp.html: https://docs.llamaindex.ai/en/stable/examples/llm/llama_2_llama_cpp/ + ./examples/llm/llama_2_llama_cpp.html: https://docs.llamaindex.ai/en/stable/examples/llm/llama_cpp/ ./examples/llm/llama_2_rap_battle.html: https://docs.llamaindex.ai/en/stable/examples/llm/llama_2_rap_battle/ ./examples/llm/llama_api.html: https://docs.llamaindex.ai/en/stable/examples/llm/llama_api/ ./examples/llm/llamafile.html: https://docs.llamaindex.ai/en/stable/examples/llm/llamafile/ diff --git a/llama-index-cli/llama_index/cli/upgrade/mappings.json b/llama-index-cli/llama_index/cli/upgrade/mappings.json index 6920b699b240e..ca9f37a2064f6 100644 --- a/llama-index-cli/llama_index/cli/upgrade/mappings.json +++ b/llama-index-cli/llama_index/cli/upgrade/mappings.json @@ -534,6 +534,7 @@ "AzureSpeechToolSpec": "llama_index.tools.azure_speech", "WolframAlphaToolSpec": "llama_index.tools.wolfram_alpha", "SlackToolSpec": "llama_index.tools.slack", + "LinkupToolSpec": "llama_index.tools.linkup_research", "TavilyToolSpec": "llama_index.tools.tavily_research", "ArxivToolSpec": "llama_index.tools.arxiv", "VectorDB": "llama_index.tools.vector_db", diff --git a/llama-index-core/llama_index/core/__init__.py b/llama-index-core/llama_index/core/__init__.py index a7059fbf09e04..d35bbb7dd934e 100644 --- a/llama-index-core/llama_index/core/__init__.py +++ b/llama-index-core/llama_index/core/__init__.py @@ -1,6 +1,6 @@ """Init file of LlamaIndex.""" -__version__ = "0.12.11" +__version__ = "0.12.14" import logging from logging import NullHandler diff --git a/llama-index-core/llama_index/core/agent/react/formatter.py b/llama-index-core/llama_index/core/agent/react/formatter.py index 1de4fa744e05b..e1985932a6a79 100644 --- a/llama-index-core/llama_index/core/agent/react/formatter.py +++ b/llama-index-core/llama_index/core/agent/react/formatter.py @@ -13,7 +13,7 @@ ObservationReasoningStep, ) from llama_index.core.base.llms.types import ChatMessage, MessageRole -from llama_index.core.bridge.pydantic import BaseModel, ConfigDict +from llama_index.core.bridge.pydantic import BaseModel, ConfigDict, Field from llama_index.core.tools import BaseTool logger = logging.getLogger(__name__) @@ -53,6 +53,14 @@ class ReActChatFormatter(BaseAgentChatFormatter): system_header: str = REACT_CHAT_SYSTEM_HEADER # default context: str = "" # not needed w/ default + observation_role: MessageRole = Field( + default=MessageRole.USER, + description=( + "Message role of tool outputs. If the LLM you use supports function/tool " + "calling, you may set it to `MessageRole.TOOL` to avoid the tool outputs " + "being misinterpreted as new user messages." + ), + ) def format( self, @@ -73,13 +81,13 @@ def format( fmt_sys_header = self.system_header.format(**format_args) # format reasoning history as alternating user and assistant messages - # where the assistant messages are thoughts and actions and the user + # where the assistant messages are thoughts and actions and the tool # messages are observations reasoning_history = [] for reasoning_step in current_reasoning: if isinstance(reasoning_step, ObservationReasoningStep): message = ChatMessage( - role=MessageRole.USER, + role=self.observation_role, content=reasoning_step.get_content(), ) else: @@ -100,6 +108,7 @@ def from_defaults( cls, system_header: Optional[str] = None, context: Optional[str] = None, + observation_role: MessageRole = MessageRole.USER, ) -> "ReActChatFormatter": """Create ReActChatFormatter from defaults.""" if not system_header: @@ -112,6 +121,7 @@ def from_defaults( return ReActChatFormatter( system_header=system_header, context=context or "", + observation_role=observation_role, ) @classmethod diff --git a/llama-index-core/llama_index/core/agent/runner/planner.py b/llama-index-core/llama_index/core/agent/runner/planner.py index 73c007ebda2d2..33778554baf68 100644 --- a/llama-index-core/llama_index/core/agent/runner/planner.py +++ b/llama-index-core/llama_index/core/agent/runner/planner.py @@ -106,7 +106,7 @@ def reset(self) -> None: DEFAULT_INITIAL_PLAN_PROMPT = """\ -Think step-by-step. Given a task and a set of tools, create a comprehesive, end-to-end plan to accomplish the task. +Think step-by-step. Given a task and a set of tools, create a comprehensive, end-to-end plan to accomplish the task. Keep in mind not every task needs to be decomposed into multiple sub-tasks if it is simple enough. The plan should end with a sub-task that can achieve the overall task. diff --git a/llama-index-core/llama_index/core/agent/workflow/base_agent.py b/llama-index-core/llama_index/core/agent/workflow/base_agent.py index 86cd1d58a41b4..c91bf2eefaf55 100644 --- a/llama-index-core/llama_index/core/agent/workflow/base_agent.py +++ b/llama-index-core/llama_index/core/agent/workflow/base_agent.py @@ -68,6 +68,13 @@ def validate_tools( validated_tools.append(FunctionTool.from_defaults(tool)) else: validated_tools.append(tool) + + for tool in validated_tools: + if tool.metadata.name == "handoff": + raise ValueError( + "'handoff' is a reserved tool name. Please use a different name." + ) + return validated_tools # type: ignore[return-value] def _get_prompts(self) -> PromptDictType: diff --git a/llama-index-core/llama_index/core/agent/workflow/function_agent.py b/llama-index-core/llama_index/core/agent/workflow/function_agent.py index 5e2163fa1291c..26e0e6d9bc766 100644 --- a/llama-index-core/llama_index/core/agent/workflow/function_agent.py +++ b/llama-index-core/llama_index/core/agent/workflow/function_agent.py @@ -86,7 +86,10 @@ async def handle_tool_call_results( ) ) - if tool_call_result.return_direct: + if ( + tool_call_result.return_direct + and tool_call_result.tool_name != "handoff" + ): scratchpad.append( ChatMessage( role="assistant", diff --git a/llama-index-core/llama_index/core/agent/workflow/multi_agent_workflow.py b/llama-index-core/llama_index/core/agent/workflow/multi_agent_workflow.py index fd3532c6f2536..8e351459d3c2c 100644 --- a/llama-index-core/llama_index/core/agent/workflow/multi_agent_workflow.py +++ b/llama-index-core/llama_index/core/agent/workflow/multi_agent_workflow.py @@ -61,7 +61,7 @@ async def handoff(ctx: Context, to_agent: str, reason: str) -> str: return f"Agent {to_agent} not found. Please select a valid agent to hand off to. Valid agents: {valid_agents}" await ctx.set("next_agent", to_agent) - return f"Handed off to {to_agent} because: {reason}" + return f"Agent {to_agent} is now handling the request due to the following reason: {reason}.\nPlease continue." class AgentWorkflowMeta(WorkflowMeta, ABCMeta): @@ -472,7 +472,7 @@ def from_tools_or_functions( tools = [ FunctionTool.from_defaults(fn=tool) - if not isinstance(tool, FunctionTool) + if not isinstance(tool, BaseTool) else tool for tool in tools_or_functions ] diff --git a/llama-index-core/llama_index/core/agent/workflow/react_agent.py b/llama-index-core/llama_index/core/agent/workflow/react_agent.py index 5d78bf20bb8a3..ef1aeaa3185ea 100644 --- a/llama-index-core/llama_index/core/agent/workflow/react_agent.py +++ b/llama-index-core/llama_index/core/agent/workflow/react_agent.py @@ -171,7 +171,10 @@ async def handle_tool_call_results( ) current_reasoning.append(obs_step) - if tool_call_result.return_direct: + if ( + tool_call_result.return_direct + and tool_call_result.tool_name != "handoff" + ): current_reasoning.append( ResponseReasoningStep( thought=obs_step.observation, @@ -191,22 +194,25 @@ async def finalize( self.reasoning_key, default=[] ) - reasoning_str = "\n".join([x.get_content() for x in current_reasoning]) - - if reasoning_str: - reasoning_msg = ChatMessage(role="assistant", content=reasoning_str) - await memory.aput(reasoning_msg) + if len(current_reasoning) > 0 and isinstance( + current_reasoning[-1], ResponseReasoningStep + ): + reasoning_str = "\n".join([x.get_content() for x in current_reasoning]) + + if reasoning_str: + reasoning_msg = ChatMessage(role="assistant", content=reasoning_str) + await memory.aput(reasoning_msg) + await ctx.set(self.reasoning_key, []) + + # remove "Answer:" from the response + if output.response.content and "Answer:" in output.response.content: + start_idx = output.response.content.find("Answer:") + if start_idx != -1: + output.response.content = output.response.content[ + start_idx + len("Answer:") : + ].strip() + + # clear scratchpad await ctx.set(self.reasoning_key, []) - # remove "Answer:" from the response - if output.response.content and "Answer:" in output.response.content: - start_idx = output.response.content.find("Answer:") - if start_idx != -1: - output.response.content = output.response.content[ - start_idx + len("Answer:") : - ].strip() - - # clear scratchpad - await ctx.set(self.reasoning_key, []) - return output diff --git a/llama-index-core/llama_index/core/command_line/mappings.json b/llama-index-core/llama_index/core/command_line/mappings.json index b18384b89a5a8..1e07618a6754b 100644 --- a/llama-index-core/llama_index/core/command_line/mappings.json +++ b/llama-index-core/llama_index/core/command_line/mappings.json @@ -533,6 +533,7 @@ "AzureSpeechToolSpec": "llama_index.tools.azure_speech", "WolframAlphaToolSpec": "llama_index.tools.wolfram_alpha", "SlackToolSpec": "llama_index.tools.slack", + "LinkupToolSpec": "llama_index.tools.linkup_research", "TavilyToolSpec": "llama_index.tools.tavily_research", "ArxivToolSpec": "llama_index.tools.arxiv", "VectorDB": "llama_index.tools.vector_db", diff --git a/llama-index-core/llama_index/core/extractors/__init__.py b/llama-index-core/llama_index/core/extractors/__init__.py index 7860586b1f931..baaaf118491fe 100644 --- a/llama-index-core/llama_index/core/extractors/__init__.py +++ b/llama-index-core/llama_index/core/extractors/__init__.py @@ -6,6 +6,7 @@ SummaryExtractor, TitleExtractor, ) +from llama_index.core.extractors.document_context import DocumentContextExtractor __all__ = [ "SummaryExtractor", @@ -14,4 +15,5 @@ "KeywordExtractor", "BaseExtractor", "PydanticProgramExtractor", + "DocumentContextExtractor", ] diff --git a/llama-index-core/llama_index/core/extractors/document_context.py b/llama-index-core/llama_index/core/extractors/document_context.py new file mode 100644 index 0000000000000..a611462518bc9 --- /dev/null +++ b/llama-index-core/llama_index/core/extractors/document_context.py @@ -0,0 +1,334 @@ +import asyncio +import logging +import random +from functools import lru_cache +from typing import ( + Any, + ClassVar, + Coroutine, + Dict, + List, + Literal, + Optional, + Sequence, + Set, + Union, +) +from typing_extensions import TypeGuard + +from llama_index.core import Settings +from llama_index.core.async_utils import DEFAULT_NUM_WORKERS, run_jobs +from llama_index.core.extractors import BaseExtractor +from llama_index.core.llms import ChatMessage, ChatResponse, ImageBlock, LLM, TextBlock +from llama_index.core.schema import BaseNode, Node, TextNode +from llama_index.core.storage.docstore.simple_docstore import DocumentStore + + +def is_text_node(node: BaseNode) -> TypeGuard[Union[Node, TextNode]]: + return isinstance(node, (Node, TextNode)) + + +OversizeStrategy = Literal["warn", "error", "ignore"] + + +# original context prompt from the Anthropic cookbook/blogpost, works well +ORIGINAL_CONTEXT_PROMPT: str = """ +Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. +Answer only with the succinct context and nothing else. +""" + +# miniaturized context prompt, generates better results, produces more keyword-laden results for better matches +SUCCINCT_CONTEXT_PROMPT: str = """ +Generate keywords and brief phrases describing the main topics, entities, and actions in this text. Replace pronouns with their specific referents. Disambiguate pronouns and ambiguous terms in the chunk. Format as comma-separated phrases. Exclude meta-commentary about the text itself. +""" + + +class DocumentContextExtractor(BaseExtractor): + """ + An LLM-based context extractor for enhancing RAG accuracy through document analysis. + + ! Nodes that already have the 'key' in node.metadata will NOT be processed - will be skipped ! + + This extractor processes documents and their nodes to generate contextual metadata, + implementing the approach described in the Anthropic "Contextual Retrieval" blog post. + It handles rate limits, document size constraints, and parallel processing of nodes. + + Attributes: + llm (LLM): Language model instance for generating context + docstore (DocumentStore): Storage for parent documents + key (str): Metadata key for storing extracted context + prompt (str): Prompt template for context generation + doc_ids (Set[str]): Set of processed document IDs + max_context_length (int): Maximum allowed document context length + max_output_tokens (int): Maximum tokens in generated context + oversized_document_strategy (OversizeStrategy): Strategy for handling large documents + + Example: + ```python + extractor = DocumentContextExtractor( + docstore=my_docstore, + llm=my_llm, + max_context_length=64000, + max_output_tokens=256 + ) + metadata_list = await extractor.aextract(nodes) + ``` + """ + + # Pydantic fields + llm: LLM + docstore: DocumentStore + key: str + prompt: str + doc_ids: Set[str] + max_context_length: int + max_output_tokens: int + oversized_document_strategy: OversizeStrategy + num_workers: int = DEFAULT_NUM_WORKERS + + ORIGINAL_CONTEXT_PROMPT: ClassVar[str] = ORIGINAL_CONTEXT_PROMPT + SUCCINCT_CONTEXT_PROMPT: ClassVar[str] = SUCCINCT_CONTEXT_PROMPT + + DEFAULT_KEY: str = "context" + + def __init__( + self, + docstore: DocumentStore, + llm: Optional[LLM] = None, + max_context_length: int = 1000, + key: str = DEFAULT_KEY, + prompt: str = ORIGINAL_CONTEXT_PROMPT, + num_workers: int = DEFAULT_NUM_WORKERS, + max_output_tokens: int = 512, + oversized_document_strategy: OversizeStrategy = "warn", + **kwargs: Any, + ) -> None: + """Init params.""" + assert hasattr( + llm, "achat" + ) # not all LLMs have this, particularly the huggingfaceapi ones. + + super().__init__( + llm=llm or Settings.llm, + docstore=docstore, + key=key, + prompt=prompt, + doc_ids=set(), + max_context_length=max_context_length, + max_output_tokens=max_output_tokens, + oversized_document_strategy=oversized_document_strategy, + num_workers=num_workers, + **kwargs, + ) + + # this can take a surprisingly long time on longer docs so we cache it. For oversized docs, we end up counting twice, the 2nd time without the cache. + # but if you're repeateddly running way oversize docs, the time that takes won't be what matters anyways. + @staticmethod + @lru_cache(maxsize=1000) + def _count_tokens(text: str) -> int: + """ + This can take a surprisingly long time on longer docs so we cache it, and we need to call it on every doc, regardless of size. + """ + encoder = Settings.tokenizer + tokens = encoder(text) + return len(tokens) + + async def _agenerate_node_context( + self, + node: Union[Node, TextNode], + metadata: Dict, + document: Union[Node, TextNode], + prompt: str, + key: str, + ) -> Dict: + """ + Generate context for a node using LLM with retry logic. + + Implements exponential backoff for rate limit handling and uses prompt + caching when available. The function retries on rate limits. + + Args: + node: Node to generate context for + metadata: Metadata dictionary to update + document: Parent document containing the node + prompt: Prompt template for context generation + key: Metadata key for storing generated context + + Returns: + Updated metadata dictionary with generated context + + Note: + Uses exponential backoff starting at 60 seconds with up to 5 retries + for rate limit handling. + """ + cached_text = f"{document.get_content()}" + messages = [ + ChatMessage( + role="user", + content=[ + TextBlock( + text=cached_text, + type="text", + ) + ], + additional_kwargs={"cache_control": {"type": "ephemeral"}}, + ), + ChatMessage( + role="user", + content=[ + TextBlock( + text=f"Here is the chunk we want to situate within the whole document:\n{node.get_content()}\n{prompt}", + type="text", + ) + ], + ), + ] + + max_retries = 5 + base_delay = 60 + + for attempt in range(max_retries): + try: + # Extra headers typically dont cause issues + headers = {"anthropic-beta": "prompt-caching-2024-07-31"} + + response: ChatResponse = await self.llm.achat( + messages, max_tokens=self.max_output_tokens, extra_headers=headers + ) + + first_block: Union[TextBlock, ImageBlock] = response.message.blocks[0] + if isinstance(first_block, TextBlock): + metadata[key] = first_block.text + else: + logging.warning( + f"Received non-text block type: {type(first_block)}" + ) + return metadata + + except Exception as e: + is_rate_limit = any( + message in str(e).lower() + for message in ["rate limit", "too many requests", "429"] + ) + + if is_rate_limit and attempt < max_retries - 1: + delay = (base_delay * (2**attempt)) + (random.random() * 0.5) + logging.warning( + f"Rate limit hit, retrying in {delay:.1f} seconds " + f"(attempt {attempt + 1}/{max_retries})" + ) + await asyncio.sleep(delay) + continue + + if is_rate_limit: + logging.error( + f"Failed after {max_retries} retries due to rate limiting" + ) + else: + logging.warning( + f"Error generating context for node {node.node_id}: {e}", + exc_info=True, + ) + return metadata + + return metadata + + async def _get_document(self, doc_id: str) -> Optional[Union[Node, TextNode]]: + """Counting tokens can be slow, as can awaiting the docstore (potentially), so we keep a small lru_cache.""" + # first we need to get the document + try: + doc = await self.docstore.aget_document(doc_id) + except ValueError as e: + if "not found" in str(e): + logging.warning(f"Document {doc_id} not found in docstore") + return None + if not doc: + logging.warning(f"Document {doc_id} not found in docstore") + return None + if not is_text_node(doc): + logging.warning(f"Document {doc_id} is not an instance of (TextNode, Node)") + return None + + # then truncate if necessary. + if self.max_context_length is not None: + strategy = self.oversized_document_strategy + token_count = self._count_tokens(doc.get_content()) + if token_count > self.max_context_length: + message = ( + f"Document {doc.node_id} is too large ({token_count} tokens) " + f"to be processed. Doc metadata: {doc.metadata}" + ) + + if strategy == "warn": + logging.warning(message) + elif strategy == "error": + raise ValueError(message) + elif strategy == "ignore": + pass + else: + raise ValueError(f"Unknown oversized document strategy: {strategy}") + + return doc + + async def aextract(self, nodes: Sequence[BaseNode]) -> List[Dict]: + """ + Extract context for multiple nodes asynchronously, optimized for loosely ordered nodes. + Processes each node independently without guaranteeing sequential document handling. + Nodes will be *mostly* processed in document-order assuming nodes get passed in document-order. + + Args: + nodes: List of nodes to process, ideally grouped by source document + + Returns: + List of metadata dictionaries with generated context + """ + metadata_list: List[Dict] = [] + for _ in nodes: + metadata_list.append({}) + metadata_map = { + node.node_id: metadata_dict + for metadata_dict, node in zip(metadata_list, nodes) + } + + # sorting takes a tiny amount of time - 0.4s for 1_000_000 nodes. but 1_000_000 nodes takes potentially hours to process + # considering sorting CAN save the users hundreds of dollars in API costs, we just sort and leave no option to do otherwise. + # The math always works out in the user's favor and we can't guarantee things are sorted in the first place. + sorted_nodes = sorted( + nodes, key=lambda n: n.source_node.node_id if n.source_node else "" + ) + + # iterate over all the nodes and generate the jobs + node_tasks: List[Coroutine[Any, Any, Any]] = [] + for node in sorted_nodes: + if not (node.source_node and is_text_node(node)): + continue + + # Skip already processed nodes + if self.key in node.metadata: + continue + + doc: Optional[Union[Node, TextNode]] = await self._get_document( + node.source_node.node_id + ) + if not doc: + continue + + metadata = metadata_map[node.node_id] + # this modifies metadata in-place, adding a new key to the dictionary - we needed do anytyhing with the return value + task = self._agenerate_node_context( + node, metadata, doc, self.prompt, self.key + ) + node_tasks.append(task) + + # then run the jobs - this does return the metadata list, but we already have it + await run_jobs( + node_tasks, + show_progress=self.show_progress, + workers=self.num_workers, + ) + + return metadata_list + + +if __name__ == "__main__": + print(DocumentContextExtractor.ORIGINAL_CONTEXT_PROMPT) diff --git a/llama-index-core/llama_index/core/indices/struct_store/sql_query.py b/llama-index-core/llama_index/core/indices/struct_store/sql_query.py index b7d8bcbf66c72..0c23c3d6e796a 100644 --- a/llama-index-core/llama_index/core/indices/struct_store/sql_query.py +++ b/llama-index-core/llama_index/core/indices/struct_store/sql_query.py @@ -3,7 +3,7 @@ import logging from abc import abstractmethod from typing import Any, Dict, List, Optional, Tuple, Union, cast - +from llama_index.core.indices.base import BaseRetriever from llama_index.core.base.base_query_engine import BaseQueryEngine from llama_index.core.base.response.schema import ( RESPONSE_TYPE, @@ -590,6 +590,7 @@ def __init__( self, sql_database: SQLDatabase, table_retriever: ObjectRetriever[SQLTableSchema], + rows_retrievers: Optional[dict[str, BaseRetriever]] = None, llm: Optional[LLM] = None, text_to_sql_prompt: Optional[BasePromptTemplate] = None, context_query_kwargs: Optional[dict] = None, @@ -608,9 +609,11 @@ def __init__( text_to_sql_prompt=text_to_sql_prompt, context_query_kwargs=context_query_kwargs, table_retriever=table_retriever, + rows_retrievers=rows_retrievers, context_str_prefix=context_str_prefix, sql_only=sql_only, callback_manager=callback_manager, + verbose=kwargs.get("verbose", False), ) super().__init__( synthesize_response=synthesize_response, diff --git a/llama-index-core/llama_index/core/indices/struct_store/sql_retriever.py b/llama-index-core/llama_index/core/indices/struct_store/sql_retriever.py index 7d7b531f5f2e6..2c4c46ea8d095 100644 --- a/llama-index-core/llama_index/core/indices/struct_store/sql_retriever.py +++ b/llama-index-core/llama_index/core/indices/struct_store/sql_retriever.py @@ -189,6 +189,8 @@ class NLSQLRetriever(BaseRetriever, PromptMixin): tables (Union[List[str], List[Table]]): List of table names or Table objects. table_retriever (ObjectRetriever[SQLTableSchema]): Object retriever for SQLTableSchema objects. Defaults to None. + rows_retriever (Dict[str, VectorIndexRetriever]): a mapping between table name and + a vector index retriever of its rows. Defaults to None. context_str_prefix (str): Prefix for context string. Defaults to None. return_raw (bool): Whether to return plain-text dump of SQL results, or parsed into Nodes. handle_sql_errors (bool): Whether to handle SQL errors. Defaults to True. @@ -205,6 +207,7 @@ def __init__( context_query_kwargs: Optional[dict] = None, tables: Optional[Union[List[str], List[Table]]] = None, table_retriever: Optional[ObjectRetriever[SQLTableSchema]] = None, + rows_retrievers: Optional[dict[str, BaseRetriever]] = None, context_str_prefix: Optional[str] = None, sql_parser_mode: SQLParserMode = SQLParserMode.DEFAULT, llm: Optional[LLM] = None, @@ -232,6 +235,9 @@ def __init__( self._handle_sql_errors = handle_sql_errors self._sql_only = sql_only self._verbose = verbose + + # To retrieve relevant rows from each retrieved table + self._rows_retrievers = rows_retrievers super().__init__( callback_manager=callback_manager or Settings.callback_manager, verbose=verbose, @@ -391,26 +397,32 @@ async def _aretrieve(self, query_bundle: QueryBundle) -> List[NodeWithScore]: return retrieved_nodes def _get_table_context(self, query_bundle: QueryBundle) -> str: - """Get table context. - - Get tables schema + optional context as a single string. - - """ + """Get table context string.""" table_schema_objs = self._get_tables(query_bundle.query_str) context_strs = [] - if self._context_str_prefix is not None: - context_strs = [self._context_str_prefix] - for table_schema_obj in table_schema_objs: + # first append table info + additional context table_info = self._sql_database.get_single_table_info( table_schema_obj.table_name ) - if table_schema_obj.context_str: table_opt_context = " The table description is: " table_opt_context += table_schema_obj.context_str table_info += table_opt_context + # also lookup vector index to return relevant table rows + # if rows_retrievers was not passed, no rows will be returned + if self._rows_retrievers is not None: + rows_retriever = self._rows_retrievers[table_schema_obj.table_name] + relevant_nodes = rows_retriever.retrieve(query_bundle.query_str) + if len(relevant_nodes) > 0: + table_row_context = "\nHere are some relevant example rows (values in the same order as columns above)\n" + for node in relevant_nodes: + table_row_context += str(node.get_content()) + "\n" + table_info += table_row_context + + if self._verbose: + print(f"> Table Info: {table_info}") context_strs.append(table_info) return "\n\n".join(context_strs) diff --git a/llama-index-core/llama_index/core/llms/utils.py b/llama-index-core/llama_index/core/llms/utils.py index 5db7e6f7b3ed6..e949896fd4ae6 100644 --- a/llama-index-core/llama_index/core/llms/utils.py +++ b/llama-index-core/llama_index/core/llms/utils.py @@ -153,10 +153,20 @@ def parse_partial_json(s: str) -> Dict: # Append the processed character to the new string. new_s += char - # If we're still inside a string at the end of processing, we need to close the string. - if is_inside_string: + # If we're still inside a string at the end of processing and no colon was found after the opening quote, + # this is an incomplete key - remove it + if is_inside_string and '"' in new_s and ":" not in new_s[new_s.rindex('"') :]: + new_s = new_s[: new_s.rindex('"')] + elif is_inside_string: new_s += '"' + # Check if we have an incomplete key-value pair + new_s = new_s.rstrip() + if new_s.endswith(":"): + new_s += " null" # Add a default value for incomplete value + elif new_s.endswith(","): + new_s = new_s[:-1] # Remove the trailing comma + # Close any remaining open structures in the reverse order that they were opened. for closing_char in reversed(stack): new_s += closing_char diff --git a/llama-index-core/llama_index/core/node_parser/file/markdown.py b/llama-index-core/llama_index/core/node_parser/file/markdown.py index 3497998a4ffcd..ef3a5f6a27a8e 100644 --- a/llama-index-core/llama_index/core/node_parser/file/markdown.py +++ b/llama-index-core/llama_index/core/node_parser/file/markdown.py @@ -40,8 +40,8 @@ def get_nodes_from_node(self, node: BaseNode) -> List[TextNode]: markdown_nodes = [] lines = text.split("\n") current_section = "" - # Keep track of headers at each level - header_stack: List[str] = [] + # Keep track of (markdown level, text) for headers + header_stack: List[tuple[int, str]] = [] code_block = False for line in lines: @@ -61,20 +61,22 @@ def get_nodes_from_node(self, node: BaseNode) -> List[TextNode]: self._build_node_from_split( current_section.strip(), node, - "/".join(header_stack[:-1]) if header_stack else "", + "/".join(h[1] for h in header_stack[:-1]), ) ) - level = len(header_match.group(1)) + header_level = len(header_match.group(1)) header_text = header_match.group(2) - # Pop headers of equal or higher level - while header_stack and len(header_stack) >= level: + # Compare against top-of-stack item’s markdown level. + # Pop headers of equal or higher markdown level; not necessarily current stack size / depth. + # Hierarchy depth gets deeper one level at a time, but markdown headers can jump from H1 to H3, for example. + while header_stack and header_stack[-1][0] >= header_level: header_stack.pop() # Add the new header - header_stack.append(header_text) - current_section = "#" * level + f" {header_text}\n" + header_stack.append((header_level, header_text)) + current_section = "#" * header_level + f" {header_text}\n" continue current_section += line + "\n" @@ -85,7 +87,7 @@ def get_nodes_from_node(self, node: BaseNode) -> List[TextNode]: self._build_node_from_split( current_section.strip(), node, - "/".join(header_stack[:-1]) if header_stack else "", + "/".join(h[1] for h in header_stack[:-1]), ) ) diff --git a/llama-index-core/llama_index/core/output_parsers/utils.py b/llama-index-core/llama_index/core/output_parsers/utils.py index 8ab381cd2910f..1bee6ea640612 100644 --- a/llama-index-core/llama_index/core/output_parsers/utils.py +++ b/llama-index-core/llama_index/core/output_parsers/utils.py @@ -65,6 +65,11 @@ def parse_code_markdown(text: str, only_last: bool) -> List[str]: # Regular expression pattern to match code within triple-backticks pattern = r"```(.*?)```" + # Regular expression pattern to match code within triple backticks with + # a Python marker. Like: ```python df.columns``` + python_str_pattern = re.compile(r"^```python", re.IGNORECASE) + text = python_str_pattern.sub("```", text) + # Find all matches of the pattern in the text matches = re.findall(pattern, text, re.DOTALL) diff --git a/llama-index-core/llama_index/core/prompts/base.py b/llama-index-core/llama_index/core/prompts/base.py index 7ee1067184019..c5e2c729694a3 100644 --- a/llama-index-core/llama_index/core/prompts/base.py +++ b/llama-index-core/llama_index/core/prompts/base.py @@ -47,6 +47,7 @@ from llama_index.core.base.llms.generic_utils import ( prompt_to_messages, ) +from llama_index.core.base.llms.types import ContentBlock, TextBlock from llama_index.core.prompts.prompt_type import PromptType from llama_index.core.prompts.utils import get_template_vars, format_string from llama_index.core.types import BaseOutputParser @@ -305,20 +306,30 @@ def format_messages( messages: List[ChatMessage] = [] for message_template in self.message_templates: - message_content = message_template.content or "" - - template_vars = get_template_vars(message_content) - relevant_kwargs = { - k: v for k, v in mapped_all_kwargs.items() if k in template_vars - } - content_template = message_template.content or "" - - # if there's mappings specified, make sure those are used - content = format_string(content_template, **relevant_kwargs) - - message: ChatMessage = message_template.model_copy() - message.content = content - messages.append(message) + # Handle messages with multiple blocks + if message_template.blocks: + formatted_blocks: List[ContentBlock] = [] + for block in message_template.blocks: + if isinstance(block, TextBlock): + template_vars = get_template_vars(block.text) + relevant_kwargs = { + k: v + for k, v in mapped_all_kwargs.items() + if k in template_vars + } + formatted_text = format_string(block.text, **relevant_kwargs) + formatted_blocks.append(TextBlock(text=formatted_text)) + else: + # For non-text blocks (like images), keep them as is + # TODO: can images be formatted as variables? + formatted_blocks.append(block) + + message = message_template.model_copy() + message.blocks = formatted_blocks + messages.append(message) + else: + # Handle empty messages (if any) + messages.append(message_template.model_copy()) if self.output_parser is not None: messages = self.output_parser.format_messages(messages) diff --git a/llama-index-core/llama_index/core/readers/file/base.py b/llama-index-core/llama_index/core/readers/file/base.py index c490486666217..bdb4f0ed1501b 100644 --- a/llama-index-core/llama_index/core/readers/file/base.py +++ b/llama-index-core/llama_index/core/readers/file/base.py @@ -199,6 +199,7 @@ class SimpleDirectoryReader(BaseReader, ResourcesReaderMixin, FileSystemReaderMi (Optional; overrides input_dir, exclude) exclude (List): glob of python file paths to exclude (Optional) exclude_hidden (bool): Whether to exclude hidden files (dotfiles). + exclude_empty (bool): Whether to exclude empty files (Optional). encoding (str): Encoding of the files. Default is utf-8. errors (str): how encoding and decoding errors are to be handled, @@ -231,6 +232,7 @@ def __init__( input_files: list | None = None, exclude: list | None = None, exclude_hidden: bool = True, + exclude_empty: bool = False, errors: str = "ignore", recursive: bool = False, encoding: str = "utf-8", @@ -255,6 +257,7 @@ def __init__( self.exclude = exclude self.recursive = recursive self.exclude_hidden = exclude_hidden + self.exclude_empty = exclude_empty self.required_exts = required_exts self.num_files_limit = num_files_limit self.raise_on_error = raise_on_error @@ -283,6 +286,11 @@ def is_hidden(self, path: Path | PurePosixPath) -> bool: part.startswith(".") and part not in [".", ".."] for part in path.parts ) + def is_empty_file(self, path: Path | PurePosixPath) -> bool: + if isinstance(path, PurePosixPath): + path = Path(path) + return path.is_file() and len(path.read_bytes()) == 0 + def _add_files(self, input_dir: Path | PurePosixPath) -> list[Path | PurePosixPath]: """Add files.""" all_files: set[Path | PurePosixPath] = set() @@ -317,6 +325,7 @@ def _add_files(self, input_dir: Path | PurePosixPath) -> list[Path | PurePosixPa ref = _Path(_ref) is_dir = self.fs.isdir(ref) skip_because_hidden = self.exclude_hidden and self.is_hidden(ref) + skip_because_empty = self.exclude_empty and self.is_empty_file(ref) skip_because_bad_ext = ( self.required_exts is not None and ref.suffix not in self.required_exts ) @@ -342,6 +351,7 @@ def _add_files(self, input_dir: Path | PurePosixPath) -> list[Path | PurePosixPa or skip_because_hidden or skip_because_bad_ext or skip_because_excluded + or skip_because_empty ): continue else: diff --git a/llama-index-core/llama_index/core/schema.py b/llama-index-core/llama_index/core/schema.py index 5b3c1d9302a3d..1aaf8bc4906d2 100644 --- a/llama-index-core/llama_index/core/schema.py +++ b/llama-index-core/llama_index/core/schema.py @@ -794,7 +794,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None: kwargs["image_mimetype"] = ir.get("mimetype", None) mimetype = kwargs.get("image_mimetype") - if not mimetype and "image_path" in kwargs: + if not mimetype and kwargs.get("image_path") is not None: # guess mimetype from image_path extension = Path(kwargs["image_path"]).suffix.replace(".", "") if ftype := filetype.get_type(ext=extension): @@ -1010,8 +1010,16 @@ def __init__(self, **data: Any) -> None: if "text" in data: text = data.pop("text") if "text_resource" in data: - msg = "'text' is deprecated and 'text_resource' will be used instead" - logging.warning(msg) + text_resource = ( + data["text_resource"] + if isinstance(data["text_resource"], MediaResource) + else MediaResource.model_validate(data["text_resource"]) + ) + if (text_resource.text or "").strip() != text.strip(): + msg = ( + "'text' is deprecated and 'text_resource' will be used instead" + ) + logging.warning(msg) else: data["text_resource"] = MediaResource(text=text) diff --git a/llama-index-core/pyproject.toml b/llama-index-core/pyproject.toml index ec6c274227427..c0f9e6b335a52 100644 --- a/llama-index-core/pyproject.toml +++ b/llama-index-core/pyproject.toml @@ -46,7 +46,7 @@ name = "llama-index-core" packages = [{include = "llama_index"}] readme = "README.md" repository = "https://github.com/run-llama/llama_index" -version = "0.12.11" +version = "0.12.14" [tool.poetry.dependencies] SQLAlchemy = {extras = ["asyncio"], version = ">=1.4.49"} diff --git a/llama-index-core/tests/extractors/BUILD b/llama-index-core/tests/extractors/BUILD new file mode 100644 index 0000000000000..57341b1358b56 --- /dev/null +++ b/llama-index-core/tests/extractors/BUILD @@ -0,0 +1,3 @@ +python_tests( + name="tests", +) diff --git a/llama-index-core/tests/extractors/test_document_context_extractor.py b/llama-index-core/tests/extractors/test_document_context_extractor.py new file mode 100644 index 0000000000000..e7e63b1e1d506 --- /dev/null +++ b/llama-index-core/tests/extractors/test_document_context_extractor.py @@ -0,0 +1,171 @@ +import pytest + +from llama_index.core.extractors import DocumentContextExtractor +from llama_index.core.llms import ChatMessage, ChatResponse, MockLLM +from llama_index.core.schema import Document, NodeRelationship, TextNode +from llama_index.core.storage.docstore.simple_docstore import SimpleDocumentStore + + +@pytest.fixture() +def mock_llm(): + class CustomMockLLM(MockLLM): + def chat(self, messages, **kwargs): + return ChatResponse( + message=ChatMessage( + role="assistant", + blocks=[ + { + "text": f"Context for the provided chunk", + "block_type": "text", + } + ], + ) + ) + + return CustomMockLLM() + + +@pytest.fixture() +def sample_documents(): + return [ + Document( + text="This is chapter 1. It contains important information. This is a test document.", + metadata={"title": "Doc 1"}, + ), + Document( + text="Chapter 2 builds on previous concepts. It introduces new ideas. More test content here.", + metadata={"title": "Doc 2"}, + ), + ] + + +@pytest.fixture() +def create_text_nodes(): + def _create_nodes(document, texts): + doc_info = document.as_related_node_info() + return [ + TextNode( + text=text, + metadata={}, + relationships={NodeRelationship.SOURCE: doc_info}, + ) + for text in texts + ] + + return _create_nodes + + +@pytest.fixture() +def docstore(sample_documents): + docstore = SimpleDocumentStore() + for doc in sample_documents: + docstore.add_documents([doc]) + return docstore + + +@pytest.fixture() +def context_extractor(docstore, mock_llm): + return DocumentContextExtractor( + docstore=docstore, + llm=mock_llm, + max_context_length=1000, + max_output_tokens=100, + oversized_document_strategy="error", + ) + + +@pytest.mark.asyncio() +async def test_context_extraction_basic( + context_extractor, sample_documents, create_text_nodes +): + doc = sample_documents[0] + nodes = create_text_nodes( + doc, ["This is chapter 1.", "It contains important information."] + ) + + try: + metadata_list = await context_extractor.aextract(nodes) + print("METADATA LIST: ", metadata_list) + + if metadata_list is None: + raise ValueError("context_extractor.aextract() returned None") + + assert len(metadata_list) == len(nodes) + for metadata in metadata_list: + assert "context" in metadata + assert metadata["context"] == "Context for the provided chunk" + + except Exception as e: + print(f"Error during extraction: {e!s}") + raise + + +def test_invalid_oversized_strategy(): + with pytest.raises(ValueError): + DocumentContextExtractor( + docstore=SimpleDocumentStore(), + llm=MockLLM(), + max_context_length=1000, + max_output_tokens=100, + oversized_document_strategy="invalid_strategy", + ) + + +@pytest.mark.asyncio() +async def test_context_extraction_oversized_document(create_text_nodes): + large_doc = Document( + text="This is a very long document. " * 1000, metadata={"title": "Large Doc"} + ) + + docstore = SimpleDocumentStore() + docstore.add_documents([large_doc]) + + extractor = DocumentContextExtractor( + docstore=docstore, + llm=MockLLM(), + max_context_length=100, # Small limit to trigger error + max_output_tokens=50, + oversized_document_strategy="error", + ) + + nodes = create_text_nodes(large_doc, ["This is a test chunk."]) + + with pytest.raises(ValueError): + await extractor.aextract(nodes) + + +@pytest.mark.asyncio() +async def test_context_extraction_custom_prompt( + docstore, mock_llm, sample_documents, create_text_nodes +): + custom_prompt = "Generate a detailed context for this chunk:" + extractor = DocumentContextExtractor( + docstore=docstore, + llm=mock_llm, + prompt=DocumentContextExtractor.ORIGINAL_CONTEXT_PROMPT, + max_context_length=1000, + max_output_tokens=100, + ) + + nodes = create_text_nodes(sample_documents[0], ["Test chunk"]) + + metadata_list = await extractor.aextract(nodes) + assert len(metadata_list) == 1 + assert "context" in metadata_list[0] + + +@pytest.mark.asyncio() +async def test_multiple_documents_context( + context_extractor, sample_documents, create_text_nodes +): + # Create nodes from different documents + nodes = create_text_nodes( + sample_documents[0], ["This is chapter 1."] + ) + create_text_nodes( + sample_documents[1], ["Chapter 2 builds on previous concepts."] + ) + + metadata_list = await context_extractor.aextract(nodes) + assert len(metadata_list) == 2 + for metadata in metadata_list: + assert "context" in metadata diff --git a/llama-index-core/tests/indices/struct_store/test_sql_query.py b/llama-index-core/tests/indices/struct_store/test_sql_query.py index a76044d2d2bd2..21d8553166731 100644 --- a/llama-index-core/tests/indices/struct_store/test_sql_query.py +++ b/llama-index-core/tests/indices/struct_store/test_sql_query.py @@ -2,16 +2,32 @@ import pytest from llama_index.core.async_utils import asyncio_run +from llama_index.core.indices.vector_store import VectorStoreIndex from llama_index.core.indices.struct_store.base import default_output_parser from llama_index.core.indices.struct_store.sql import SQLStructStoreIndex from llama_index.core.indices.struct_store.sql_query import ( NLSQLTableQueryEngine, NLStructStoreQueryEngine, SQLStructStoreQueryEngine, + SQLTableRetrieverQueryEngine, ) -from llama_index.core.schema import Document +from llama_index.core.objects import ( + SQLTableNodeMapping, + ObjectIndex, + SQLTableSchema, +) +from llama_index.core.schema import Document, TextNode from llama_index.core.utilities.sql_wrapper import SQLDatabase -from sqlalchemy import Column, Integer, MetaData, String, Table, create_engine +from sqlalchemy import ( + Column, + Integer, + MetaData, + String, + Table, + create_engine, + insert, + text, +) from sqlalchemy.exc import OperationalError @@ -227,3 +243,89 @@ def test_nl_query_engine_parser( nl_query_engine._parse_response_to_sql(response) == "SELECT * FROM table WHERE name = ''O''Reilly'';" ) + + +def test_sql_table_retriever_query_engine_with_rows_retriever( + patch_llm_predictor, + patch_token_text_splitter, + struct_kwargs: Tuple[Dict, Dict], +) -> None: + """Test SQLTableRetrieverQueryEngine.""" + index_kwargs, query_kwargs = struct_kwargs + sql_to_test = "SELECT user_id, foo FROM test_table" + engine = create_engine("sqlite:///:memory:") + metadata_obj = MetaData() + table_name = "test_table" + # NOTE: table is created by tying to metadata_obj + table_instance = Table( + table_name, + metadata_obj, + Column("user_id", Integer, primary_key=True), + Column("foo", String(16), nullable=False), + ) + metadata_obj.create_all(engine) + sql_database = SQLDatabase(engine) + # Inserting fake values into table + statement = insert(table_instance).values( + [{"user_id": 2, "foo": "bar"}, {"user_id": 8, "foo": "hello"}] + ) + with engine.connect() as conn: + conn.execute(statement) + conn.commit() + + # Building rows retriever + with engine.connect() as conn: + cursor = conn.execute(text(f'SELECT * FROM "{table_name}"')) + result = cursor.fetchall() + row_tups = [] + for row in result: + row_tups.append(tuple(row)) + # index each row, put into vector store index + nodes = [TextNode(text=str(t)) for t in result] + index = VectorStoreIndex(nodes) + rows_retrievers = {table_name: index.as_retriever()} + + # Building the table retriever + table_node_mapping = SQLTableNodeMapping(sql_database) + table_schema_objs = [ + SQLTableSchema( + table_name=table_name, + context_str="This table contains information about user id and the foo attribute.", + ) + ] # add a SQLTableSchema for each table + obj_index = ObjectIndex.from_objects( + table_schema_objs, + table_node_mapping, + VectorStoreIndex, # type: ignore + ) + table_retriever = obj_index.as_retriever() + + # query the index with natural language + nl_query_engine = SQLTableRetrieverQueryEngine( + sql_database, table_retriever, rows_retrievers + ) + response = nl_query_engine.query("test_table:user_id,foo") + assert str(response) == "[(2, 'bar'), (8, 'hello')]" + + nl_table_engine = SQLTableRetrieverQueryEngine( + sql_database, table_retriever, rows_retrievers, sql_only=True + ) + response = nl_table_engine.query("test_table:user_id,foo") + assert str(response) == sql_to_test + + # query with markdown return + nl_table_engine = SQLTableRetrieverQueryEngine( + sql_database, + table_retriever, + rows_retrievers, + synthesize_response=False, + markdown_response=True, + ) + response = nl_table_engine.query("test_table:user_id,foo") + assert ( + str(response) + == """| user_id | foo | +|---|---| +| 2 | bar | +| 8 | hello |""" + ) diff --git a/llama-index-core/tests/node_parser/test_markdown.py b/llama-index-core/tests/node_parser/test_markdown.py index f8eb4e85bc344..c53d481b371d9 100644 --- a/llama-index-core/tests/node_parser/test_markdown.py +++ b/llama-index-core/tests/node_parser/test_markdown.py @@ -144,3 +144,25 @@ def test_header_metadata() -> None: assert splits[1].metadata == {"header_path": "/Main Header/"} assert splits[2].metadata == {"header_path": "/Main Header/Sub-header/"} assert splits[3].metadata == {"header_path": "/"} + + +def test_header_metadata_with_level_jump() -> None: + markdown_parser = MarkdownNodeParser() + + splits = markdown_parser.get_nodes_from_documents( + [ + Document( + text="""# Main Header +Content +### Sub-header +Content +### Sub-sub header +Content +""" + ) + ] + ) + assert len(splits) == 3 + assert splits[0].metadata == {"header_path": "/"} + assert splits[1].metadata == {"header_path": "/Main Header/"} + assert splits[2].metadata == {"header_path": "/Main Header/"} diff --git a/llama-index-experimental/llama_index/experimental/query_engine/pandas/output_parser.py b/llama-index-experimental/llama_index/experimental/query_engine/pandas/output_parser.py index 8e8681c169463..d308d6a75d628 100644 --- a/llama-index-experimental/llama_index/experimental/query_engine/pandas/output_parser.py +++ b/llama-index-experimental/llama_index/experimental/query_engine/pandas/output_parser.py @@ -32,7 +32,9 @@ def default_output_processor( local_vars = {"df": df, "pd": pd} global_vars = {"np": np} - output = parse_code_markdown(output, only_last=True)[0] + output = parse_code_markdown(output, only_last=True) + if not isinstance(output, str): + output = output[0] # NOTE: inspired from langchain's tool # see langchain.tools.python.tool (PythonAstREPLTool) diff --git a/llama-index-experimental/pyproject.toml b/llama-index-experimental/pyproject.toml index 923b0dcf09493..aa5271424d45d 100644 --- a/llama-index-experimental/pyproject.toml +++ b/llama-index-experimental/pyproject.toml @@ -25,11 +25,11 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-experimental" readme = "README.md" -version = "0.5.2" +version = "0.5.3" [tool.poetry.dependencies] python = ">=3.10,<4.0" -llama-index-core = "^0.12.0" +llama-index-core = "^0.12.13" llama-index-finetuning = "^0.3.0" pandas = "*" diff --git a/llama-index-integrations/agent/llama-index-agent-openai/llama_index/agent/openai/step.py b/llama-index-integrations/agent/llama-index-agent-openai/llama_index/agent/openai/step.py index cc13e9c3fdd76..1658bc0fdb13f 100644 --- a/llama-index-integrations/agent/llama-index-agent-openai/llama_index/agent/openai/step.py +++ b/llama-index-integrations/agent/llama-index-agent-openai/llama_index/agent/openai/step.py @@ -700,8 +700,8 @@ async def _arun_step( ) # Process results - for return_direct in tool_results: - task.extra_state["sources"].append(latest_tool_outputs[-1]) + for index, return_direct in enumerate(tool_results): + task.extra_state["sources"].append(latest_tool_outputs[index]) # change function call to the default value if a custom function was given if tool_choice not in ("auto", "none"): @@ -711,7 +711,7 @@ async def _arun_step( # If any tool call requests direct return and it's the only call if return_direct and len(latest_tool_calls) == 1: is_done = True - response_str = latest_tool_outputs[-1].content + response_str = latest_tool_outputs[index].content chat_response = ChatResponse( message=ChatMessage( role=MessageRole.ASSISTANT, content=response_str diff --git a/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml b/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml index 9dda843b6e317..e746a2c1efd22 100644 --- a/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml +++ b/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml @@ -28,7 +28,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-agent-openai" readme = "README.md" -version = "0.4.2" +version = "0.4.3" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/llama_index/embeddings/bedrock/base.py b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/llama_index/embeddings/bedrock/base.py index d88cde678d6da..4bb75fac55400 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/llama_index/embeddings/bedrock/base.py +++ b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/llama_index/embeddings/bedrock/base.py @@ -77,7 +77,10 @@ class BedrockEmbedding(BaseEmbedding): additional_kwargs: Dict[str, Any] = Field( default_factory=dict, description="Additional kwargs for the bedrock client." ) + + _config: Any = PrivateAttr() _client: Any = PrivateAttr() + _asession: Any = PrivateAttr() def __init__( self, @@ -113,30 +116,11 @@ def __init__( "botocore_session": botocore_session, } - try: - import boto3 - from botocore.config import Config - - config = ( - Config( - retries={"max_attempts": max_retries, "mode": "standard"}, - connect_timeout=timeout, - read_timeout=timeout, - ) - if botocore_config is None - else botocore_config - ) - session = boto3.Session(**session_kwargs) - except ImportError: - raise ImportError( - "boto3 package not found, install with" "'pip install boto3'" - ) - super().__init__( model_name=model_name, max_retries=max_retries, timeout=timeout, - botocore_config=config, + botocore_config=botocore_config, profile_name=profile_name, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, @@ -153,6 +137,28 @@ def __init__( **kwargs, ) + try: + import boto3 + import aioboto3 + from botocore.config import Config + + self._config = ( + Config( + retries={"max_attempts": max_retries, "mode": "standard"}, + connect_timeout=timeout, + read_timeout=timeout, + ) + if botocore_config is None + else botocore_config + ) + session = boto3.Session(**session_kwargs) + self._asession = aioboto3.Session(**session_kwargs) + except ImportError: + raise ImportError( + "boto3 and/or aioboto3 package not found, install with" + "'pip install boto3 aioboto3" + ) + # Prior to general availability, custom boto3 wheel files were # distributed that used the bedrock service to invokeModel. # This check prevents any services still using those wheel files @@ -160,9 +166,9 @@ def __init__( if client is not None: self._client = client elif "bedrock-runtime" in session.get_available_services(): - self._client = session.client("bedrock-runtime", config=config) + self._client = session.client("bedrock-runtime", config=self._config) else: - self._client = session.client("bedrock", config=config) + self._client = session.client("bedrock", config=self._config) @staticmethod def list_supported_models() -> Dict[str, List[str]]: @@ -436,8 +442,43 @@ def _get_request_body( raise ValueError("Provider not supported") return request_body + async def _aget_embedding( + self, payload: Union[str, List[str]], type: Literal["text", "query"] + ) -> Union[Embedding, List[Embedding]]: + """Get the embedding asynchronously for the given payload. + + Args: + payload (Union[str, List[str]]): The text or list of texts for which the embeddings are to be obtained. + type (Literal["text", "query"]): The type of the payload. It can be either "text" or "query". + + Returns: + Union[Embedding, List[Embedding]]: The embedding or list of embeddings for the given payload. If the payload is a list of strings, then the response will be a list of embeddings. + """ + if self._asession is None: + raise ValueError("Client not set") + + provider = self.model_name.split(".")[0] + request_body = self._get_request_body(provider, payload, type) + + async with self._asession.client( + "bedrock-runtime", config=self._config + ) as client: + response = await client.invoke_model( + body=request_body, + modelId=self.model_name, + accept="application/json", + contentType="application/json", + ) + streaming_body = await response.get("body").read() + resp = json.loads(streaming_body.decode("utf-8")) + + identifiers = PROVIDER_SPECIFIC_IDENTIFIERS.get(provider, None) + if identifiers is None: + raise ValueError("Provider not supported") + return identifiers["get_embeddings_func"](resp, isinstance(payload, list)) + async def _aget_query_embedding(self, query: str) -> Embedding: - return self._get_embedding(query, "query") + return await self._aget_embedding(query, "query") async def _aget_text_embedding(self, text: str) -> Embedding: - return self._get_embedding(text, "text") + return await self._aget_embedding(text, "text") diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml index 76e8e422c676e..2af00325a3eb5 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml +++ b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml @@ -27,11 +27,12 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-embeddings-bedrock" readme = "README.md" -version = "0.4.0" +version = "0.5.0" [tool.poetry.dependencies] python = ">=3.9,<4.0" boto3 = "^1.34.23" +aioboto3 = "^13.1.1" llama-index-core = "^0.12.0" [tool.poetry.group.dev.dependencies] diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/tests/test_bedrock_async.py b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/tests/test_bedrock_async.py new file mode 100644 index 0000000000000..5aad2de6ad296 --- /dev/null +++ b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/tests/test_bedrock_async.py @@ -0,0 +1,60 @@ +import json +import aioboto3.session +import pytest + +import aioboto3 +from llama_index.embeddings.bedrock import BedrockEmbedding, Models + +EXP_REQUEST = "foo bar baz" +EXP_RESPONSE = { + "embedding": [ + 0.017410278, + 0.040924072, + -0.007507324, + 0.09429932, + 0.015304565, + ] +} + + +class AsyncMockStreamReader: + async def read(self): + return json.dumps(EXP_RESPONSE).encode() + + +class AsyncMockClient: + async def __aenter__(self) -> "AsyncMockClient": + return self + + async def __aexit__(self, exc_type, exc_val, exc_tb) -> None: + pass + + async def invoke_model(self, *args, **kwargs): + return {"contentType": "application/json", "body": AsyncMockStreamReader()} + + +class AsyncMockSession: + def __init__(self, *args, **kwargs) -> "AsyncMockSession": + pass + + def client(self, *args, **kwargs): + return AsyncMockClient() + + +@pytest.fixture() +def mock_aioboto3_session(monkeypatch): + monkeypatch.setattr("aioboto3.Session", AsyncMockSession) + + +@pytest.fixture() +def bedrock_embedding(mock_aioboto3_session): + return BedrockEmbedding( + model_name=Models.TITAN_EMBEDDING, + client=aioboto3.Session().client("bedrock-runtime", region_name="us-east-1"), + ) + + +@pytest.mark.asyncio() +async def test_aget_text_embedding(bedrock_embedding): + response = await bedrock_embedding._aget_text_embedding(EXP_REQUEST) + assert response == EXP_RESPONSE["embedding"] diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/llama_index/embeddings/huggingface/base.py b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/llama_index/embeddings/huggingface/base.py index 14e9722ad737f..2fa750589401e 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/llama_index/embeddings/huggingface/base.py +++ b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/llama_index/embeddings/huggingface/base.py @@ -267,7 +267,7 @@ def _get_query_embedding(self, query: str) -> List[float]: Returns: List[float]: numpy array of embeddings """ - return self._embed(query, prompt_name="query") + return self._embed([query], prompt_name="query")[0] async def _aget_query_embedding(self, query: str) -> List[float]: """ @@ -303,7 +303,7 @@ def _get_text_embedding(self, text: str) -> List[float]: Returns: List[float]: numpy array of embeddings """ - return self._embed(text, prompt_name="text") + return self._embed([text], prompt_name="text")[0] def _get_text_embeddings(self, texts: List[str]) -> List[List[float]]: """ diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml index 6d52a9b4e5dae..3142c011924b5 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml +++ b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml @@ -28,7 +28,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-embeddings-huggingface" readme = "README.md" -version = "0.5.0" +version = "0.5.1" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/llama_index/embeddings/text_embeddings_inference/base.py b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/llama_index/embeddings/text_embeddings_inference/base.py index 404e6b762c3f3..1749a49dcaa54 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/llama_index/embeddings/text_embeddings_inference/base.py +++ b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/llama_index/embeddings/text_embeddings_inference/base.py @@ -10,6 +10,7 @@ from llama_index.utils.huggingface import format_query, format_text DEFAULT_URL = "http://127.0.0.1:8080" +DEFAULT_ENDPOINT = "/embed" class TextEmbeddingsInference(BaseEmbedding): @@ -35,6 +36,10 @@ class TextEmbeddingsInference(BaseEmbedding): default=None, description="Authentication token or authentication token generating function for authenticated requests", ) + endpoint: str = Field( + default=DEFAULT_ENDPOINT, + description="Endpoint for the text embeddings service.", + ) def __init__( self, @@ -47,6 +52,7 @@ def __init__( truncate_text: bool = True, callback_manager: Optional[CallbackManager] = None, auth_token: Optional[Union[str, Callable[[str], str]]] = None, + endpoint: str = DEFAULT_ENDPOINT, ): super().__init__( base_url=base_url, @@ -58,6 +64,7 @@ def __init__( truncate_text=truncate_text, callback_manager=callback_manager, auth_token=auth_token, + endpoint=endpoint, ) @classmethod @@ -79,7 +86,7 @@ def _call_api(self, texts: List[str]) -> List[List[float]]: with httpx.Client() as client: response = client.post( - f"{self.base_url}/embed", + f"{self.base_url}{self.endpoint}", headers=headers, json=json_data, timeout=self.timeout, @@ -100,7 +107,7 @@ async def _acall_api(self, texts: List[str]) -> List[List[float]]: async with httpx.AsyncClient() as client: response = await client.post( - f"{self.base_url}/embed", + f"{self.base_url}{self.endpoint}", headers=headers, json=json_data, timeout=self.timeout, diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml index 051137802e098..83c3211a431f4 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml +++ b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-embeddings-text-embeddings-inference" readme = "README.md" -version = "0.3.1" +version = "0.3.2" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/tests/test_embeddings_text_embeddings_inference.py b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/tests/test_embeddings_text_embeddings_inference.py index c61f8fd1d6603..35fbea3e4e3c7 100644 --- a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/tests/test_embeddings_text_embeddings_inference.py +++ b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/tests/test_embeddings_text_embeddings_inference.py @@ -5,3 +5,26 @@ def test_text_inference_embedding_class(): names_of_base_classes = [b.__name__ for b in TextEmbeddingsInference.__mro__] assert BaseEmbedding.__name__ in names_of_base_classes + + +def test_text_inference_embedding_init(): + text_inference = TextEmbeddingsInference( + model_name="some-model", + base_url="some-url", + text_instruction="some-text-instruction", + query_instruction="some-query-instruction", + embed_batch_size=42, + timeout=42.0, + truncate_text=False, + auth_token="some-token", + endpoint="some-endpoint", + ) + assert text_inference.model_name == "some-model" + assert text_inference.base_url == "some-url" + assert text_inference.text_instruction == "some-text-instruction" + assert text_inference.query_instruction == "some-query-instruction" + assert text_inference.embed_batch_size == 42 + assert int(text_inference.timeout) == 42 + assert text_inference.truncate_text is False + assert text_inference.auth_token == "some-token" + assert text_inference.endpoint == "some-endpoint" diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/llama_index/graph_stores/memgraph/property_graph.py b/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/llama_index/graph_stores/memgraph/property_graph.py index 48854a895d478..72f1e11ba431c 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/llama_index/graph_stores/memgraph/property_graph.py +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/llama_index/graph_stores/memgraph/property_graph.py @@ -1,4 +1,9 @@ from typing import Any, List, Dict, Optional, Tuple +import logging +import json +import ast +import neo4j + from llama_index.core.graph_stores.prompts import DEFAULT_CYPHER_TEMPALTE from llama_index.core.graph_stores.types import ( PropertyGraphStore, @@ -13,10 +18,8 @@ value_sanitize, LIST_LIMIT, ) - from llama_index.core.prompts import PromptTemplate from llama_index.core.vector_stores.types import VectorStoreQuery -import neo4j def remove_empty_values(input_dict): @@ -26,37 +29,41 @@ def remove_empty_values(input_dict): return {key: value for key, value in input_dict.items() if value} +logger = logging.getLogger(__name__) + BASE_ENTITY_LABEL = "__Entity__" BASE_NODE_LABEL = "__Node__" -EXCLUDED_LABELS = ["_Bloom_Perspective_", "_Bloom_Scene_"] -EXCLUDED_RELS = ["_Bloom_HAS_SCENE_"] EXHAUSTIVE_SEARCH_LIMIT = 10000 # Threshold for returning all available prop values in graph schema DISTINCT_VALUE_LIMIT = 10 CHUNK_SIZE = 1000 +VECTOR_INDEX_NAME = "entity" # Threshold for max number of returned triplets LIMIT = 100 -node_properties_query = """ +SHOW_SCHEMA_INFO = "SHOW SCHEMA INFO;" + +NODE_PROPERTIES_QUERY = """ MATCH (n) -UNWIND labels(n) AS label -WITH label, COUNT(n) AS count -CALL schema.node_type_properties() -YIELD propertyName, nodeLabels, propertyTypes -WITH label, nodeLabels, count, collect({property: propertyName, type: propertyTypes[0]}) AS properties +UNWIND labels(n) AS label WITH label, +COUNT(n) AS count +CALL schema.node_type_properties() YIELD propertyName, nodeLabels, +propertyTypes +WITH label, nodeLabels, count, collect({property: propertyName, type: +propertyTypes[0]}) AS properties WHERE label IN nodeLabels RETURN {labels: label, count: count, properties: properties} AS output ORDER BY count DESC """ -rel_properties_query = """ +REL_PROPERTIES_QUERY = """ CALL schema.rel_type_properties() YIELD relType AS label, propertyName AS property, propertyTypes AS type WITH label, collect({property: property, type: type}) AS properties RETURN {type: label, properties: properties} AS output """ -rel_query = """ +REL_QUERY = """ MATCH (start_node)-[r]->(end_node) WITH DISTINCT labels(start_node) AS start_labels, type(r) AS relationship_type, labels(end_node) AS end_labels, keys(r) AS relationship_properties UNWIND start_labels AS start_label @@ -100,8 +107,8 @@ class MemgraphPropertyGraphStore(PropertyGraphStore): graph_store.close() ``` """ - supports_structured_queries: bool = True + supports_vector_queries: bool = True text_to_cypher_template: PromptTemplate = DEFAULT_CYPHER_TEMPALTE def __init__( @@ -113,6 +120,7 @@ def __init__( refresh_schema: bool = True, sanitize_query_output: bool = True, enhanced_schema: bool = False, + create_indexes: bool = True, **neo4j_kwargs: Any, ) -> None: self.sanitize_query_output = sanitize_query_output @@ -124,45 +132,140 @@ def __init__( self.structured_schema = {} if refresh_schema: self.refresh_schema() - - # Create index for faster imports and retrieval - self.structured_query(f"""CREATE INDEX ON :{BASE_NODE_LABEL}(id);""") - self.structured_query(f"""CREATE INDEX ON :{BASE_ENTITY_LABEL}(id);""") + # Check if we can use vector index + self.verify_vector_support() + if create_indexes: + # Create index for faster imports and retrieval + self.structured_query(f"""CREATE INDEX ON :{BASE_NODE_LABEL}(id);""") + self.structured_query(f"""CREATE INDEX ON :{BASE_ENTITY_LABEL}(id);""") @property def client(self): return self._driver def close(self) -> None: + """Close the database driver connection.""" self._driver.close() + def get_schema_subset(self, schema_result: Dict[str, Any]) -> None: + """Refresh the schema using the SHOW SCHEMA INFO.""" + # Parse the 'schema' field for each entry + parsed_data = [] + for entry in schema_result: + schema_str = entry.get("schema", "{}") + try: + parsed_schema = json.loads(schema_str) + parsed_data.append(parsed_schema) + except json.JSONDecodeError as decode_error: + print(f"Failed to parse schema: {decode_error}") + continue + node_properties = [] + rel_properties = [] + relationships = [] + + for schema in parsed_data: + # Extract node properties + for node in schema.get("nodes", []): + node_label = node.get("labels", [None])[0] + if node_label in [ + BASE_ENTITY_LABEL, + BASE_NODE_LABEL, + ]: + continue + properties = [ + { + "property": prop.get("key"), + "type": prop.get("types", [{}])[0].get("type"), + } + for prop in node.get("properties", []) + ] + if node_label and properties: + node_properties.append( + {"labels": node_label, "properties": properties} + ) + # Extract relationship properties, types & count + for edge in schema.get("edges", []): + rel_type = edge.get("type") + properties = [ + { + "property": prop.get("key"), + "type": prop.get("types", [{}])[0].get("type"), + } + for prop in edge.get("properties", []) + ] + if rel_type and properties: + rel_properties.append( + {"properties": properties, "type": f":`{rel_type}`"} + ) + + start = edge.get("start_node_labels", [None])[0] + end = edge.get("end_node_labels", [None])[0] + if start and end and rel_type: + relationships.append({"start": start, "end": end, "type": rel_type}) + self.structured_schema = { + "node_props": {el["labels"]: el["properties"] for el in node_properties}, + "rel_props": {el["type"]: el["properties"] for el in rel_properties}, + "relationships": relationships, + } + def refresh_schema(self) -> None: """Refresh the schema.""" # Leave schema empty if db is empty if self.structured_query("MATCH (n) RETURN n LIMIT 1") == []: return + # First try with SHOW SCHEMA INFO + try: + node_query_results = self.structured_query( + SHOW_SCHEMA_INFO, + param_map={ + "EXCLUDED_LABELS": [ + BASE_ENTITY_LABEL, + BASE_NODE_LABEL, + ] + }, + ) + if node_query_results is not None and isinstance( + node_query_results, (str, ast.AST) + ): + schema_result = ast.literal_eval(node_query_results) + else: + schema_result = node_query_results + assert schema_result is not None + + self.get_schema_subset(schema_result) + return + except neo4j.exceptions.Neo4jError as decode_error: + if ( + decode_error.code == "Memgraph.ClientError.MemgraphError.MemgraphError" + and "SchemaInfo disabled" in decode_error.message + ): + logger.info( + "Schema generation with SHOW SCHEMA INFO query failed. " + "Set --schema-info-enabled=true to use SHOW SCHEMA INFO query. " + "Falling back to alternative queries." + ) + + # fallback on Cypher without SHOW SCHEMA INFO node_query_results = self.structured_query( - node_properties_query, + NODE_PROPERTIES_QUERY, param_map={ "EXCLUDED_LABELS": [ - *EXCLUDED_LABELS, BASE_ENTITY_LABEL, BASE_NODE_LABEL, ] }, ) node_properties = {} - for el in node_query_results: - if el["output"]["labels"] in [ - *EXCLUDED_LABELS, + for result in node_query_results: + if result["output"]["labels"] in [ BASE_ENTITY_LABEL, BASE_NODE_LABEL, ]: continue - label = el["output"]["labels"] - properties = el["output"]["properties"] + label = result["output"]["labels"] + properties = result["output"]["properties"] if label in node_properties: node_properties[label]["properties"].extend( prop @@ -175,23 +278,22 @@ def refresh_schema(self) -> None: node_properties = [ {"labels": label, **value} for label, value in node_properties.items() ] - rels_query_result = self.structured_query( - rel_properties_query, param_map={"EXCLUDED_LABELS": EXCLUDED_RELS} - ) + rels_query_result = self.structured_query(REL_PROPERTIES_QUERY) rel_properties = ( [ - el["output"] - for el in rels_query_result - if any(prop["property"] for prop in el["output"].get("properties", [])) + result["output"] + for result in rels_query_result + if any( + prop["property"] for prop in result["output"].get("properties", []) + ) ] if rels_query_result else [] ) rel_objs_query_result = self.structured_query( - rel_query, + REL_QUERY, param_map={ "EXCLUDED_LABELS": [ - *EXCLUDED_LABELS, BASE_ENTITY_LABEL, BASE_NODE_LABEL, ] @@ -201,72 +303,14 @@ def refresh_schema(self) -> None: el["output"] for el in rel_objs_query_result if rel_objs_query_result - and el["output"]["start"] - not in [*EXCLUDED_LABELS, BASE_ENTITY_LABEL, BASE_NODE_LABEL] - and el["output"]["end"] - not in [*EXCLUDED_LABELS, BASE_ENTITY_LABEL, BASE_NODE_LABEL] + and el["output"]["start"] not in [BASE_ENTITY_LABEL, BASE_NODE_LABEL] + and el["output"]["end"] not in [BASE_ENTITY_LABEL, BASE_NODE_LABEL] ] self.structured_schema = { "node_props": {el["labels"]: el["properties"] for el in node_properties}, "rel_props": {el["type"]: el["properties"] for el in rel_properties}, "relationships": relationships, } - schema_nodes = self.structured_query( - "MATCH (n) UNWIND labels(n) AS label RETURN label AS node, COUNT(n) AS count ORDER BY count DESC" - ) - schema_rels = self.structured_query( - "MATCH ()-[r]->() RETURN TYPE(r) AS relationship_type, COUNT(r) AS count" - ) - schema_counts = [ - { - "nodes": [ - {"name": item["node"], "count": item["count"]} - for item in schema_nodes - ], - "relationships": [ - {"name": item["relationship_type"], "count": item["count"]} - for item in schema_rels - ], - } - ] - # Update node info - for node in schema_counts[0].get("nodes", []): - # Skip bloom labels - if node["name"] in EXCLUDED_LABELS: - continue - node_props = self.structured_schema["node_props"].get(node["name"]) - if not node_props: # The node has no properties - continue - - enhanced_cypher = self._enhanced_schema_cypher( - node["name"], node_props, node["count"] < EXHAUSTIVE_SEARCH_LIMIT - ) - output = self.structured_query(enhanced_cypher) - enhanced_info = output[0]["output"] - for prop in node_props: - if prop["property"] in enhanced_info: - prop.update(enhanced_info[prop["property"]]) - - # Update rel info - for rel in schema_counts[0].get("relationships", []): - if rel["name"] in EXCLUDED_RELS: - continue - rel_props = self.structured_schema["rel_props"].get(f":`{rel['name']}`") - if not rel_props: # The rel has no properties - continue - enhanced_cypher = self._enhanced_schema_cypher( - rel["name"], - rel_props, - rel["count"] < EXHAUSTIVE_SEARCH_LIMIT, - is_relationship=True, - ) - try: - enhanced_info = self.structured_query(enhanced_cypher)[0]["output"] - for prop in rel_props: - if prop["property"] in enhanced_info: - prop.update(enhanced_info[prop["property"]]) - except neo4j.exceptions.ClientError: - pass def upsert_nodes(self, nodes: List[LabelledNode]) -> None: # Lists to hold separated types @@ -284,50 +328,43 @@ def upsert_nodes(self, nodes: List[LabelledNode]) -> None: if chunk_dicts: for index in range(0, len(chunk_dicts), CHUNK_SIZE): chunked_params = chunk_dicts[index : index + CHUNK_SIZE] - for param in chunked_params: - formatted_properties = ", ".join( - [ - f"{key}: {value!r}" - for key, value in param["properties"].items() - ] - ) - self.structured_query( - f""" - MERGE (c:{BASE_NODE_LABEL} {{id: '{param["id"]}'}}) - SET c.`text` = '{param["text"]}', c:Chunk - WITH c - SET c += {{{formatted_properties}}} - RETURN count(*) - """ - ) + self.structured_query( + f""" + UNWIND $data AS row + MERGE (c:{BASE_NODE_LABEL} {{id: row.id}}) + SET c.`text` = row.text, c:Chunk + WITH c, row + SET c += row.properties + WITH c, row.embedding as embedding + WHERE embedding IS NOT NULL + SET c.embedding = embedding + RETURN count(*) + """, + param_map={"data": chunked_params}, + ) + if entity_dicts: for index in range(0, len(entity_dicts), CHUNK_SIZE): chunked_params = entity_dicts[index : index + CHUNK_SIZE] - for param in chunked_params: - formatted_properties = ", ".join( - [ - f"{key}: {value!r}" - for key, value in param["properties"].items() - ] - ) - self.structured_query( - f""" - MERGE (e:{BASE_NODE_LABEL} {{id: '{param["id"]}'}}) - SET e += {{{formatted_properties}}} - SET e.name = '{param["name"]}', e:`{BASE_ENTITY_LABEL}` - WITH e - SET e :{param["label"]} - """ - ) - triplet_source_id = param["properties"].get("triplet_source_id") - if triplet_source_id: - self.structured_query( - f""" - MERGE (e:{BASE_NODE_LABEL} {{id: '{param["id"]}'}}) - MERGE (c:{BASE_NODE_LABEL} {{id: '{triplet_source_id}'}}) - MERGE (e)<-[:MENTIONS]-(c) - """ - ) + self.structured_query( + f""" + UNWIND $data AS row + MERGE (e:{BASE_NODE_LABEL} {{id: row.id}}) + SET e += CASE WHEN row.properties IS NOT NULL THEN row.properties ELSE e END + SET e.name = CASE WHEN row.name IS NOT NULL THEN row.name ELSE e.name END, + e:{BASE_ENTITY_LABEL} + WITH e, row + SET e:row.label + WITH e, row + WHERE row.embedding IS NOT NULL + SET e.embedding = row.embedding + WITH e, row + WHERE row.properties.triplet_source_id IS NOT NULL + MERGE (c:{BASE_NODE_LABEL} {{id: row.properties.triplet_source_id}}) + MERGE (e)<-[:MENTIONS]-(c) + """, + param_map={"data": chunked_params}, + ) def upsert_relations(self, relations: List[Relation]) -> None: """Add relations.""" @@ -338,12 +375,11 @@ def upsert_relations(self, relations: List[Relation]) -> None: formatted_properties = ", ".join( [f"{key}: {value!r}" for key, value in param["properties"].items()] ) - self.structured_query( f""" - MERGE (source: {BASE_NODE_LABEL} {{id: '{param["source_id"]}'}}) + MERGE (source: {BASE_NODE_LABEL} {{id: "{param["source_id"]}"}}) ON CREATE SET source:Chunk - MERGE (target: {BASE_NODE_LABEL} {{id: '{param["target_id"]}'}}) + MERGE (target: {BASE_NODE_LABEL} {{id: "{param["target_id"]}"}}) ON CREATE SET target:Chunk WITH source, target MERGE (source)-[r:{param["label"]}]->(target) @@ -432,11 +468,11 @@ def get_triplets( params["entity_names"] = entity_names if relation_names and entity_names: - cypher_statement += f"AND " + cypher_statement += "AND " if relation_names: cypher_statement += "type(r) in $relation_names " - params[f"relation_names"] = relation_names + params["relation_names"] = relation_names if ids: cypher_statement += "e.id in $ids " @@ -624,9 +660,43 @@ def structured_query( def vector_query( self, query: VectorStoreQuery, **kwargs: Any ) -> Tuple[List[LabelledNode], List[float]]: - raise NotImplementedError( - "Vector query is not currently implemented for MemgraphPropertyGraphStore." - ) + """Query the graph store with a vector store query.""" + if self._supports_vector_index: + data = self.structured_query( + f"""CALL vector_search.search('{VECTOR_INDEX_NAME}', $limit, $embedding) + YIELD node, similarity + WITH node, similarity, labels(node) AS all_labels + UNWIND all_labels AS label + WITH node, similarity, label + WHERE NOT label IN ['{BASE_ENTITY_LABEL}', '{BASE_NODE_LABEL}'] + WITH node, similarity, label, properties(node) AS originalProperties + RETURN + node.id AS name, + label AS type, + node{{.* , embedding: Null, name: Null, id: Null}} AS properties, + similarity + """, + param_map={ + "embedding": query.query_embedding, + "limit": query.similarity_top_k, + }, + ) + else: + data = [] + data = data if data else [] + + nodes = [] + scores = [] + for record in data: + node = EntityNode( + name=record["name"], + label=record["type"], + properties=remove_empty_values(record["properties"]), + ) + nodes.append(node) + scores.append(record["similarity"]) + + return (nodes, scores) def delete( self, @@ -695,8 +765,10 @@ def _enhanced_schema_cypher( f" distinct_count: size(`{prop_name}_values`)" ) elif prop_type in [ + "Integer", "Int", "Double", + "Float", "Date", "LocalTime", "LocalDateTime", @@ -732,7 +804,6 @@ def _enhanced_schema_cypher( for prop in properties: prop_name = prop["property"] prop_type = prop["type"] - # Check if indexed property, we can still do exhaustive prop_index = [ el @@ -752,7 +823,7 @@ def _enhanced_schema_cypher( RETURN DISTINCT n.`{prop_name}` AS value LIMIT {DISTINCT_VALUE_LIMIT} """ - distinct_values = self.query(distinct_values_query) + distinct_values = self.structured_query(distinct_values_query) # Extract values from the result set distinct_values = [ @@ -770,6 +841,7 @@ def _enhanced_schema_cypher( ) return_clauses.append(f"values: `{prop_name}_values`") elif prop_type in [ + "Integer", "Int", "Double", "Float", @@ -860,6 +932,7 @@ def get_schema_str(self, refresh: bool = False) -> str: ) elif prop["type"] in [ + "Integer", "Int", "Double", "Float", @@ -906,6 +979,7 @@ def get_schema_str(self, refresh: bool = False) -> str: else "" ) elif prop["type"] in [ + "Integer", "Int", "Double", "Float", @@ -938,11 +1012,11 @@ def get_schema_str(self, refresh: bool = False) -> str: formatted_node_props.append(f"{label} {{{props_str}}}") # Format relationship properties using structured_schema - for type, props in schema["rel_props"].items(): + for label, props in schema["rel_props"].items(): props_str = ", ".join( [f"{prop['property']}: {prop['type']}" for prop in props] ) - formatted_rel_props.append(f"{type} {{{props_str}}}") + formatted_rel_props.append(f"{label} {{{props_str}}}") # Format relationships formatted_rels = [ @@ -960,3 +1034,47 @@ def get_schema_str(self, refresh: bool = False) -> str: "\n".join(formatted_rels), ] ) + + def verify_vector_support(self) -> None: + """ + Check if the connected Memgraph database supports vector indices. + + Compares the current version with the required version (2.22.0) that + supports vector indexing. + """ + response = self.structured_query("SHOW VERSION;") + current_version = response[0]["version"] + current_version = tuple(map(int, current_version.split("."))) + required_version = "2.22" + required_version = tuple(map(int, required_version.split("."))) + + # Check if the version is equal to or larger than the required version + if current_version >= required_version: + # Check if vector index is configured + try: + self.structured_query( + """CALL vector_search.show_index_info() YIELD * RETURN *;""" + ) + self._supports_vector_index = True + return + except neo4j.exceptions.Neo4jError as decode_error: + self._supports_vector_index = False + if ( + decode_error.code + == "Memgraph.ClientError.MemgraphError.MemgraphError" + and "vector_search.show_index_info" in decode_error.message + ): + logger.info( + """To use vector indices and vector search, start + Memgraph with the experimental vector search feature + flag and configure vector index. Falling back to + alternative queries.""" + ) + else: + self._supports_vector_index = False + logger.info( + """Vector indexing is not supported by your current Memgraph + version (%s). Please upgrade to version 2.22.0 or newer to use + vector indices.""", + ".".join(map(str, current_version)), + ) diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/pyproject.toml b/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/pyproject.toml index f23585c32852f..12ebbfdbb00c3 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/pyproject.toml +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/pyproject.toml @@ -31,7 +31,7 @@ license = "MIT" name = "llama-index-graph-stores-memgraph" packages = [{include = "llama_index/"}] readme = "README.md" -version = "0.2.0" +version = "0.2.1" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/tests/test_pg_stores_memgraph.py b/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/tests/test_pg_stores_memgraph.py index a6260027b1c63..4b808b4cf7266 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/tests/test_pg_stores_memgraph.py +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-memgraph/tests/test_pg_stores_memgraph.py @@ -12,14 +12,15 @@ memgraph_url = os.environ.get("MEMGRAPH_TEST_URL") if not memgraph_user or not memgraph_pass or not memgraph_url: - memgraph_available = False + MEMGRAPH_AVAILABLE = False else: - memgraph_available = True + MEMGRAPH_AVAILABLE = True @pytest.fixture() def pg_store() -> MemgraphPropertyGraphStore: - if not memgraph_available: + """Define Memgraph graph store.""" + if not MEMGRAPH_AVAILABLE: pytest.skip("No Memgraph credentials provided") return MemgraphPropertyGraphStore( username=memgraph_user, password=memgraph_pass, url=memgraph_url @@ -27,18 +28,19 @@ def pg_store() -> MemgraphPropertyGraphStore: def test_memgraph_pg_store(pg_store: MemgraphPropertyGraphStore) -> None: + """Test functions for Memgraph graph store.""" # Clear the database pg_store.structured_query("STORAGE MODE IN_MEMORY_ANALYTICAL") pg_store.structured_query("DROP GRAPH") pg_store.structured_query("STORAGE MODE IN_MEMORY_TRANSACTIONAL") - # Test upsert nodes + # Test inserting nodes into Memgraph. entity1 = EntityNode(label="PERSON", name="Logan", properties={"age": 28}) entity2 = EntityNode(label="ORGANIZATION", name="LlamaIndex") pg_store.upsert_nodes([entity1, entity2]) - # Assert the nodes are inserted correctly kg_nodes = pg_store.get(ids=[entity1.id]) + assert kg_nodes[0].name == entity1.name # Test inserting relations into Memgraph. relation = Relation( @@ -49,13 +51,12 @@ def test_memgraph_pg_store(pg_store: MemgraphPropertyGraphStore) -> None: ) pg_store.upsert_relations([relation]) - # Assert the relation is inserted correctly by retrieving the relation map kg_nodes = pg_store.get(ids=[entity1.id]) - paths = pg_store.get_rel_map(kg_nodes, depth=1) + pg_store.get_rel_map(kg_nodes, depth=1) # Test inserting a source text node and 'MENTIONS' relations. - source_node = TextNode(text="Logan (age 28), works for LlamaIndex since 2023.") + source_node = TextNode(text="Logan (age 28), works for 'LlamaIndex' since 2023.") relations = [ Relation(label="MENTIONS", target_id=entity1.id, source_id=source_node.node_id), @@ -66,14 +67,14 @@ def test_memgraph_pg_store(pg_store: MemgraphPropertyGraphStore) -> None: pg_store.upsert_relations(relations) # Assert the source node and relations are inserted correctly - llama_nodes = pg_store.get_llama_nodes([source_node.node_id]) + pg_store.get_llama_nodes([source_node.node_id]) # Test retrieving nodes by properties. kg_nodes = pg_store.get(properties={"age": 28}) # Test executing a structured query in Memgraph. query = "MATCH (n:`__Entity__`) RETURN n" - result = pg_store.structured_query(query) + pg_store.structured_query(query) # Test upserting a new node with additional properties. new_node = EntityNode( @@ -89,4 +90,4 @@ def test_memgraph_pg_store(pg_store: MemgraphPropertyGraphStore) -> None: pg_store.delete(ids=[entity1.id, entity2.id]) # Assert the nodes have been deleted - nodes = pg_store.get(ids=[entity1.id, entity2.id]) + pg_store.get(ids=[entity1.id, entity2.id]) diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/base.py b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/base.py index 247b04fe3c1d5..c2adbf0ac2191 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/base.py +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/base.py @@ -1,6 +1,7 @@ """Neo4j graph store index.""" import logging -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Optional, Type +from types import TracebackType from llama_index.core.graph_stores.types import GraphStore @@ -289,3 +290,80 @@ def query(self, query: str, param_map: Optional[Dict[str, Any]] = None) -> Any: neo4j.Query(text=query, timeout=self._timeout), param_map ) return [r.data() for r in data] + + def close(self) -> None: + """ + Explicitly close the Neo4j driver connection. + + Delegates connection management to the Neo4j driver. + """ + if hasattr(self, "_driver"): + self._driver.close() + # Remove the driver attribute to indicate closure + delattr(self, "_driver") + + def __enter__(self) -> "Neo4jGraphStore": + """ + Enter the runtime context for the Neo4j graph connection. + + Enables use of the graph connection with the 'with' statement. + This method allows for automatic resource management and ensures + that the connection is properly handled. + + Returns: + Neo4jPropertyGraphStore: The current graph connection instance + """ + return self + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + """ + Exit the runtime context for the Neo4j graph connection. + + This method is automatically called when exiting a 'with' statement. + It ensures that the database connection is closed, regardless of + whether an exception occurred during the context's execution. + + Args: + exc_type: The type of exception that caused the context to exit + (None if no exception occurred) + exc_val: The exception instance that caused the context to exit + (None if no exception occurred) + exc_tb: The traceback for the exception (None if no exception occurred) + + Note: + Any exception is re-raised after the connection is closed. + """ + self.close() + + def __del__(self) -> None: + """ + Destructor for the Neo4j graph connection. + + This method is called during garbage collection to ensure that + database resources are released if not explicitly closed. + + Caution: + - Do not rely on this method for deterministic resource cleanup + - Always prefer explicit .close() or context manager + + Best practices: + 1. Use context manager: + with Neo4jGraph(...) as graph: + ... + 2. Explicitly close: + graph = Neo4jGraph(...) + try: + ... + finally: + graph.close() + """ + try: + self.close() + except Exception: + # Suppress any exceptions during garbage collection + pass diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/neo4j_property_graph.py b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/neo4j_property_graph.py index ab978fbadd284..be7a18253697a 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/neo4j_property_graph.py +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/llama_index/graph_stores/neo4j/neo4j_property_graph.py @@ -1,4 +1,6 @@ -from typing import Any, List, Dict, Optional, Tuple +from typing import Any, List, Dict, Optional, Tuple, Type +from types import TracebackType + from llama_index.core.graph_stores.prompts import DEFAULT_CYPHER_TEMPALTE from llama_index.core.graph_stores.types import ( PropertyGraphStore, @@ -1092,5 +1094,82 @@ def verify_version(self) -> None: else: self._supports_vector_index = False + def close(self) -> None: + """ + Explicitly close the Neo4j driver connection. + + Delegates connection management to the Neo4j driver. + """ + if hasattr(self, "_driver"): + self._driver.close() + # Remove the driver attribute to indicate closure + delattr(self, "_driver") + + def __enter__(self) -> "Neo4jPropertyGraphStore": + """ + Enter the runtime context for the Neo4j graph connection. + + Enables use of the graph connection with the 'with' statement. + This method allows for automatic resource management and ensures + that the connection is properly handled. + + Returns: + Neo4jPropertyGraphStore: The current graph connection instance + """ + return self + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + """ + Exit the runtime context for the Neo4j graph connection. + + This method is automatically called when exiting a 'with' statement. + It ensures that the database connection is closed, regardless of + whether an exception occurred during the context's execution. + + Args: + exc_type: The type of exception that caused the context to exit + (None if no exception occurred) + exc_val: The exception instance that caused the context to exit + (None if no exception occurred) + exc_tb: The traceback for the exception (None if no exception occurred) + + Note: + Any exception is re-raised after the connection is closed. + """ + self.close() + + def __del__(self) -> None: + """ + Destructor for the Neo4j graph connection. + + This method is called during garbage collection to ensure that + database resources are released if not explicitly closed. + + Caution: + - Do not rely on this method for deterministic resource cleanup + - Always prefer explicit .close() or context manager + + Best practices: + 1. Use context manager: + with Neo4jGraph(...) as graph: + ... + 2. Explicitly close: + graph = Neo4jGraph(...) + try: + ... + finally: + graph.close() + """ + try: + self.close() + except Exception: + # Suppress any exceptions during garbage collection + pass + Neo4jPGStore = Neo4jPropertyGraphStore diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml index dae85be741d50..523047b0c61e0 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml @@ -28,7 +28,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-graph-stores-neo4j" readme = "README.md" -version = "0.4.5" +version = "0.4.6" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_graph_stores_neo4j.py b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_graph_stores_neo4j.py index 39c8739d8fe16..8827e4fab98dd 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_graph_stores_neo4j.py +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_graph_stores_neo4j.py @@ -1,7 +1,210 @@ +import pytest +import os + from llama_index.core.graph_stores.types import GraphStore from llama_index.graph_stores.neo4j import Neo4jGraphStore +neo4j_url = os.environ.get("NEO4J_URI") +neo4j_user = os.environ.get("NEO4J_USERNAME") +neo4j_password = os.environ.get("NEO4J_PASSWORD") + +if not neo4j_url or not neo4j_user or not neo4j_password: + neo4j_available = False +else: + neo4j_available = True + +pytestmark = pytest.mark.skipif( + not neo4j_available, + reason="Requires NEO4J_URI, NEO4J_USERNAME and NEO4J_PASSWORD environment variables.", +) + + +@pytest.fixture() +def neo4j_graph_store() -> Neo4jGraphStore: + """ + Provides a fresh Neo4jGraphStore for each test. + Adjust parameters to match your test database or local Neo4j setup. + """ + neo4j_graph_store = Neo4jGraphStore( + username=neo4j_user, + password=neo4j_password, + url=neo4j_url, + refresh_schema=True, + ) + # Teardown: remove any remaining data to avoid polluting tests + # For a small test DB, you can delete all nodes & relationships: + neo4j_graph_store.query("MATCH (n) DETACH DELETE n") + return neo4j_graph_store + def test_neo4j_graph_store(): names_of_bases = [b.__name__ for b in Neo4jGraphStore.__bases__] assert GraphStore.__name__ in names_of_bases + + +def test_01_connection_init(neo4j_graph_store: Neo4jGraphStore): + """ + Test initial connection and constraint creation. + Verifies that the store is connected and schema can be fetched. + """ + assert neo4j_graph_store is not None + schema_str = neo4j_graph_store.get_schema(refresh=True) + # We don't necessarily expect non-empty schema if DB is brand-new, + # but we at least can check that it's a string. + assert isinstance(schema_str, str) + + +def test_02_upsert_and_get(neo4j_graph_store: Neo4jGraphStore): + """ + Test inserting triplets and retrieving them. + """ + # Insert a simple triplet: Alice -> LIKES -> IceCream + neo4j_graph_store.upsert_triplet("Alice", "LIKES", "IceCream") + + # Retrieve edges from 'Alice' + results = neo4j_graph_store.get("Alice") + assert len(results) == 1 + rel_type, obj = results[0] + assert rel_type == "LIKES" + assert obj == "IceCream" + + +def test_03_upsert_multiple_and_get(neo4j_graph_store: Neo4jGraphStore): + """ + Insert multiple triplets for a single subject. + """ + # Add two different relationships from 'Alice' + neo4j_graph_store.upsert_triplet("Alice", "LIKES", "IceCream") + neo4j_graph_store.upsert_triplet("Alice", "DISLIKES", "Spinach") + + results = neo4j_graph_store.get("Alice") + # Expect two relationships + assert len(results) == 2 + rels = {rel[0] for rel in results} + objs = {rel[1] for rel in results} + assert rels == {"LIKES", "DISLIKES"} + assert objs == {"IceCream", "Spinach"} + + +def test_04_get_rel_map(neo4j_graph_store: Neo4jGraphStore): + """ + Test get_rel_map with multi-hop relationships. + """ + # Insert: + # Alice -> KNOWS -> Bob -> LIVES_IN -> CityX + # Bob -> TRAVELED_TO -> CityY + store = neo4j_graph_store + store.upsert_triplet("Alice", "KNOWS", "Bob") + store.upsert_triplet("Bob", "LIVES_IN", "CityX") + store.upsert_triplet("Bob", "TRAVELED_TO", "CityY") + + # Depth 2 from 'Alice' should see: (KNOWS->Bob) + (Bob->LIVES_IN->CityX) + (Bob->TRAVELED_TO->CityY) + rel_map = store.get_rel_map(["Alice"], depth=2, limit=30) + + assert "Alice" in rel_map + # Flattened relationships are a bit tricky; we only check that something is returned + # The structure is like lists of [relType, objectId]. + flattened_rels = rel_map["Alice"] + assert len(flattened_rels) > 0 + + +def test_05_delete_relationship_and_nodes(neo4j_graph_store: Neo4jGraphStore): + """ + Test deleting an existing relationship (and subject/object if no other edges). + """ + store = neo4j_graph_store + store.upsert_triplet("X", "REL", "Y") + + # Confirm upsert worked + results_before = store.get("X") + assert len(results_before) == 1 + assert results_before[0] == ["REL", "Y"] + + # Delete that relationship + store.delete("X", "REL", "Y") + + # Now both X and Y should be removed if no other edges remain. + results_after = store.get("X") + assert len(results_after) == 0 + + +def test_06_delete_keeps_node_if_other_edges_exist(neo4j_graph_store: Neo4jGraphStore): + """ + Test that only the specified relationship is removed, + and the subject/object are deleted only if they have no other edges. + """ + store = neo4j_graph_store + # Insert two edges: X->REL->Y and X->OTHER->Z + store.upsert_triplet("X", "REL", "Y") + store.upsert_triplet("X", "OTHER", "Z") + + # Delete the first relationship + store.delete("X", "REL", "Y") + + # 'Y' should be gone if no other edges, but X must remain (it still has an edge to Z). + # Confirm X->OTHER->Z still exists + results_x = store.get("X") + assert len(results_x) == 1 + assert results_x[0] == ["OTHER", "Z"] + + # 'Y' should have 0 edges + results_y = store.get("Y") + assert len(results_y) == 0 + + +def test_07_refresh_schema(neo4j_graph_store: Neo4jGraphStore): + """ + Test the refresh_schema call. + """ + store = neo4j_graph_store + # Insert a couple triplets + store.upsert_triplet("A", "TEST_REL", "B") + # Refresh schema + store.refresh_schema() + structured = store.structured_schema + assert "node_props" in structured + assert "rel_props" in structured + assert "relationships" in structured + + +def test_08_get_schema(neo4j_graph_store: Neo4jGraphStore): + """ + Test get_schema with and without refresh. + """ + store = neo4j_graph_store + # Possibly empty if no data, but we can at least confirm it doesn't error + schema_str_1 = store.get_schema(refresh=False) + assert isinstance(schema_str_1, str) + + # Add data + store.upsert_triplet("Person1", "LIKES", "Thing1") + # Now refresh + schema_str_2 = store.get_schema(refresh=True) + assert isinstance(schema_str_2, str) + # The new schema might mention 'LIKES' or node labels, but that depends on your DB. + # You can do a substring check if you expect it: + # assert "LIKES" in schema_str_2 + + +def test_09_custom_query(neo4j_graph_store: Neo4jGraphStore): + """ + Test running a direct custom Cypher query via .query(). + """ + store = neo4j_graph_store + store.upsert_triplet("TestS", "TEST_REL", "TestO") + + # Custom query to find all nodes that have an outgoing relationship + custom_cypher = """ + MATCH (n)-[r]->(m) + RETURN n.id AS subject, type(r) AS relation, m.id AS object + """ + results = store.query(custom_cypher) + assert len(results) >= 1 + # Expect at least the one we inserted + expected = {"subject": "TestS", "relation": "TEST_REL", "object": "TestO"} + assert any( + row["subject"] == expected["subject"] + and row["relation"] == expected["relation"] + and row["object"] == expected["object"] + for row in results + ), "Custom query did not return the inserted relationship." diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_pg_stores_neo4j.py b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_pg_stores_neo4j.py index 901dac4250ddd..7f2d3caa6152a 100644 --- a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_pg_stores_neo4j.py +++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/tests/test_pg_stores_neo4j.py @@ -2,109 +2,320 @@ import pytest from llama_index.graph_stores.neo4j import Neo4jPropertyGraphStore -from llama_index.core.graph_stores.types import Relation, EntityNode -from llama_index.core.schema import TextNode +from llama_index.core.graph_stores.types import EntityNode, ChunkNode, Relation +from llama_index.core.vector_stores.types import VectorStoreQuery -neo4j_url = os.environ.get("NEO4J_TEST_URL") -neo4j_user = os.environ.get("NEO4J_TEST_USER") -neo4j_password = os.environ.get("NEO4J_TEST_PASSWORD") + +neo4j_url = os.environ.get("NEO4J_URI") +neo4j_user = os.environ.get("NEO4J_USERNAME") +neo4j_password = os.environ.get("NEO4J_PASSWORD") if not neo4j_url or not neo4j_user or not neo4j_password: neo4j_available = False else: neo4j_available = True +pytestmark = pytest.mark.skipif( + not neo4j_available, + reason="Requires NEO4J_URI, NEO4J_USERNAME and NEO4J_PASSWORD environment variables.", +) + @pytest.fixture() -def pg_store() -> Neo4jPropertyGraphStore: +def neo4j_store() -> Neo4jPropertyGraphStore: if not neo4j_available: pytest.skip("No Neo4j credentials provided") - pg_store = Neo4jPropertyGraphStore( + neo4j_store = Neo4jPropertyGraphStore( username=neo4j_user, password=neo4j_password, url=neo4j_url ) - pg_store.structured_query("MATCH (n) DETACH DELETE n") - return pg_store + neo4j_store.structured_query("MATCH (n) DETACH DELETE n") + return neo4j_store + + +def test_upsert_nodes_and_get(neo4j_store: Neo4jPropertyGraphStore): + """ + Test inserting entity and chunk nodes, then retrieving them. + """ + entity = EntityNode(label="PERSON", name="Alice") + chunk = ChunkNode(text="Alice is a software engineer.") + neo4j_store.upsert_nodes([entity, chunk]) + + # Get by ID + retrieved_entities = neo4j_store.get(ids=[entity.id]) + assert len(retrieved_entities) == 1 + assert isinstance(retrieved_entities[0], EntityNode) + assert retrieved_entities[0].name == "Alice" + + retrieved_chunks = neo4j_store.get(ids=[chunk.id]) + assert len(retrieved_chunks) == 1 + assert isinstance(retrieved_chunks[0], ChunkNode) + assert retrieved_chunks[0].text == "Alice is a software engineer." + + # Get by property + retrieved_by_prop = neo4j_store.get(properties={"name": "Alice"}) + assert len(retrieved_by_prop) == 1 + assert retrieved_by_prop[0].id == entity.id + + # Attempt to get unknown property + unknown_prop = neo4j_store.get(properties={"non_existent_prop": "foo"}) + assert len(unknown_prop) == 0 + + +def test_02_upsert_nodes_and_get_multiple(neo4j_store): + """ + Test inserting multiple nodes at once and retrieving them by IDs. + """ + entity1 = EntityNode(label="PERSON", name="Bob") + entity2 = EntityNode(label="PERSON", name="Charlie") + chunk1 = ChunkNode(text="This is sample text.") + chunk2 = ChunkNode(text="Another sample text.") + + # Upsert multiple + neo4j_store.upsert_nodes([entity1, entity2, chunk1, chunk2]) + + # Retrieve by IDs + ids_to_get = [entity1.id, entity2.id, chunk1.id, chunk2.id] + results = neo4j_store.get(ids=ids_to_get) + assert len(results) == 4 + + # Check some known values + person_bob = [r for r in results if isinstance(r, EntityNode) and r.name == "Bob"] + assert len(person_bob) == 1 + + chunk_texts = [r for r in results if isinstance(r, ChunkNode)] + assert len(chunk_texts) == 2 -def test_neo4j_pg_store(pg_store: Neo4jPropertyGraphStore) -> None: - # Create a two entity nodes - entity1 = EntityNode(label="PERSON", name="Logan", properties={"age": 28}) - entity2 = EntityNode(label="ORGANIZATION", name="LlamaIndex") +def test_03_upsert_relations_and_get(neo4j_store): + """ + Test creating relations between nodes, then retrieving them in multiple ways. + """ + person = EntityNode(label="PERSON", name="Alice") + city = EntityNode(label="CITY", name="Paris") + neo4j_store.upsert_nodes([person, city]) # Create a relation - relation = Relation( - label="WORKS_FOR", - source_id=entity1.id, - target_id=entity2.id, - properties={"since": 2023}, + visited_relation = Relation( + source_id=person.id, + target_id=city.id, + label="VISITED", + properties={"year": 2023}, ) + neo4j_store.upsert_relations([visited_relation]) + + # Validate that the relation can be found in triplets + triplets = neo4j_store.get_triplets(entity_names=["Alice"]) + assert len(triplets) == 1 + source, rel, target = triplets[0] + assert source.name == "Alice" + assert target.name == "Paris" + assert rel.label == "VISITED" + assert rel.properties["year"] == 2023 + + +def test_05_filter_nodes_by_property(neo4j_store): + """ + Test get() with property filtering. + """ + e1 = EntityNode(label="PERSON", name="Alice", properties={"country": "France"}) + e2 = EntityNode(label="PERSON", name="Bob", properties={"country": "USA"}) + e3 = EntityNode(label="PERSON", name="Charlie", properties={"country": "France"}) + neo4j_store.upsert_nodes([e1, e2, e3]) + + # Filter + filtered = neo4j_store.get(properties={"country": "France"}) + assert len(filtered) == 2 + filtered_names = {x.name for x in filtered} + assert filtered_names == {"Alice", "Charlie"} + + +def test_06_delete_entities_by_names(neo4j_store): + """ + Test deleting nodes by entity_names. + """ + e1 = EntityNode(label="PERSON", name="Alice") + e2 = EntityNode(label="PERSON", name="Bob") + neo4j_store.upsert_nodes([e1, e2]) + + # Delete 'Alice' + neo4j_store.delete(entity_names=["Alice"]) + + # Verify + remaining = neo4j_store.get() + assert len(remaining) == 1 + assert remaining[0].name == "Bob" + + +def test_07_delete_nodes_by_ids(neo4j_store): + """ + Test deleting nodes by IDs. + """ + e1 = EntityNode(label="PERSON", name="Alice") + e2 = EntityNode(label="PERSON", name="Bob") + e3 = EntityNode(label="PERSON", name="Charlie") + neo4j_store.upsert_nodes([e1, e2, e3]) + + # Delete Bob, Charlie by IDs + neo4j_store.delete(ids=[e2.id, e3.id]) + + all_remaining = neo4j_store.get() + assert len(all_remaining) == 1 + assert all_remaining[0].name == "Alice" + - pg_store.upsert_nodes([entity1, entity2]) - pg_store.upsert_relations([relation]) - - source_node = TextNode(text="Logan (age 28), works for LlamaIndex since 2023.") - relations = [ - Relation( - label="MENTIONS", - target_id=entity1.id, - source_id=source_node.node_id, - ), - Relation( - label="MENTIONS", - target_id=entity2.id, - source_id=source_node.node_id, - ), - ] - - pg_store.upsert_llama_nodes([source_node]) - pg_store.upsert_relations(relations) - - kg_nodes = pg_store.get(ids=[entity1.id]) - assert len(kg_nodes) == 1 - assert kg_nodes[0].label == "PERSON" - assert kg_nodes[0].name == "Logan" - - kg_nodes = pg_store.get(properties={"age": 28}) - assert len(kg_nodes) == 1 - assert kg_nodes[0].label == "PERSON" - assert kg_nodes[0].name == "Logan" - - # get paths from a node - paths = pg_store.get_rel_map(kg_nodes, depth=1) - for path in paths: - assert path[0].id == entity1.id - assert path[2].id == entity2.id - assert path[1].id == relation.id - - query = "match (n:`__Entity__`) return n" - result = pg_store.structured_query(query) - assert len(result) == 2 - - # get the original text node back - llama_nodes = pg_store.get_llama_nodes([source_node.node_id]) - assert len(llama_nodes) == 1 - assert llama_nodes[0].text == source_node.text - - # Upsert a new node - new_node = EntityNode( - label="PERSON", name="Logan", properties={"age": 28, "location": "Canada"} +def test_08_delete_relations(neo4j_store): + """ + Test deleting relationships by relation names. + """ + e1 = EntityNode(label="PERSON", name="Alice") + e2 = EntityNode(label="CITY", name="Paris") + neo4j_store.upsert_nodes([e1, e2]) + + rel = Relation(source_id=e1.id, target_id=e2.id, label="VISITED") + neo4j_store.upsert_relations([rel]) + + # Ensure the relationship is there + triplets_before = neo4j_store.get_triplets(entity_names=["Alice"]) + assert len(triplets_before) == 1 + + # Delete the relation + neo4j_store.delete(relation_names=["VISITED"]) + + # No more triplets + triplets_after = neo4j_store.get_triplets(entity_names=["Alice"]) + assert len(triplets_after) == 0 + + +def test_09_delete_nodes_by_properties(neo4j_store): + """ + Test deleting nodes by a property dict. + """ + c1 = ChunkNode(text="This is a test chunk.", properties={"lang": "en"}) + c2 = ChunkNode(text="Another chunk.", properties={"lang": "fr"}) + neo4j_store.upsert_nodes([c1, c2]) + + # Delete all English chunks + neo4j_store.delete(properties={"lang": "en"}) + + # Only c2 remains + remaining = neo4j_store.get() + assert len(remaining) == 1 + assert remaining[0].properties["lang"] == "fr" + + +def test_10_vector_query(neo4j_store): + """ + Test vector_query with some dummy embeddings. + Note: This requires Neo4j 5.23+ for native vector indexing, + or it falls back to approximate "cosine" with APOC. + """ + entity1 = EntityNode( + label="PERSON", name="Alice", properties={"embedding": [0.1, 0.2, 0.3]} ) - pg_store.upsert_nodes([new_node]) - kg_nodes = pg_store.get(properties={"age": 28}) - assert len(kg_nodes) == 1 - assert kg_nodes[0].label == "PERSON" - assert kg_nodes[0].name == "Logan" - assert kg_nodes[0].properties["location"] == "Canada" + entity2 = EntityNode( + label="PERSON", name="Bob", properties={"embedding": [0.9, 0.8, 0.7]} + ) + neo4j_store.upsert_nodes([entity1, entity2]) + + # Query embedding somewhat closer to [0.1, 0.2, 0.3] than [0.9, 0.8, 0.7] + query = VectorStoreQuery(query_embedding=[0.1, 0.2, 0.31], similarity_top_k=2) + results, scores = neo4j_store.vector_query(query) + + # Expect "Alice" to come first + assert len(results) == 2 + names_in_order = [r.name for r in results] + assert names_in_order[0] == "Alice" + assert names_in_order[1] == "Bob" + # Score check: Usually Alice's score should be higher + assert scores[0] >= scores[1] + + +def test_11_get_rel_map(neo4j_store): + """ + Test get_rel_map with a multi-depth scenario. + """ + e1 = EntityNode(label="PERSON", name="Alice") + e2 = EntityNode(label="PERSON", name="Bob") + e3 = EntityNode(label="CITY", name="Paris") + e4 = EntityNode(label="CITY", name="London") + neo4j_store.upsert_nodes([e1, e2, e3, e4]) + + r1 = Relation(label="KNOWS", source_id=e1.id, target_id=e2.id) + r2 = Relation(label="VISITED", source_id=e1.id, target_id=e3.id) + r3 = Relation(label="VISITED", source_id=e2.id, target_id=e4.id) + neo4j_store.upsert_relations([r1, r2, r3]) + + # Depth 2 should capture up to "Alice - Bob - London" chain + rel_map = neo4j_store.get_rel_map([e1], depth=2) + # Expect at least 2-3 relationships + labels_found = {trip[1].label for trip in rel_map} + assert "KNOWS" in labels_found + assert "VISITED" in labels_found + + +def test_12_get_schema(neo4j_store): + """ + Test get_schema. The schema might be empty or minimal if no data has been inserted yet. + """ + # Insert some data first + e1 = EntityNode(label="PERSON", name="Alice") + neo4j_store.upsert_nodes([e1]) + + schema = neo4j_store.get_schema(refresh=True) + assert "node_props" in schema + assert "rel_props" in schema + assert "relationships" in schema + + +def test_13_get_schema_str(neo4j_store): + """ + Test the textual representation of the schema. + """ + e1 = EntityNode(label="PERSON", name="Alice") + e2 = EntityNode(label="CITY", name="Paris") + neo4j_store.upsert_nodes([e1, e2]) + + # Insert a relationship + r = Relation(label="VISITED", source_id=e1.id, target_id=e2.id) + neo4j_store.upsert_relations([r]) + + schema_str = neo4j_store.get_schema_str(refresh=True) + assert "PERSON" in schema_str + assert "CITY" in schema_str + assert "VISITED" in schema_str + + +def test_14_structured_query(neo4j_store): + """ + Test running a custom Cypher query via structured_query. + """ + # Insert data + e1 = EntityNode(label="PERSON", name="Alice") + neo4j_store.upsert_nodes([e1]) - # deleting - # delete our entities - pg_store.delete(ids=[entity1.id, entity2.id]) + # Custom query + query = """ + MATCH (n) WHERE n.name = $name + RETURN n.name AS node_name, labels(n) AS node_labels + """ + result = neo4j_store.structured_query(query, {"name": "Alice"}) + assert len(result) == 1 + assert result[0]["node_name"] == "Alice" + assert "PERSON" in result[0]["node_labels"] - # delete our text nodes - pg_store.delete(ids=[source_node.node_id]) - nodes = pg_store.get(ids=[entity1.id, entity2.id]) - assert len(nodes) == 0 +def test_15_refresh_schema(neo4j_store): + """ + Test explicit refresh of the schema. + """ + # Insert data + e1 = EntityNode(label="PERSON", name="Alice", properties={"age": 30}) + neo4j_store.upsert_nodes([e1]) - text_nodes = pg_store.get_llama_nodes([source_node.node_id]) - assert len(text_nodes) == 0 + # Refresh schema + neo4j_store.refresh_schema() + schema = neo4j_store.structured_schema + assert "node_props" in schema + person_props = schema["node_props"].get("PERSON", []) + prop_names = {prop["property"] for prop in person_props} + assert "age" in prop_names, "Expected 'age' property in PERSON schema." diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/__init__.py b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/__init__.py index 2b754e097c1e9..94046772ec2a8 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/__init__.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/__init__.py @@ -1,7 +1,11 @@ from llama_index.indices.managed.llama_cloud.base import LlamaCloudIndex from llama_index.indices.managed.llama_cloud.retriever import LlamaCloudRetriever +from llama_index.indices.managed.llama_cloud.composite_retriever import ( + LlamaCloudCompositeRetriever, +) __all__ = [ "LlamaCloudIndex", "LlamaCloudRetriever", + "LlamaCloudCompositeRetriever", ] diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/api_utils.py b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/api_utils.py index 31e5b354d2250..63fdf79a04254 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/api_utils.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/api_utils.py @@ -1,5 +1,8 @@ -from typing import Optional, Tuple +from typing import Optional, Tuple, Union +import urllib.parse +from httpx import Request +from llama_index.core.async_utils import run_jobs from llama_cloud import ( AutoTransformConfig, Pipeline, @@ -9,7 +12,9 @@ PipelineType, Project, ) -from llama_cloud.client import LlamaCloud +from llama_cloud.core import remove_none_from_dict +from llama_cloud.client import LlamaCloud, AsyncLlamaCloud +from llama_cloud.core.api_error import ApiError def default_embedding_config() -> PipelineCreateEmbeddingConfig: @@ -96,3 +101,104 @@ def resolve_project_and_pipeline( ) return project, pipeline + + +def _build_get_page_screenshot_request( + client: Union[LlamaCloud, AsyncLlamaCloud], + file_id: str, + page_index: int, + project_id: str, +) -> Request: + return client._client_wrapper.httpx_client.build_request( + "GET", + urllib.parse.urljoin( + f"{client._client_wrapper.get_base_url()}/", + f"api/v1/files/{file_id}/page_screenshots/{page_index}", + ), + params=remove_none_from_dict({"project_id": project_id}), + headers=client._client_wrapper.get_headers(), + timeout=60, + ) + + +def get_page_screenshot( + client: LlamaCloud, file_id: str, page_index: int, project_id: str +) -> str: + """Get the page screenshot.""" + # TODO: this currently uses requests, should be replaced with the client + request = _build_get_page_screenshot_request( + client, file_id, page_index, project_id + ) + _response = client._client_wrapper.httpx_client.send(request) + if 200 <= _response.status_code < 300: + return _response.content + else: + raise ApiError(status_code=_response.status_code, body=_response.text) + + +async def aget_page_screenshot( + client: AsyncLlamaCloud, file_id: str, page_index: int, project_id: str +) -> str: + """Get the page screenshot (async).""" + request = _build_get_page_screenshot_request( + client, file_id, page_index, project_id + ) + _response = await client._client_wrapper.httpx_client.send(request) + if 200 <= _response.status_code < 300: + return _response.content + else: + raise ApiError(status_code=_response.status_code, body=_response.text) + + +from typing import List +import base64 +from llama_cloud import PageScreenshotNodeWithScore +from llama_index.core.schema import NodeWithScore, ImageNode +from llama_cloud.client import LlamaCloud, AsyncLlamaCloud + + +def image_nodes_to_node_with_score( + client: LlamaCloud, + raw_image_nodes: List[PageScreenshotNodeWithScore], + project_id: str, +) -> List[NodeWithScore]: + image_nodes = [] + for raw_image_node in raw_image_nodes: + image_bytes = get_page_screenshot( + client=client, + file_id=raw_image_node.node.file_id, + page_index=raw_image_node.node.page_index, + project_id=project_id, + ) + image_base64 = base64.b64encode(image_bytes).decode("utf-8") + image_node_with_score = NodeWithScore( + node=ImageNode(image=image_base64), score=raw_image_node.score + ) + image_nodes.append(image_node_with_score) + return image_nodes + + +async def aimage_nodes_to_node_with_score( + client: AsyncLlamaCloud, + raw_image_nodes: List[PageScreenshotNodeWithScore], + project_id: str, +) -> List[NodeWithScore]: + image_nodes = [] + tasks = [ + aget_page_screenshot( + client=client, + file_id=raw_image_node.node.file_id, + page_index=raw_image_node.node.page_index, + project_id=project_id, + ) + for raw_image_node in raw_image_nodes + ] + + image_bytes_list = await run_jobs(tasks) + for image_bytes, raw_image_node in zip(image_bytes_list, raw_image_nodes): + image_base64 = base64.b64encode(image_bytes).decode("utf-8") + image_node_with_score = NodeWithScore( + node=ImageNode(image=image_base64), score=raw_image_node.score + ) + image_nodes.append(image_node_with_score) + return image_nodes diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/base.py b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/base.py index b847c0d6127a1..c3cac40b3b043 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/base.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/base.py @@ -156,6 +156,11 @@ def __init__( self._service_context = None self._callback_manager = callback_manager or Settings.callback_manager + @property + def id(self) -> str: + """Return the pipeline (aka index) ID.""" + return self.pipeline.id + def wait_for_completion( self, verbose: bool = False, diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/composite_retriever.py b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/composite_retriever.py new file mode 100644 index 0000000000000..cd46ef0a01f09 --- /dev/null +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/composite_retriever.py @@ -0,0 +1,254 @@ +from typing import Any, List, Optional + +import httpx +from llama_cloud import ( + CompositeRetrievalMode, + CompositeRetrievedTextNodeWithScore, + RetrieverCreate, + Retriever, + RetrieverPipeline, + PresetRetrievalParams, +) +from llama_cloud.resources.pipelines.client import OMIT + +from llama_index.core.base.base_retriever import BaseRetriever +from llama_index.core.constants import DEFAULT_PROJECT_NAME +from llama_index.core.ingestion.api_utils import get_aclient, get_client +from llama_index.core.schema import NodeWithScore, QueryBundle, TextNode +from llama_index.indices.managed.llama_cloud.base import LlamaCloudIndex +from llama_index.indices.managed.llama_cloud.api_utils import ( + resolve_project, + image_nodes_to_node_with_score, +) + + +class LlamaCloudCompositeRetriever(BaseRetriever): + def __init__( + self, + # index identifier + name: Optional[str] = None, + # project identifier + project_name: Optional[str] = DEFAULT_PROJECT_NAME, + project_id: Optional[str] = None, + organization_id: Optional[str] = None, + # creation options + create_if_not_exists: bool = False, + # connection params + api_key: Optional[str] = None, + base_url: Optional[str] = None, + app_url: Optional[str] = None, + timeout: int = 60, + httpx_client: Optional[httpx.Client] = None, + async_httpx_client: Optional[httpx.AsyncClient] = None, + # composite retrieval params + mode: Optional[CompositeRetrievalMode] = None, + rerank_top_n: Optional[int] = None, + **kwargs: Any, + ) -> None: + """Initialize the Composite Retriever.""" + if sum([bool(name), bool(project_id)]) != 1: + raise ValueError( + "Exactly one of `name` or `project_id` must be provided to identify the index." + ) + + # initialize clients + self._client = get_client(api_key, base_url, app_url, timeout, httpx_client) + self._aclient = get_aclient( + api_key, base_url, app_url, timeout, async_httpx_client + ) + + self.project = resolve_project( + self._client, project_name, project_id, organization_id + ) + self.name = name + self.project_name = self.project.name + + # TODO: Refactor to use ?name=x query param once that is released in python client + project_retrievers = self._client.retrievers.list_retrievers( + project_id=self.project.id + ) + self.retriever = next( + ( + retriever + for retriever in project_retrievers + if retriever.name == self.name + ), + None, + ) + if self.retriever is None: + if create_if_not_exists: + self.retriever = self._client.retrievers.upsert_retriever( + project_id=self.project.id, + request=RetrieverCreate(name=self.name, pipelines=[]), + ) + else: + raise ValueError( + f"Retriever with name '{self.name}' does not exist in project '{self.project_name}'." + ) + + # composite retrieval params + self._mode = mode if mode is not None else OMIT + self._rerank_top_n = rerank_top_n if rerank_top_n is not None else OMIT + + super().__init__( + callback_manager=kwargs.get("callback_manager", None), + verbose=kwargs.get("verbose", False), + ) + + @property + def retriever_pipelines(self) -> List[RetrieverPipeline]: + return self.retriever.pipelines or [] + + def update_retriever_pipelines( + self, pipelines: List[RetrieverPipeline] + ) -> Retriever: + self.retriever = self._client.retrievers.update_retriever( + self.retriever.id, pipelines=pipelines + ) + return self.retriever + + def add_index( + self, + index: LlamaCloudIndex, + name: Optional[str] = None, + description: Optional[str] = None, + preset_retrieval_parameters: Optional[PresetRetrievalParams] = None, + ) -> Retriever: + name = name or index.name + preset_retrieval_parameters = ( + preset_retrieval_parameters or index.pipeline.preset_retrieval_parameters + ) + retriever_pipeline = RetrieverPipeline( + pipeline_id=index.id, + name=name, + description=description, + preset_retrieval_parameters=preset_retrieval_parameters, + ) + current_retriever_pipelines_by_name = { + pipeline.name: pipeline for pipeline in (self.retriever_pipelines or []) + } + current_retriever_pipelines_by_name[ + retriever_pipeline.name + ] = retriever_pipeline + return self.update_retriever_pipelines( + list(current_retriever_pipelines_by_name.values()) + ) + + def remove_index(self, name: str) -> bool: + current_retriever_pipeline_names = self.retriever.pipelines or [] + new_retriever_pipelines = [ + pipeline + for pipeline in current_retriever_pipeline_names + if pipeline.name != name + ] + if len(new_retriever_pipelines) == len(current_retriever_pipeline_names): + return False + self.update_retriever_pipelines(new_retriever_pipelines) + return True + + async def aupdate_retriever_pipelines( + self, pipelines: List[RetrieverPipeline] + ) -> Retriever: + self.retriever = await self._aclient.retrievers.update_retriever( + self.retriever.id, pipelines=pipelines + ) + return self.retriever + + async def async_add_index( + self, + index: LlamaCloudIndex, + name: Optional[str] = None, + description: Optional[str] = None, + preset_retrieval_parameters: Optional[PresetRetrievalParams] = None, + ) -> Retriever: + name = name or index.name + preset_retrieval_parameters = ( + preset_retrieval_parameters or index.pipeline.preset_retrieval_parameters + ) + retriever_pipeline = RetrieverPipeline( + pipeline_id=index.id, + name=name, + description=description, + preset_retrieval_parameters=preset_retrieval_parameters, + ) + current_retriever_pipelines_by_name = { + pipeline.name: pipeline for pipeline in (self.retriever_pipelines or []) + } + current_retriever_pipelines_by_name[ + retriever_pipeline.name + ] = retriever_pipeline + return await self.aupdate_retriever_pipelines( + list(current_retriever_pipelines_by_name.values()) + ) + + async def aremove_index(self, name: str) -> bool: + current_retriever_pipeline_names = self.retriever.pipelines or [] + new_retriever_pipelines = [ + pipeline + for pipeline in current_retriever_pipeline_names + if pipeline.name != name + ] + if len(new_retriever_pipelines) == len(current_retriever_pipeline_names): + return False + await self.aupdate_retriever_pipelines(new_retriever_pipelines) + return True + + def _result_nodes_to_node_with_score( + self, composite_retrieval_node: CompositeRetrievedTextNodeWithScore + ) -> NodeWithScore: + return NodeWithScore( + node=TextNode( + id=composite_retrieval_node.node.id, + text=composite_retrieval_node.node.text, + metadata=composite_retrieval_node.node.metadata, + ), + score=composite_retrieval_node.score, + ) + + def _retrieve( + self, + query_bundle: QueryBundle, + mode: Optional[CompositeRetrievalMode] = None, + rerank_top_n: Optional[int] = None, + ) -> List[NodeWithScore]: + mode = mode if mode is not None else self._mode + rerank_top_n = rerank_top_n if rerank_top_n is not None else self._rerank_top_n + result = self._client.retrievers.retrieve( + self.retriever.id, + mode=mode, + rerank_top_n=rerank_top_n, + query=query_bundle.query_str, + ) + node_w_scores = [ + self._result_nodes_to_node_with_score(node) for node in result.nodes + ] + image_nodes_w_scores = image_nodes_to_node_with_score( + self._client, result.image_nodes, self.project.id + ) + return sorted( + node_w_scores + image_nodes_w_scores, key=lambda x: x.score, reverse=True + ) + + async def _aretrieve( + self, + query_bundle: QueryBundle, + mode: Optional[CompositeRetrievalMode] = None, + rerank_top_n: Optional[int] = None, + ) -> List[NodeWithScore]: + mode = mode if mode is not None else self._mode + rerank_top_n = rerank_top_n if rerank_top_n is not None else self._rerank_top_n + result = await self._aclient.retrievers.retrieve( + self.retriever.id, + mode=mode, + rerank_top_n=rerank_top_n, + query=query_bundle.query_str, + ) + node_w_scores = [ + self._result_nodes_to_node_with_score(node) for node in result.nodes + ] + image_nodes_w_scores = image_nodes_to_node_with_score( + self._aclient, result.image_nodes, self.project.id + ) + return sorted( + node_w_scores + image_nodes_w_scores, key=lambda x: x.score, reverse=True + ) diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/retriever.py b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/retriever.py index 1ff25432dd9bb..b9b7be3c2f14c 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/retriever.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/llama_index/indices/managed/llama_cloud/retriever.py @@ -3,68 +3,21 @@ import httpx from llama_cloud import ( TextNodeWithScore, - PageScreenshotNodeWithScore, ) from llama_cloud.resources.pipelines.client import OMIT -from llama_cloud.client import LlamaCloud, AsyncLlamaCloud -from llama_cloud.core import remove_none_from_dict -from llama_cloud.core.api_error import ApiError from llama_index.core.base.base_retriever import BaseRetriever from llama_index.core.constants import DEFAULT_PROJECT_NAME from llama_index.core.ingestion.api_utils import get_aclient, get_client -from llama_index.core.schema import NodeWithScore, QueryBundle, TextNode, ImageNode +from llama_index.core.schema import NodeWithScore, QueryBundle, TextNode from llama_index.core.vector_stores.types import MetadataFilters -import asyncio -import urllib.parse -import base64 from llama_index.indices.managed.llama_cloud.api_utils import ( resolve_project_and_pipeline, + image_nodes_to_node_with_score, + aimage_nodes_to_node_with_score, ) -def _get_page_screenshot( - client: LlamaCloud, file_id: str, page_index: int, project_id: str -) -> str: - """Get the page screenshot.""" - # TODO: this currently uses requests, should be replaced with the client - _response = client._client_wrapper.httpx_client.request( - "GET", - urllib.parse.urljoin( - f"{client._client_wrapper.get_base_url()}/", - f"api/v1/files/{file_id}/page_screenshots/{page_index}", - ), - params=remove_none_from_dict({"project_id": project_id}), - headers=client._client_wrapper.get_headers(), - timeout=60, - ) - if 200 <= _response.status_code < 300: - return _response.content - else: - raise ApiError(status_code=_response.status_code, body=_response.text) - - -async def _aget_page_screenshot( - client: AsyncLlamaCloud, file_id: str, page_index: int, project_id: str -) -> str: - """Get the page screenshot.""" - # TODO: this currently uses requests, should be replaced with the client - _response = await client._client_wrapper.httpx_client.request( - "GET", - urllib.parse.urljoin( - f"{client._client_wrapper.get_base_url()}/", - f"api/v1/files/{file_id}/page_screenshots/{page_index}", - ), - params=remove_none_from_dict({"project_id": project_id}), - headers=client._client_wrapper.get_headers(), - timeout=60, - ) - if 200 <= _response.status_code < 300: - return _response.content - else: - raise ApiError(status_code=_response.status_code, body=_response.text) - - class LlamaCloudRetriever(BaseRetriever): def __init__( self, @@ -151,62 +104,6 @@ def _result_nodes_to_node_with_score( return nodes - def _image_nodes_to_node_with_score( - self, raw_image_nodes: List[PageScreenshotNodeWithScore] - ) -> List[NodeWithScore]: - image_nodes = [] - if self._retrieve_image_nodes: - for raw_image_node in raw_image_nodes: - # TODO: this is a hack to use requests, should be replaced with the client - image_bytes = _get_page_screenshot( - client=self._client, - file_id=raw_image_node.node.file_id, - page_index=raw_image_node.node.page_index, - project_id=self.project.id, - ) - # Convert image bytes to base64 encoded string - image_base64 = base64.b64encode(image_bytes).decode("utf-8") - image_node_with_score = NodeWithScore( - node=ImageNode(image=image_base64), score=raw_image_node.score - ) - image_nodes.append(image_node_with_score) - else: - if len(image_nodes) > 0: - raise ValueError( - "Image nodes were retrieved but `retrieve_image_nodes` was set to False." - ) - return image_nodes - - async def _aimage_nodes_to_node_with_score( - self, raw_image_nodes: List[PageScreenshotNodeWithScore] - ) -> List[NodeWithScore]: - image_nodes = [] - if self._retrieve_image_nodes: - tasks = [ - _aget_page_screenshot( - client=self._aclient, - file_id=raw_image_node.node.file_id, - page_index=raw_image_node.node.page_index, - project_id=self.project.id, - ) - for raw_image_node in raw_image_nodes - ] - - image_bytes_list = await asyncio.gather(*tasks) - for image_bytes, raw_image_node in zip(image_bytes_list, raw_image_nodes): - # Convert image bytes to base64 encoded string - image_base64 = base64.b64encode(image_bytes).decode("utf-8") - image_node_with_score = NodeWithScore( - node=ImageNode(image=image_base64), score=raw_image_node.score - ) - image_nodes.append(image_node_with_score) - else: - if len(image_nodes) > 0: - raise ValueError( - "Image nodes were retrieved but `retrieve_image_nodes` was set to False." - ) - return image_nodes - def _retrieve(self, query_bundle: QueryBundle) -> List[NodeWithScore]: """Retrieve from the platform.""" results = self._client.pipelines.run_search( @@ -224,7 +121,12 @@ def _retrieve(self, query_bundle: QueryBundle) -> List[NodeWithScore]: ) result_nodes = self._result_nodes_to_node_with_score(results.retrieval_nodes) - result_nodes.extend(self._image_nodes_to_node_with_score(results.image_nodes)) + if self._retrieve_image_nodes: + result_nodes.extend( + image_nodes_to_node_with_score( + self._client, results.image_nodes, self.project.id + ) + ) return result_nodes @@ -245,7 +147,10 @@ async def _aretrieve(self, query_bundle: QueryBundle) -> List[NodeWithScore]: ) result_nodes = self._result_nodes_to_node_with_score(results.retrieval_nodes) - result_nodes.extend( - await self._aimage_nodes_to_node_with_score(results.image_nodes) - ) + if self._retrieve_image_nodes: + result_nodes.extend( + await aimage_nodes_to_node_with_score( + self._aclient, results.image_nodes, self.project.id + ) + ) return result_nodes diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/poetry.lock b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/poetry.lock new file mode 100644 index 0000000000000..368961d40b5a6 --- /dev/null +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/poetry.lock @@ -0,0 +1,4767 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "astroid" +version = "2.13.5" +description = "An abstract syntax tree for Python with inference support." +optional = false +python-versions = ">=3.7.2" +files = [ + {file = "astroid-2.13.5-py3-none-any.whl", hash = "sha256:6891f444625b6edb2ac798829b689e95297e100ddf89dbed5a8c610e34901501"}, + {file = "astroid-2.13.5.tar.gz", hash = "sha256:df164d5ac811b9f44105a72b8f9d5edfb7b5b2d7e979b04ea377a77b3229114a"}, +] + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, +] + +[package.extras] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "24.3.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +files = [ + {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, + {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +files = [ + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +optional = false +python-versions = "*" +files = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "black" +version = "23.9.1" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, + {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, + {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, + {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, + {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, + {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, + {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, + {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, + {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, + {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, + {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, +] + +[package.dependencies] +click = ">=8.0.0" +ipython = {version = ">=7.8.0", optional = true, markers = "extra == \"jupyter\""} +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tokenize-rt = {version = ">=3.2.0", optional = true, markers = "extra == \"jupyter\""} +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "bleach" +version = "6.2.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.9" +files = [ + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, +] + +[package.dependencies] +tinycss2 = {version = ">=1.1.0,<1.5", optional = true, markers = "extra == \"css\""} +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.5)"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "codespell" +version = "2.3.0" +description = "Codespell" +optional = false +python-versions = ">=3.8" +files = [ + {file = "codespell-2.3.0-py3-none-any.whl", hash = "sha256:a9c7cef2501c9cfede2110fd6d4e5e62296920efe9abfb84648df866e47f58d1"}, + {file = "codespell-2.3.0.tar.gz", hash = "sha256:360c7d10f75e65f67bad720af7007e1060a5d395670ec11a7ed1fed9dd17471f"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_version < \"3.11\" and extra == \"toml\""} + +[package.extras] +dev = ["Pygments", "build", "chardet", "pre-commit", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli", "twine"] +hard-encoding-detection = ["chardet"] +toml = ["tomli"] +types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency"] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "debugpy" +version = "1.8.12" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "debugpy-1.8.12-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:a2ba7ffe58efeae5b8fad1165357edfe01464f9aef25e814e891ec690e7dd82a"}, + {file = "debugpy-1.8.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbbd4149c4fc5e7d508ece083e78c17442ee13b0e69bfa6bd63003e486770f45"}, + {file = "debugpy-1.8.12-cp310-cp310-win32.whl", hash = "sha256:b202f591204023b3ce62ff9a47baa555dc00bb092219abf5caf0e3718ac20e7c"}, + {file = "debugpy-1.8.12-cp310-cp310-win_amd64.whl", hash = "sha256:9649eced17a98ce816756ce50433b2dd85dfa7bc92ceb60579d68c053f98dff9"}, + {file = "debugpy-1.8.12-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:36f4829839ef0afdfdd208bb54f4c3d0eea86106d719811681a8627ae2e53dd5"}, + {file = "debugpy-1.8.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a28ed481d530e3138553be60991d2d61103ce6da254e51547b79549675f539b7"}, + {file = "debugpy-1.8.12-cp311-cp311-win32.whl", hash = "sha256:4ad9a94d8f5c9b954e0e3b137cc64ef3f579d0df3c3698fe9c3734ee397e4abb"}, + {file = "debugpy-1.8.12-cp311-cp311-win_amd64.whl", hash = "sha256:4703575b78dd697b294f8c65588dc86874ed787b7348c65da70cfc885efdf1e1"}, + {file = "debugpy-1.8.12-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:7e94b643b19e8feb5215fa508aee531387494bf668b2eca27fa769ea11d9f498"}, + {file = "debugpy-1.8.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:086b32e233e89a2740c1615c2f775c34ae951508b28b308681dbbb87bba97d06"}, + {file = "debugpy-1.8.12-cp312-cp312-win32.whl", hash = "sha256:2ae5df899732a6051b49ea2632a9ea67f929604fd2b036613a9f12bc3163b92d"}, + {file = "debugpy-1.8.12-cp312-cp312-win_amd64.whl", hash = "sha256:39dfbb6fa09f12fae32639e3286112fc35ae976114f1f3d37375f3130a820969"}, + {file = "debugpy-1.8.12-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:696d8ae4dff4cbd06bf6b10d671e088b66669f110c7c4e18a44c43cf75ce966f"}, + {file = "debugpy-1.8.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:898fba72b81a654e74412a67c7e0a81e89723cfe2a3ea6fcd3feaa3395138ca9"}, + {file = "debugpy-1.8.12-cp313-cp313-win32.whl", hash = "sha256:22a11c493c70413a01ed03f01c3c3a2fc4478fc6ee186e340487b2edcd6f4180"}, + {file = "debugpy-1.8.12-cp313-cp313-win_amd64.whl", hash = "sha256:fdb3c6d342825ea10b90e43d7f20f01535a72b3a1997850c0c3cefa5c27a4a2c"}, + {file = "debugpy-1.8.12-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:b0232cd42506d0c94f9328aaf0d1d0785f90f87ae72d9759df7e5051be039738"}, + {file = "debugpy-1.8.12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af40506a59450f1315168d47a970db1a65aaab5df3833ac389d2899a5d63b3f"}, + {file = "debugpy-1.8.12-cp38-cp38-win32.whl", hash = "sha256:5cc45235fefac57f52680902b7d197fb2f3650112379a6fa9aa1b1c1d3ed3f02"}, + {file = "debugpy-1.8.12-cp38-cp38-win_amd64.whl", hash = "sha256:557cc55b51ab2f3371e238804ffc8510b6ef087673303890f57a24195d096e61"}, + {file = "debugpy-1.8.12-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:b5c6c967d02fee30e157ab5227706f965d5c37679c687b1e7bbc5d9e7128bd41"}, + {file = "debugpy-1.8.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a77f422f31f170c4b7e9ca58eae2a6c8e04da54121900651dfa8e66c29901a"}, + {file = "debugpy-1.8.12-cp39-cp39-win32.whl", hash = "sha256:a4042edef80364239f5b7b5764e55fd3ffd40c32cf6753da9bda4ff0ac466018"}, + {file = "debugpy-1.8.12-cp39-cp39-win_amd64.whl", hash = "sha256:f30b03b0f27608a0b26c75f0bb8a880c752c0e0b01090551b9d87c7d783e2069"}, + {file = "debugpy-1.8.12-py2.py3-none-any.whl", hash = "sha256:274b6a2040349b5c9864e475284bce5bb062e63dce368a394b8cc865ae3b00c6"}, + {file = "debugpy-1.8.12.tar.gz", hash = "sha256:646530b04f45c830ceae8e491ca1c9320a2d2f0efea3141487c82130aba70dce"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "deprecated" +version = "1.2.15" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +files = [ + {file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"}, + {file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "jinja2 (>=3.0.3,<3.1.0)", "setuptools", "sphinx (<2)", "tox"] + +[[package]] +name = "dill" +version = "0.3.9" +description = "serialize all of Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"}, + {file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"}, +] + +[package.extras] +graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "2.1.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +files = [ + {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, + {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +files = [ + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "filelock" +version = "3.16.1" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, + {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "identify" +version = "2.6.5" +description = "File identification library for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "identify-2.6.5-py2.py3-none-any.whl", hash = "sha256:14181a47091eb75b337af4c23078c9d09225cd4c48929f521f3bf16b09d02566"}, + {file = "identify-2.6.5.tar.gz", hash = "sha256:c10b33f250e5bba374fae86fb57f3adcebf1161bce7cdf92031915fd480c13bc"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "importlib-metadata" +version = "8.5.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, + {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, +] + +[package.dependencies] +zipp = ">=3.20" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +perf = ["ipython"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.10.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "ipython-8.10.0-py3-none-any.whl", hash = "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345"}, + {file = "ipython-8.10.0.tar.gz", hash = "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=3.0.30,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "ipywidgets" +version = "8.1.5" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.12,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "isort" +version = "5.13.2" +description = "A Python utility / library to sort Python imports." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, +] + +[package.extras] +colors = ["colorama (>=0.4.6)"] + +[[package]] +name = "jedi" +version = "0.19.2" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +files = [ + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, +] + +[package.dependencies] +parso = ">=0.8.4,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "json5" +version = "0.10.0" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, +] + +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.1.1" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +files = [ + {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, + {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +jupyterlab = "*" +nbconvert = "*" +notebook = "*" + +[[package]] +name = "jupyter-client" +version = "8.6.3" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.11.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.9" +files = [ + {file = "jupyter_events-0.11.0-py3-none-any.whl", hash = "sha256:36399b41ce1ca45fe8b8271067d6a140ffa54cec4028e95491c93b78a855cacf"}, + {file = "jupyter_events-0.11.0.tar.gz", hash = "sha256:c0bc56a37aac29c1fbc3bcfbddb8c8c49533f9cf11f1c4e6adadba936574ab90"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8)", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.15.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.9" +files = [ + {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"}, + {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.11.0" +jupyter-server-terminals = ">=0.4.4" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = ">=1.7" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.3.4" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab-4.3.4-py3-none-any.whl", hash = "sha256:b754c2601c5be6adf87cb5a1d8495d653ffb945f021939f77776acaa94dae952"}, + {file = "jupyterlab-4.3.4.tar.gz", hash = "sha256:f0bb9b09a04766e3423cccc2fc23169aa2ffedcdf8713e9e0fb33cac0b6859d0"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +httpx = ">=0.25.0" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +ipykernel = ">=6.5.0" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2" +packaging = "*" +setuptools = ">=40.8.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.8" +files = [ + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, +] + +[package.dependencies] +babel = ">=2.10" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.13" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, +] + +[[package]] +name = "lazy-object-proxy" +version = "1.10.0" +description = "A fast and thorough lazy object proxy." +optional = false +python-versions = ">=3.8" +files = [ + {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, + {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, +] + +[[package]] +name = "llama-cloud" +version = "0.1.9" +description = "" +optional = false +python-versions = "<4,>=3.8" +files = [ + {file = "llama_cloud-0.1.9-py3-none-any.whl", hash = "sha256:792ee316985bbf4dd0294007105a100489d4baba0bcc4f3e16284f0c01d832d4"}, + {file = "llama_cloud-0.1.9.tar.gz", hash = "sha256:fc03bd338a1da04b7607a44d82a62b3eb178d80af05a53653e801d6f8bb67df7"}, +] + +[package.dependencies] +certifi = ">=2024.7.4,<2025.0.0" +httpx = ">=0.20.0" +pydantic = ">=1.10" + +[[package]] +name = "llama-index-core" +version = "0.12.11" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +files = [ + {file = "llama_index_core-0.12.11-py3-none-any.whl", hash = "sha256:3b1e019c899e9e011dfa01c96b7e3f666e0c161035fbca6cb787b4c61e0c94db"}, + {file = "llama_index_core-0.12.11.tar.gz", hash = "sha256:9a41ca91167ea5eec9ebaac7f5e958b7feddbd8af3bfbf7c393a5edfb994d566"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.25.1" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +files = [ + {file = "marshmallow-3.25.1-py3-none-any.whl", hash = "sha256:ec5d00d873ce473b7f2ffcb7104286a376c354cab0c2fa12f5573dab03e87210"}, + {file = "marshmallow-3.25.1.tar.gz", hash = "sha256:f4debda3bb11153d81ac34b0d582bf23053055ee11e791b54b4b35493468040a"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "mistune" +version = "3.1.0" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mistune-3.1.0-py3-none-any.whl", hash = "sha256:b05198cf6d671b3deba6c87ec6cf0d4eb7b72c524636eddb6dbf13823b52cee1"}, + {file = "mistune-3.1.0.tar.gz", hash = "sha256:dbcac2f78292b9dc066cd03b7a3a26b62d85f8159f2ea5fd28e55df79908d667"}, +] + +[package.dependencies] +typing-extensions = {version = "*", markers = "python_version < \"3.11\""} + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy" +version = "0.991" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mypy-0.991-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7d17e0a9707d0772f4a7b878f04b4fd11f6f5bcb9b3813975a9b13c9332153ab"}, + {file = "mypy-0.991-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0714258640194d75677e86c786e80ccf294972cc76885d3ebbb560f11db0003d"}, + {file = "mypy-0.991-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8f3be99e8a8bd403caa8c03be619544bc2c77a7093685dcf308c6b109426c6"}, + {file = "mypy-0.991-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9ec663ed6c8f15f4ae9d3c04c989b744436c16d26580eaa760ae9dd5d662eb"}, + {file = "mypy-0.991-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4307270436fd7694b41f913eb09210faff27ea4979ecbcd849e57d2da2f65305"}, + {file = "mypy-0.991-cp310-cp310-win_amd64.whl", hash = "sha256:901c2c269c616e6cb0998b33d4adbb4a6af0ac4ce5cd078afd7bc95830e62c1c"}, + {file = "mypy-0.991-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d13674f3fb73805ba0c45eb6c0c3053d218aa1f7abead6e446d474529aafc372"}, + {file = "mypy-0.991-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c8cd4fb70e8584ca1ed5805cbc7c017a3d1a29fb450621089ffed3e99d1857f"}, + {file = "mypy-0.991-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:209ee89fbb0deed518605edddd234af80506aec932ad28d73c08f1400ef80a33"}, + {file = "mypy-0.991-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37bd02ebf9d10e05b00d71302d2c2e6ca333e6c2a8584a98c00e038db8121f05"}, + {file = "mypy-0.991-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:26efb2fcc6b67e4d5a55561f39176821d2adf88f2745ddc72751b7890f3194ad"}, + {file = "mypy-0.991-cp311-cp311-win_amd64.whl", hash = "sha256:3a700330b567114b673cf8ee7388e949f843b356a73b5ab22dd7cff4742a5297"}, + {file = "mypy-0.991-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1f7d1a520373e2272b10796c3ff721ea1a0712288cafaa95931e66aa15798813"}, + {file = "mypy-0.991-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:641411733b127c3e0dab94c45af15fea99e4468f99ac88b39efb1ad677da5711"}, + {file = "mypy-0.991-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3d80e36b7d7a9259b740be6d8d906221789b0d836201af4234093cae89ced0cd"}, + {file = "mypy-0.991-cp37-cp37m-win_amd64.whl", hash = "sha256:e62ebaad93be3ad1a828a11e90f0e76f15449371ffeecca4a0a0b9adc99abcef"}, + {file = "mypy-0.991-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b86ce2c1866a748c0f6faca5232059f881cda6dda2a893b9a8373353cfe3715a"}, + {file = "mypy-0.991-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac6e503823143464538efda0e8e356d871557ef60ccd38f8824a4257acc18d93"}, + {file = "mypy-0.991-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cca5adf694af539aeaa6ac633a7afe9bbd760df9d31be55ab780b77ab5ae8bf"}, + {file = "mypy-0.991-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12c56bf73cdab116df96e4ff39610b92a348cc99a1307e1da3c3768bbb5b135"}, + {file = "mypy-0.991-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:652b651d42f155033a1967739788c436491b577b6a44e4c39fb340d0ee7f0d70"}, + {file = "mypy-0.991-cp38-cp38-win_amd64.whl", hash = "sha256:4175593dc25d9da12f7de8de873a33f9b2b8bdb4e827a7cae952e5b1a342e243"}, + {file = "mypy-0.991-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98e781cd35c0acf33eb0295e8b9c55cdbef64fcb35f6d3aa2186f289bed6e80d"}, + {file = "mypy-0.991-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6d7464bac72a85cb3491c7e92b5b62f3dcccb8af26826257760a552a5e244aa5"}, + {file = "mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c9166b3f81a10cdf9b49f2d594b21b31adadb3d5e9db9b834866c3258b695be3"}, + {file = "mypy-0.991-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8472f736a5bfb159a5e36740847808f6f5b659960115ff29c7cecec1741c648"}, + {file = "mypy-0.991-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e80e758243b97b618cdf22004beb09e8a2de1af481382e4d84bc52152d1c476"}, + {file = "mypy-0.991-cp39-cp39-win_amd64.whl", hash = "sha256:74e259b5c19f70d35fcc1ad3d56499065c601dfe94ff67ae48b85596b9ec1461"}, + {file = "mypy-0.991-py3-none-any.whl", hash = "sha256:de32edc9b0a7e67c2775e574cb061a537660e51210fbf6006b0b36ea695ae9bb"}, + {file = "mypy-0.991.tar.gz", hash = "sha256:3c0165ba8f354a6d9881809ef29f1a9318a236a6d81c690094c5df32107bde06"}, +] + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nbclient" +version = "0.10.2" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.9.0" +files = [ + {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, + {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.16.5" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbconvert-7.16.5-py3-none-any.whl", hash = "sha256:e12eac052d6fd03040af4166c563d76e7aeead2e9aadf5356db552a1784bd547"}, + {file = "nbconvert-7.16.5.tar.gz", hash = "sha256:c83467bb5777fdfaac5ebbb8e864f300b277f68692ecc04d6dab72f2d8442344"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = {version = "!=5.0.0", extras = ["css"]} +defusedxml = "*" +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +traitlets = ">=5.1" + +[package.extras] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "notebook" +version = "7.3.2" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +files = [ + {file = "notebook-7.3.2-py3-none-any.whl", hash = "sha256:e5f85fc59b69d3618d73cf27544418193ff8e8058d5bf61d315ce4f473556288"}, + {file = "notebook-7.3.2.tar.gz", hash = "sha256:705e83a1785f45b383bf3ee13cb76680b92d24f56fb0c7d2136fe1d850cd3ca8"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.3.4,<4.4" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.59.7" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +files = [ + {file = "openai-1.59.7-py3-none-any.whl", hash = "sha256:cfa806556226fa96df7380ab2e29814181d56fea44738c2b0e581b462c268692"}, + {file = "openai-1.59.7.tar.gz", hash = "sha256:043603def78c00befb857df9f0a16ee76a3af5984ba40cb7ee5e2f40db4646bf"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +optional = false +python-versions = "*" +files = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.2.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pre_commit-3.2.0-py2.py3-none-any.whl", hash = "sha256:f712d3688102e13c8e66b7d7dbd8934a6dda157e58635d89f7d6fecdca39ce8a"}, + {file = "pre_commit-3.2.0.tar.gz", hash = "sha256:818f0d998059934d0f81bb3667e3ccdc32da6ed7ccaac33e43dc231561ddaaa9"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "prometheus-client" +version = "0.21.1" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.48" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, + {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "psutil" +version = "6.1.1" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.1.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9ccc4316f24409159897799b83004cb1e24f9819b0dcf9c0b68bdcb6cefee6a8"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ca9609c77ea3b8481ab005da74ed894035936223422dc591d6772b147421f777"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8df0178ba8a9e5bc84fed9cfa61d54601b371fbec5c8eebad27575f1e105c0d4"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:1924e659d6c19c647e763e78670a05dbb7feaf44a0e9c94bf9e14dfc6ba50468"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:018aeae2af92d943fdf1da6b58665124897cfc94faa2ca92098838f83e1b1bca"}, + {file = "psutil-6.1.1-cp27-none-win32.whl", hash = "sha256:6d4281f5bbca041e2292be3380ec56a9413b790579b8e593b1784499d0005dac"}, + {file = "psutil-6.1.1-cp27-none-win_amd64.whl", hash = "sha256:c777eb75bb33c47377c9af68f30e9f11bc78e0f07fbf907be4a5d70b2fe5f030"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3"}, + {file = "psutil-6.1.1-cp36-cp36m-win32.whl", hash = "sha256:384636b1a64b47814437d1173be1427a7c83681b17a450bfc309a1953e329603"}, + {file = "psutil-6.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8be07491f6ebe1a693f17d4f11e69d0dc1811fa082736500f649f79df7735303"}, + {file = "psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53"}, + {file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"}, + {file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"}, +] + +[package.extras] +dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.5" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"}, + {file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pylint" +version = "2.15.10" +description = "python code static checker" +optional = false +python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.15.10-py3-none-any.whl", hash = "sha256:9df0d07e8948a1c3ffa3b6e2d7e6e63d9fb457c5da5b961ed63106594780cc7e"}, + {file = "pylint-2.15.10.tar.gz", hash = "sha256:b3dc5ef7d33858f297ac0d06cc73862f01e4f2e74025ec3eff347ce0bc60baf5"}, +] + +[package.dependencies] +astroid = ">=2.12.13,<=2.14.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pytest" +version = "7.2.1" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, + {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, +] + +[package.dependencies] +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "pytest-mock" +version = "3.11.1" +description = "Thin-wrapper around the mock package for easier use with pytest" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-mock-3.11.1.tar.gz", hash = "sha256:7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f"}, + {file = "pytest_mock-3.11.1-py3-none-any.whl", hash = "sha256:21c279fff83d70763b05f8874cc9cfb3fcacd6d354247a976f9529d19f9acf39"}, +] + +[package.dependencies] +pytest = ">=5.0" + +[package.extras] +dev = ["pre-commit", "pytest-asyncio", "tox"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "3.2.1" +description = "JSON Log Formatter for the Python Logging Package" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, + {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, +] + +[package.dependencies] +typing_extensions = {version = "*", markers = "python_version < \"3.10\""} + +[package.extras] +dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.14" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "pyzmq" +version = "26.2.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "referencing" +version = "0.36.0" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "referencing-0.36.0-py3-none-any.whl", hash = "sha256:01fc2916bab821aa3284d645bbbb41ba39609e7ff47072416a39ec2fb04d10d9"}, + {file = "referencing-0.36.0.tar.gz", hash = "sha256:246db964bb6101905167895cd66499cfb2aabc5f83277d008c52afe918ef29ba"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" +typing-extensions = {version = "*", markers = "python_version < \"3.13\""} + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rpds-py" +version = "0.22.3" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.9" +files = [ + {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, + {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, + {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, + {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, + {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, + {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, + {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, + {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, + {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, + {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, + {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, + {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, +] + +[[package]] +name = "ruff" +version = "0.0.292" +description = "An extremely fast Python linter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.0.292-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:02f29db018c9d474270c704e6c6b13b18ed0ecac82761e4fcf0faa3728430c96"}, + {file = "ruff-0.0.292-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:69654e564342f507edfa09ee6897883ca76e331d4bbc3676d8a8403838e9fade"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c3c91859a9b845c33778f11902e7b26440d64b9d5110edd4e4fa1726c41e0a4"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4476f1243af2d8c29da5f235c13dca52177117935e1f9393f9d90f9833f69e4"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be8eb50eaf8648070b8e58ece8e69c9322d34afe367eec4210fdee9a555e4ca7"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9889bac18a0c07018aac75ef6c1e6511d8411724d67cb879103b01758e110a81"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bdfabd4334684a4418b99b3118793f2c13bb67bf1540a769d7816410402a205"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7c77c53bfcd75dbcd4d1f42d6cabf2485d2e1ee0678da850f08e1ab13081a8"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e087b24d0d849c5c81516ec740bf4fd48bf363cfb104545464e0fca749b6af9"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f160b5ec26be32362d0774964e218f3fcf0a7da299f7e220ef45ae9e3e67101a"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ac153eee6dd4444501c4bb92bff866491d4bfb01ce26dd2fff7ca472c8df9ad0"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_i686.whl", hash = "sha256:87616771e72820800b8faea82edd858324b29bb99a920d6aa3d3949dd3f88fb0"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b76deb3bdbea2ef97db286cf953488745dd6424c122d275f05836c53f62d4016"}, + {file = "ruff-0.0.292-py3-none-win32.whl", hash = "sha256:e854b05408f7a8033a027e4b1c7f9889563dd2aca545d13d06711e5c39c3d003"}, + {file = "ruff-0.0.292-py3-none-win_amd64.whl", hash = "sha256:f27282bedfd04d4c3492e5c3398360c9d86a295be00eccc63914438b4ac8a83c"}, + {file = "ruff-0.0.292-py3-none-win_arm64.whl", hash = "sha256:7f67a69c8f12fbc8daf6ae6d36705037bde315abf8b82b6e1f4c9e74eb750f68"}, + {file = "ruff-0.0.292.tar.gz", hash = "sha256:1093449e37dd1e9b813798f6ad70932b57cf614e5c2b5c51005bf67d55db33ac"}, +] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "75.8.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.9" +files = [ + {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"}, + {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""} +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "tokenize-rt" +version = "6.1.0" +description = "A wrapper around the stdlib `tokenize` which roundtrips." +optional = false +python-versions = ">=3.9" +files = [ + {file = "tokenize_rt-6.1.0-py2.py3-none-any.whl", hash = "sha256:d706141cdec4aa5f358945abe36b911b8cbdc844545da99e811250c0cee9b6fc"}, + {file = "tokenize_rt-6.1.0.tar.gz", hash = "sha256:e8ee836616c0877ab7c7b54776d2fefcc3bde714449a206762425ae114b53c86"}, +] + +[[package]] +name = "tomli" +version = "2.2.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] + +[[package]] +name = "tomlkit" +version = "0.13.2" +description = "Style preserving TOML library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, +] + +[[package]] +name = "tornado" +version = "6.4.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +files = [ + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "tree-sitter" +version = "0.23.2" +description = "Python bindings to the Tree-sitter parsing library" +optional = false +python-versions = ">=3.9" +files = [ + {file = "tree-sitter-0.23.2.tar.gz", hash = "sha256:66bae8dd47f1fed7bdef816115146d3a41c39b5c482d7bad36d9ba1def088450"}, + {file = "tree_sitter-0.23.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3a937f5d8727bc1c74c4bf2a9d1c25ace049e8628273016ad0d45914ae904e10"}, + {file = "tree_sitter-0.23.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2c7eae7fe2af215645a38660d2d57d257a4c461fe3ec827cca99a79478284e80"}, + {file = "tree_sitter-0.23.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a71d607595270b6870eaf778a1032d146b2aa79bfcfa60f57a82a7b7584a4c7"}, + {file = "tree_sitter-0.23.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fe9b9ea7a0aa23b52fd97354da95d1b2580065bc12a4ac868f9164a127211d6"}, + {file = "tree_sitter-0.23.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d74d00a8021719eae14d10d1b1e28649e15d8b958c01c2b2c3dad7a2ebc4dbae"}, + {file = "tree_sitter-0.23.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6de18d8d8a7f67ab71f472d1fcb01cc506e080cbb5e13d52929e4b6fdce6bbee"}, + {file = "tree_sitter-0.23.2-cp310-cp310-win_amd64.whl", hash = "sha256:12b60dca70d2282af942b650a6d781be487485454668c7c956338a367b98cdee"}, + {file = "tree_sitter-0.23.2-cp310-cp310-win_arm64.whl", hash = "sha256:3346a4dd0447a42aabb863443b0fd8c92b909baf40ed2344fae4b94b625d5955"}, + {file = "tree_sitter-0.23.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:91fda41d4f8824335cc43c64e2c37d8089c8c563bd3900a512d2852d075af719"}, + {file = "tree_sitter-0.23.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:92b2b489d5ce54b41f94c6f23fbaf592bd6e84dc2877048fd1cb060480fa53f7"}, + {file = "tree_sitter-0.23.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64859bd4aa1567d0d6016a811b2b49c59d4a4427d096e3d8c84b2521455f62b7"}, + {file = "tree_sitter-0.23.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:614590611636044e071d3a0b748046d52676dbda3bc9fa431216231e11dd98f7"}, + {file = "tree_sitter-0.23.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:08466953c78ae57be61057188fb88c89791b0a562856010228e0ccf60e2ac453"}, + {file = "tree_sitter-0.23.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8a33f03a562de91f7fd05eefcedd8994a06cd44c62f7aabace811ad82bc11cbd"}, + {file = "tree_sitter-0.23.2-cp311-cp311-win_amd64.whl", hash = "sha256:03b70296b569ef64f7b92b42ca5da9bf86d81bee2afd480bea35092687f51dae"}, + {file = "tree_sitter-0.23.2-cp311-cp311-win_arm64.whl", hash = "sha256:7cb4bb953ea7c0b50eeafc4454783e030357179d2a93c3dd5ebed2da5588ddd0"}, + {file = "tree_sitter-0.23.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a014498b6a9e6003fae8c6eb72f5927d62da9dcb72b28b3ce8cd15c6ff6a6572"}, + {file = "tree_sitter-0.23.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f8699b131d4bcbe3805c37e4ef3d159ee9a82a0e700587625623999ba0ea53"}, + {file = "tree_sitter-0.23.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4471577df285059c71686ecb208bc50fb472099b38dcc8e849b0e86652891e87"}, + {file = "tree_sitter-0.23.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f342c925290dd4e20ecd5787ef7ae8749981597ab364783a1eb73173efe65226"}, + {file = "tree_sitter-0.23.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a4e9e53d07dd076bede72e4f7d3a0173d7b9ad6576572dd86da008a740a9bb22"}, + {file = "tree_sitter-0.23.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8caebe65bc358759dac2500d8f8feed3aed939c4ade9a684a1783fe07bc7d5db"}, + {file = "tree_sitter-0.23.2-cp312-cp312-win_amd64.whl", hash = "sha256:fc5a72eb50d43485000dbbb309acb350467b7467e66dc747c6bb82ce63041582"}, + {file = "tree_sitter-0.23.2-cp312-cp312-win_arm64.whl", hash = "sha256:a0320eb6c7993359c5f7b371d22719ccd273f440d41cf1bd65dac5e9587f2046"}, + {file = "tree_sitter-0.23.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:eff630dddee7ba05accb439b17e559e15ce13f057297007c246237ceb6306332"}, + {file = "tree_sitter-0.23.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4780ba8f3894f2dea869fad2995c2aceab3fd5ab9e6a27c45475d2acd7f7e84e"}, + {file = "tree_sitter-0.23.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b609460b8e3e256361fb12e94fae5b728cb835b16f0f9d590b5aadbf9d109b"}, + {file = "tree_sitter-0.23.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d070d8eaeaeb36cf535f55e5578fddbfc3bf53c1980f58bf1a99d57466b3b5"}, + {file = "tree_sitter-0.23.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:878580b2ad5054c410ba3418edca4d34c81cc26706114d8f5b5541688bc2d785"}, + {file = "tree_sitter-0.23.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:29224bdc2a3b9af535b7725e249d3ee291b2e90708e82832e73acc175e40dc48"}, + {file = "tree_sitter-0.23.2-cp313-cp313-win_amd64.whl", hash = "sha256:c58d89348162fbc3aea1fe6511a66ee189fc0e4e4bbe937026f29e4ecef17763"}, + {file = "tree_sitter-0.23.2-cp313-cp313-win_arm64.whl", hash = "sha256:0ff2037be5edab7801de3f6a721b9cf010853f612e2008ee454e0e0badb225a6"}, + {file = "tree_sitter-0.23.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a5db8e585205faef8bf219da77d8993e2ef04d08eda2e3c8ad7e4df8297ee344"}, + {file = "tree_sitter-0.23.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9dbd110a30cf28be5da734ae4cd0e9031768228dbf6a79f2973962aa51de4ec7"}, + {file = "tree_sitter-0.23.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569514b9a996a0fd458b3a891c46ca125298be0c03cf82f2b6f0c13d5d8f25dc"}, + {file = "tree_sitter-0.23.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a357ed98a74e47787b812df99a74a2c35c0fe11e55c2095cc01d1cad144ef552"}, + {file = "tree_sitter-0.23.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c2dfb8e8f760f4cc67888d03ef9e2dbd3353245f67f5efba375c2a14d944ac0e"}, + {file = "tree_sitter-0.23.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3ead958df87a21d706903987e665e9e0e5df7b2c5021ff69ea349826840adc6a"}, + {file = "tree_sitter-0.23.2-cp39-cp39-win_amd64.whl", hash = "sha256:611cae16be332213c0e6ece72c0bfca202e30ff320a8b309b1526c6cb79ee4ba"}, + {file = "tree_sitter-0.23.2-cp39-cp39-win_arm64.whl", hash = "sha256:b848e0fdd522fbb8888cdb4f4d93f8fad97ae10d70c122fb922e51363c7febcd"}, +] + +[package.extras] +docs = ["sphinx (>=7.3,<8.0)", "sphinx-book-theme"] +tests = ["tree-sitter-html (>=0.23.0)", "tree-sitter-javascript (>=0.23.0)", "tree-sitter-json (>=0.23.0)", "tree-sitter-python (>=0.23.0)", "tree-sitter-rust (>=0.23.0)"] + +[[package]] +name = "tree-sitter-languages" +version = "1.10.2" +description = "Binary Python wheels for all tree sitter languages." +optional = false +python-versions = "*" +files = [ + {file = "tree_sitter_languages-1.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5580348f0b20233b1d5431fa178ccd3d07423ca4a3275df02a44608fd72344b9"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:103c7466644486b1e9e03850df46fc6aa12f13ca636c74f173270276220ac80b"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d13db84511c6f1a7dc40383b66deafa74dabd8b877e3d65ab253f3719eccafd6"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57adfa32be7e465b54aa72f915f6c78a2b66b227df4f656b5d4fbd1ca7a92b3f"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c6385e033e460ceb8f33f3f940335f422ef2b763700a04f0089391a68b56153"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dfa3f38cc5381c5aba01dd7494f59b8a9050e82ff6e06e1233e3a0cbae297e3c"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9f195155acf47f8bc5de7cee46ecd07b2f5697f007ba89435b51ef4c0b953ea5"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2de330e2ac6d7426ca025a3ec0f10d5640c3682c1d0c7702e812dcfb44b58120"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-win32.whl", hash = "sha256:c9731cf745f135d9770eeba9bb4e2ff4dabc107b5ae9b8211e919f6b9100ea6d"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:6dd75851c41d0c3c4987a9b7692d90fa8848706c23115669d8224ffd6571e357"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7eb7d7542b2091c875fe52719209631fca36f8c10fa66970d2c576ae6a1b8289"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6b41bcb00974b1c8a1800c7f1bb476a1d15a0463e760ee24872f2d53b08ee424"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f370cd7845c6c81df05680d5bd96db8a99d32b56f4728c5d05978911130a853"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1dc195c88ef4c72607e112a809a69190e096a2e5ebc6201548b3e05fdd169ad"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae34ac314a7170be24998a0f994c1ac80761d8d4bd126af27ee53a023d3b849"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:01b5742d5f5bd675489486b582bd482215880b26dde042c067f8265a6e925d9c"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ab1cbc46244d34fd16f21edaa20231b2a57f09f092a06ee3d469f3117e6eb954"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b1149e7467a4e92b8a70e6005fe762f880f493cf811fc003554b29f04f5e7c8"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-win32.whl", hash = "sha256:049276343962f4696390ee555acc2c1a65873270c66a6cbe5cb0bca83bcdf3c6"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:7f3fdd468a577f04db3b63454d939e26e360229b53c80361920aa1ebf2cd7491"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c0f4c8b2734c45859edc7fcaaeaab97a074114111b5ba51ab4ec7ed52104763c"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eecd3c1244ac3425b7a82ba9125b4ddb45d953bbe61de114c0334fd89b7fe782"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15db3c8510bc39a80147ee7421bf4782c15c09581c1dc2237ea89cefbd95b846"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92c6487a6feea683154d3e06e6db68c30e0ae749a7ce4ce90b9e4e46b78c85c7"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2f1cd1d1bdd65332f9c2b67d49dcf148cf1ded752851d159ac3e5ee4f4d260"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:976c8039165b8e12f17a01ddee9f4e23ec6e352b165ad29b44d2bf04e2fbe77e"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:dafbbdf16bf668a580902e1620f4baa1913e79438abcce721a50647564c687b9"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1aeabd3d60d6d276b73cd8f3739d595b1299d123cc079a317f1a5b3c5461e2ca"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-win32.whl", hash = "sha256:fab8ee641914098e8933b87ea3d657bea4dd00723c1ee7038b847b12eeeef4f5"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:5e606430d736367e5787fa5a7a0c5a1ec9b85eded0b3596bbc0d83532a40810b"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:838d5b48a7ed7a17658721952c77fda4570d2a069f933502653b17e15a9c39c9"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:987b3c71b1d278c2889e018ee77b8ee05c384e2e3334dec798f8b611c4ab2d1e"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faa00abcb2c819027df58472da055d22fa7dfcb77c77413d8500c32ebe24d38b"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e102fbbf02322d9201a86a814e79a9734ac80679fdb9682144479044f401a73"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8f0b87cf1a7b03174ba18dfd81582be82bfed26803aebfe222bd20e444aba003"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c0f1b9af9cb67f0b942b020da9fdd000aad5e92f2383ae0ba7a330b318d31912"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5a4076c921f7a4d31e643843de7dfe040b65b63a238a5aa8d31d93aabe6572aa"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-win32.whl", hash = "sha256:fa6391a3a5d83d32db80815161237b67d70576f090ce5f38339206e917a6f8bd"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:55649d3f254585a064121513627cf9788c1cfdadbc5f097f33d5ba750685a4c0"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6f85d1edaa2d22d80d4ea5b6d12b95cf3644017b6c227d0d42854439e02e8893"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d78feed4a764ef3141cb54bf00fe94d514d8b6e26e09423e23b4c616fcb7938c"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da1aca27531f9dd5308637d76643372856f0f65d0d28677d1bcf4211e8ed1ad0"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1031ea440dafb72237437d754eff8940153a3b051e3d18932ac25e75ce060a15"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99d3249beaef2c9fe558ecc9a97853c260433a849dcc68266d9770d196c2e102"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:59a4450f262a55148fb7e68681522f0c2a2f6b7d89666312a2b32708d8f416e1"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ce74eab0e430370d5e15a96b6c6205f93405c177a8b2e71e1526643b2fb9bab1"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9b4dd2b6b3d24c85dffe33d6c343448869eaf4f41c19ddba662eb5d65d8808f4"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-win32.whl", hash = "sha256:92d734fb968fe3927a7596d9f0459f81a8fa7b07e16569476b28e27d0d753348"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:46a13f7d38f2eeb75f7cf127d1201346093748c270d686131f0cbc50e42870a1"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f8c6a936ae99fdd8857e91f86c11c2f5e507ff30631d141d98132bb7ab2c8638"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c283a61423f49cdfa7b5a5dfbb39221e3bd126fca33479cd80749d4d7a6b7349"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e60be6bdcff923386a54a5edcb6ff33fc38ab0118636a762024fa2bc98de55"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c00069f9575bd831eabcce2cdfab158dde1ed151e7e5614c2d985ff7d78a7de1"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:475ff53203d8a43ccb19bb322fa2fb200d764001cc037793f1fadd714bb343da"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26fe7c9c412e4141dea87ea4b3592fd12e385465b5bdab106b0d5125754d4f60"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8fed27319957458340f24fe14daad467cd45021da034eef583519f83113a8c5e"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3657a491a7f96cc75a3568ddd062d25f3be82b6a942c68801a7b226ff7130181"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-win32.whl", hash = "sha256:33f7d584d01a7a3c893072f34cfc64ec031f3cfe57eebc32da2f8ac046e101a7"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:1b944af3ee729fa70fc8ae82224a9ff597cdb63addea084e0ea2fa2b0ec39bb7"}, +] + +[package.dependencies] +tree-sitter = "*" + +[[package]] +name = "types-cffi" +version = "1.16.0.20241221" +description = "Typing stubs for cffi" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_cffi-1.16.0.20241221-py3-none-any.whl", hash = "sha256:e5b76b4211d7a9185f6ab8d06a106d56c7eb80af7cdb8bfcb4186ade10fb112f"}, + {file = "types_cffi-1.16.0.20241221.tar.gz", hash = "sha256:1c96649618f4b6145f58231acb976e0b448be6b847f7ab733dabe62dfbff6591"}, +] + +[package.dependencies] +types-setuptools = "*" + +[[package]] +name = "types-deprecated" +version = "1.2.15.20241117" +description = "Typing stubs for Deprecated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-Deprecated-1.2.15.20241117.tar.gz", hash = "sha256:924002c8b7fddec51ba4949788a702411a2e3636cd9b2a33abd8ee119701d77e"}, + {file = "types_Deprecated-1.2.15.20241117-py3-none-any.whl", hash = "sha256:a0cc5e39f769fc54089fd8e005416b55d74aa03f6964d2ed1a0b0b2e28751884"}, +] + +[[package]] +name = "types-docutils" +version = "0.21.0.20241128" +description = "Typing stubs for docutils" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_docutils-0.21.0.20241128-py3-none-any.whl", hash = "sha256:e0409204009639e9b0bf4521eeabe58b5e574ce9c0db08421c2ac26c32be0039"}, + {file = "types_docutils-0.21.0.20241128.tar.gz", hash = "sha256:4dd059805b83ac6ec5a223699195c4e9eeb0446a4f7f2aeff1759a4a7cc17473"}, +] + +[[package]] +name = "types-protobuf" +version = "4.25.0.20240417" +description = "Typing stubs for protobuf" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-protobuf-4.25.0.20240417.tar.gz", hash = "sha256:c34eff17b9b3a0adb6830622f0f302484e4c089f533a46e3f147568313544352"}, + {file = "types_protobuf-4.25.0.20240417-py3-none-any.whl", hash = "sha256:e9b613227c2127e3d4881d75d93c93b4d6fd97b5f6a099a0b654a05351c8685d"}, +] + +[[package]] +name = "types-pyopenssl" +version = "24.1.0.20240722" +description = "Typing stubs for pyOpenSSL" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-pyOpenSSL-24.1.0.20240722.tar.gz", hash = "sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39"}, + {file = "types_pyOpenSSL-24.1.0.20240722-py3-none-any.whl", hash = "sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54"}, +] + +[package.dependencies] +cryptography = ">=35.0.0" +types-cffi = "*" + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20241206" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, +] + +[[package]] +name = "types-pyyaml" +version = "6.0.12.20241230" +description = "Typing stubs for PyYAML" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types_PyYAML-6.0.12.20241230-py3-none-any.whl", hash = "sha256:fa4d32565219b68e6dee5f67534c722e53c00d1cfc09c435ef04d7353e1e96e6"}, + {file = "types_pyyaml-6.0.12.20241230.tar.gz", hash = "sha256:7f07622dbd34bb9c8b264fe860a17e0efcad00d50b5f27e93984909d9363498c"}, +] + +[[package]] +name = "types-redis" +version = "4.5.5.0" +description = "Typing stubs for redis" +optional = false +python-versions = "*" +files = [ + {file = "types-redis-4.5.5.0.tar.gz", hash = "sha256:26547d91f011a4024375d9216cd4d917b4678c984201d46f72c604526c138523"}, + {file = "types_redis-4.5.5.0-py3-none-any.whl", hash = "sha256:c7132e0cedeb52a83d20138c0440721bfae89cd2027c1ef57a294b56dfde4ee8"}, +] + +[package.dependencies] +cryptography = ">=35.0.0" +types-pyOpenSSL = "*" + +[[package]] +name = "types-requests" +version = "2.28.11.8" +description = "Typing stubs for requests" +optional = false +python-versions = "*" +files = [ + {file = "types-requests-2.28.11.8.tar.gz", hash = "sha256:e67424525f84adfbeab7268a159d3c633862dafae15c5b19547ce1b55954f0a3"}, + {file = "types_requests-2.28.11.8-py3-none-any.whl", hash = "sha256:61960554baca0008ae7e2db2bd3b322ca9a144d3e80ce270f5fb640817e40994"}, +] + +[package.dependencies] +types-urllib3 = "<1.27" + +[[package]] +name = "types-setuptools" +version = "67.1.0.0" +description = "Typing stubs for setuptools" +optional = false +python-versions = "*" +files = [ + {file = "types-setuptools-67.1.0.0.tar.gz", hash = "sha256:162a39d22e3a5eb802197c84f16b19e798101bbd33d9437837fbb45627da5627"}, + {file = "types_setuptools-67.1.0.0-py3-none-any.whl", hash = "sha256:5bd7a10d93e468bfcb10d24cb8ea5e12ac4f4ac91267293959001f1448cf0619"}, +] + +[package.dependencies] +types-docutils = "*" + +[[package]] +name = "types-urllib3" +version = "1.26.25.14" +description = "Typing stubs for urllib3" +optional = false +python-versions = "*" +files = [ + {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, + {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "virtualenv" +version = "20.29.0" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.29.0-py3-none-any.whl", hash = "sha256:c12311863497992dc4b8644f8ea82d3b35bb7ef8ee82e6630d76d0197c39baf9"}, + {file = "virtualenv-20.29.0.tar.gz", hash = "sha256:6345e1ff19d4b1296954cee076baaf58ff2a12a84a338c62b02eda39f20aa982"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.9" +files = [ + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.13" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +files = [ + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[[package]] +name = "zipp" +version = "3.21.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.9,<4.0" +content-hash = "046322eb71b38dfdddfae971ea0be977f49b6690b28670af08b3d9a5e1ea7b16" diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/pyproject.toml b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/pyproject.toml index 122dc2c52cf1f..b0a344c595024 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/pyproject.toml +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/pyproject.toml @@ -34,16 +34,17 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-indices-managed-llama-cloud" readme = "README.md" -version = "0.6.3" +version = "0.6.4" [tool.poetry.dependencies] python = ">=3.9,<4.0" -llama-cloud = ">=0.1.5" +llama-cloud = "^0.1.8" llama-index-core = "^0.12.0" [tool.poetry.group.dev.dependencies] ipython = "8.10.0" jupyter = "^1.0.0" +llama-index-embeddings-openai = "^0.3.1" mypy = "0.991" pre-commit = "3.2.0" pylint = "2.15.10" diff --git a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/tests/test_indices_managed_llama_cloud.py b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/tests/test_indices_managed_llama_cloud.py index 7b3c5d958b4d7..09afc9de8f61f 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/tests/test_indices_managed_llama_cloud.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-llama-cloud/tests/test_indices_managed_llama_cloud.py @@ -4,8 +4,12 @@ PipelineCreate, PipelineFileCreate, ProjectCreate, + CompositeRetrievalMode, +) +from llama_index.indices.managed.llama_cloud import ( + LlamaCloudIndex, + LlamaCloudCompositeRetriever, ) -from llama_index.indices.managed.llama_cloud import LlamaCloudIndex from llama_index.embeddings.openai import OpenAIEmbedding from llama_index.core.schema import Document import os @@ -17,7 +21,7 @@ base_url = os.environ.get("LLAMA_CLOUD_BASE_URL", None) api_key = os.environ.get("LLAMA_CLOUD_API_KEY", None) -openai_api_key = os.environ.get("OPENAI_API_KEY", None) +openai_api_key = os.environ.get("LLAMA_CLOUD_OPENAI_API_KEY", None) organization_id = os.environ.get("LLAMA_CLOUD_ORGANIZATION_ID", None) project_name = os.environ.get("LLAMA_CLOUD_PROJECT_NAME", "framework_integration_test") @@ -273,3 +277,66 @@ def test_index_from_documents(): docs = index.ref_doc_info assert len(docs) == 2 assert "3" not in docs + + +@pytest.mark.skipif( + not base_url or not api_key, reason="No platform base url or api key set" +) +@pytest.mark.skipif(not openai_api_key, reason="No openai api key set") +@pytest.mark.integration() +def test_composite_retriever(): + """Test the LlamaCloudCompositeRetriever with multiple indices.""" + # Create first index with documents + documents1 = [ + Document( + text="Hello world from index 1.", doc_id="1", metadata={"source": "index1"} + ), + ] + index1 = LlamaCloudIndex.from_documents( + documents=documents1, + name=f"test pipeline 1 {uuid4()}", + project_name=project_name, + api_key=api_key, + base_url=base_url, + organization_id=organization_id, + verbose=True, + ) + + # Create second index with documents + documents2 = [ + Document( + text="Hello world from index 2.", doc_id="2", metadata={"source": "index2"} + ), + ] + index2 = LlamaCloudIndex.from_documents( + documents=documents2, + name=f"test pipeline 2 {uuid4()}", + project_name=project_name, + api_key=api_key, + base_url=base_url, + organization_id=organization_id, + verbose=True, + ) + + # Create a composite retriever + retriever = LlamaCloudCompositeRetriever( + name="composite_retriever_test", + project_name=project_name, + api_key=api_key, + base_url=base_url, + create_if_not_exists=True, + mode=CompositeRetrievalMode.FULL, + rerank_top_n=5, + ) + + # Attach indices to the composite retriever + retriever.add_index(index1, description="Information from index 1.") + retriever.add_index(index2, description="Information from index 2.") + + # Retrieve nodes using the composite retriever + nodes = retriever.retrieve("Hello world.") + + # Assertions to verify the retrieval + assert len(nodes) >= 2 + assert any(n.node.metadata["pipeline_id"] == index1.id for n in nodes) + assert any(n.node.metadata["pipeline_id"] == index1.id for n in nodes) diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/Changelog.md b/llama-index-integrations/indices/llama-index-indices-managed-vectara/Changelog.md new file mode 100644 index 0000000000000..2d038347be523 --- /dev/null +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/Changelog.md @@ -0,0 +1,11 @@ +# CHANGELOG — llama-index-indices-managed-vectara + +## [0.4.0] + +Implementation switched from using Vectara API v1 to API v2. +There are a number of breaking changes involved with this transition: + +1. The `vectara_customer_id` parameter was removed from `VectaraIndex`. You no longer need to specify this information when you instantiate an index nor provide the environment variable `VECTARA_CUSTOMER_ID`. +2. The `vectara_corpus_id` parameter was replaced with `vectara_corpus_key`. When creating a `VectaraIndex` object, please either specify `vectara_corpus_key` explicitly or add `VECTARA_CORPUS_KEY` to your environment. This should use the corpus key of your Vectara corpus rather than the corpus ID. +3. The `add_documents()` function was removed and replaced with two new functions for indexing documents. If you want to use the Structured Document type, use the new `add_document()` function. If you would like to use the Core Document type, use the new `add_nodes()` function. +4. For specifying reranker types, `"udf"` has been replaced with `"userfn"`. diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/README.md b/llama-index-integrations/indices/llama-index-indices-managed-vectara/README.md index 2db7ebaec9a59..f81b4b2b3cd22 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/README.md +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/README.md @@ -17,30 +17,39 @@ Finally, set up your Vectara corpus. If you don't have a Vectara account, you ca ## Usage +Please note that this usage example is for versions >= 0.4.0 and will not be the same as for earlier versions of Vectara ManagedIndex. + First let's initialize the index with some sample documents. +Make sure to always specify a unique `id_` for every document you add to your index. +If you don't specify this parameter, a random id will be generated and the document will be separately added to your corpus every time you run your code. ```python import os os.environ["VECTARA_API_KEY"] = "" -os.environ["VECTARA_CORPUS_ID"] = "" -os.environ["VECTARA_CUSTOMER_ID"] = "" +os.environ["VECTARA_CORPUS_KEY"] = "" from llama_index.indices.managed.vectara import VectaraIndex -from llama_index.core.schema import Document +from llama_index.core.schema import Document, MediaResource docs = [ Document( - text=""" - This is test text for Vectara integration with LlamaIndex. - Users should love their experience with this integration - """, + id_="doc1", + text_resource=MediaResource( + text=""" + This is test text for Vectara integration with LlamaIndex. + Users should love their experience with this integration + """, + ), ), Document( - text=""" - The Vectara index integration with LlamaIndex implements Vectara's RAG pipeline. - It can be used both as a retriever and query engine. - """, + id_="doc2", + text_resource=MediaResource( + text=""" + The Vectara index integration with LlamaIndex implements Vectara's RAG pipeline. + It can be used both as a retriever and query engine. + """, + ), ), ] diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/base.py b/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/base.py index 46a95590ef673..e040c4f6516a4 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/base.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/base.py @@ -9,8 +9,8 @@ import logging import os from concurrent.futures import ThreadPoolExecutor -from hashlib import blake2b -from typing import Any, Dict, List, Optional, Sequence, Type +from typing import Any, List, Optional, Sequence, Type, Dict +from functools import lru_cache import requests from llama_index.core.base.base_query_engine import BaseQueryEngine @@ -21,10 +21,8 @@ from llama_index.core.indices.managed.base import BaseManagedIndex, IndexType from llama_index.core.llms.utils import LLMType, resolve_llm from llama_index.core.schema import ( - BaseNode, Document, - MetadataMode, - TextNode, + Node, TransformComponent, ) from llama_index.core.settings import Settings @@ -63,11 +61,8 @@ class VectaraIndex(BaseManagedIndex): def __init__( self, show_progress: bool = False, - nodes: Optional[Sequence[BaseNode]] = None, - vectara_customer_id: Optional[str] = None, - vectara_corpus_id: Optional[str] = None, + vectara_corpus_key: Optional[str] = None, vectara_api_key: Optional[str] = None, - use_core_api: bool = False, parallelize_ingest: bool = False, x_source_str: str = "llama_index", **kwargs: Any, @@ -75,7 +70,7 @@ def __init__( """Initialize the Vectara API.""" self.parallelize_ingest = parallelize_ingest index_struct = VectaraIndexStruct( - index_id=str(vectara_corpus_id), + index_id=str(vectara_corpus_key), summary="Vectara Index", ) @@ -84,25 +79,19 @@ def __init__( index_struct=index_struct, **kwargs, ) - self._vectara_customer_id = vectara_customer_id or os.environ.get( - "VECTARA_CUSTOMER_ID" - ) - self._vectara_corpus_id = vectara_corpus_id or str( - os.environ.get("VECTARA_CORPUS_ID") + + self._vectara_corpus_key = vectara_corpus_key or str( + os.environ.get("VECTARA_CORPUS_KEY") ) + self._vectara_api_key = vectara_api_key or os.environ.get("VECTARA_API_KEY") - if ( - self._vectara_customer_id is None - or self._vectara_corpus_id is None - or self._vectara_api_key is None - ): + if self._vectara_corpus_key is None or self._vectara_api_key is None: _logger.warning( - "Can't find Vectara credentials, customer_id or corpus_id in " - "environment." + "Can't find Vectara credentials or corpus_key in environment." ) raise ValueError("Missing Vectara credentials") else: - _logger.debug(f"Using corpus id {self._vectara_corpus_id}") + _logger.debug(f"Using corpus key {self._vectara_corpus_key}") # identifies usage source for internal measurement self._x_source_str = x_source_str @@ -113,183 +102,216 @@ def __init__( adapter = requests.adapters.HTTPAdapter(max_retries=3) self._session.mount("https://", adapter) self.vectara_api_timeout = 90 - self.use_core_api = use_core_api self.doc_ids: List[str] = [] - # if nodes is specified, consider each node as a single document - # and use _build_index_from_nodes() to add them to the index - if nodes is not None: - self._build_index_from_nodes(nodes, use_core_api) - - def _build_index_from_nodes( - self, nodes: Sequence[BaseNode], use_core_api: bool = False - ) -> IndexDict: - docs = [ - Document( - text=node.get_content(metadata_mode=MetadataMode.NONE), - metadata=node.metadata, # type: ignore - id_=node.id_, # type: ignore - ) - for node in nodes - ] - self.add_documents(docs, use_core_api) - return self.index_struct - - def _get_corpus_id(self, corpus_id: str) -> str: + @lru_cache(maxsize=None) + def _get_corpus_key(self, corpus_key: str) -> str: """ - Get the corpus id to use for the index. - If corpus_id is provided, check if it is one of the valid corpus ids. - If not, use the first corpus id in the list. + Get the corpus key to use for the index. + If corpus_key is provided, check if it is one of the valid corpus keys. + If not, use the first corpus key in the list. """ - if corpus_id is not None: - if corpus_id in self._vectara_corpus_id.split(","): - return corpus_id - return self._vectara_corpus_id.split(",")[0] + if corpus_key is not None: + if corpus_key in self._vectara_corpus_key.split(","): + return corpus_key + return self._vectara_corpus_key.split(",")[0] def _get_post_headers(self) -> dict: """Returns headers that should be attached to each post request.""" return { "x-api-key": self._vectara_api_key, - "customer-id": self._vectara_customer_id, "Content-Type": "application/json", "X-Source": self._x_source_str, } - def _delete_doc(self, doc_id: str, corpus_id: Optional[str] = None) -> bool: + def _delete_doc(self, doc_id: str, corpus_key: Optional[str] = None) -> bool: """ Delete a document from the Vectara corpus. Args: - url (str): URL of the page to delete. doc_id (str): ID of the document to delete. - corpus_id (str): corpus ID to delete the document from. + corpus_key (str): corpus key to delete the document from. Returns: bool: True if deletion was successful, False otherwise. """ - valid_corpus_id = self._get_corpus_id(corpus_id) - body = { - "customerId": self._vectara_customer_id, - "corpusId": valid_corpus_id, - "documentId": doc_id, - } - response = self._session.post( - "https://api.vectara.io/v1/delete-doc", + valid_corpus_key = self._get_corpus_key(corpus_key) + body = {} + response = self._session.delete( + f"https://api.vectara.io/v2/corpora/{valid_corpus_key}/documents/{doc_id}", data=json.dumps(body), verify=True, headers=self._get_post_headers(), timeout=self.vectara_api_timeout, ) - if response.status_code != 200: + if response.status_code != 204: _logger.error( f"Delete request failed for doc_id = {doc_id} with status code " - f"{response.status_code}, reason {response.reason}, text " - f"{response.text}" + f"{response.status_code}, text {response.json()['messages'][0]}" ) return False return True - def _index_doc(self, doc: dict, corpus_id) -> str: - request: Dict[str, Any] = {} - request["customerId"] = self._vectara_customer_id - request["corpusId"] = corpus_id - request["document"] = doc - - if "parts" in doc: - api_url = "https://api.vectara.io/v1/core/index" - else: - api_url = "https://api.vectara.io/v1/index" - + def _index_doc(self, doc: dict, corpus_key) -> str: response = self._session.post( headers=self._get_post_headers(), - url=api_url, - data=json.dumps(request), + url=f"https://api.vectara.io/v2/corpora/{corpus_key}/documents", + data=json.dumps(doc), timeout=self.vectara_api_timeout, verify=True, ) status_code = response.status_code - result = response.json() - - status_str = result["status"]["code"] if "status" in result else None - if status_code == 409 and status_str and (status_str == "ALREADY_EXISTS"): - return "E_ALREADY_EXISTS" - elif status_code == 200 and status_str and (status_str == "INVALID_ARGUMENT"): - return "E_INVALID_ARGUMENT" - elif status_str and (status_str == "FORBIDDEN"): - return "E_NO_PERMISSIONS" - else: + if status_code == 201: return "E_SUCCEEDED" + result = response.json() + return result["messages"][0] + def _insert( self, - nodes: Sequence[BaseNode], - corpus_id: Optional[str] = None, - use_core_api: bool = False, + document: Optional[Document] = None, + nodes: Optional[Sequence[Node]] = None, + corpus_key: Optional[str] = None, **insert_kwargs: Any, ) -> None: - """Insert a set of documents (each a node).""" + """ + Insert a document into a corpus using Vectara's indexing API. - def gen_hash(s: str) -> str: - hash_object = blake2b(digest_size=32) - hash_object.update(s.encode("utf-8")) - return hash_object.hexdigest() + Args: + document (Document): a document to index using Vectara's Structured Document type. + nodes (Sequence[Node]): a list of nodes representing document parts to index a document using Vectara's Core Document type. + corpus_key (str): If multiple corpora are provided for this index, the corpus_key of the corpus you want to add the document to. + """ + if document: + # Use Structured Document type + metadata = document.metadata.copy() + metadata["framework"] = "llama_index" + doc = { + "id": document.id_, + "type": "structured", + "metadata": metadata, + "sections": [{"text": document.text_resource.text}], + } + + if "title" in insert_kwargs and insert_kwargs["title"]: + doc["title"] = insert_kwargs["title"] + + if "description" in insert_kwargs and insert_kwargs["description"]: + doc["description"] = insert_kwargs["description"] - docs = [] - for node in nodes: - metadata = node.metadata.copy() + if ( + "max_chars_per_chunk" in insert_kwargs + and insert_kwargs["max_chars_per_chunk"] + ): + doc["chunking_strategy"] = { + "type": "max_chars_chunking_strategy", + "max_chars_per_chunk": insert_kwargs["max_chars_per_chunk"], + } + + elif nodes: + # Use Core Document type + metadata = insert_kwargs["doc_metadata"] metadata["framework"] = "llama_index" - section_key = "parts" if use_core_api else "section" - text = node.get_content(metadata_mode=MetadataMode.NONE) - doc_id = gen_hash(text) doc = { - "documentId": doc_id, - "metadataJson": json.dumps(node.metadata), - section_key: [{"text": text}], + "id": insert_kwargs["doc_id"], + "type": "core", + "metadata": metadata, + "document_parts": [ + {"text": node.text_resource.text, "metadata": node.metadata} + for node in nodes + ], } - docs.append(doc) - valid_corpus_id = self._get_corpus_id(corpus_id) + else: + _logger.error( + "Error indexing document. Must provide either a document or a list of nodes." + ) + return + + valid_corpus_key = self._get_corpus_key(corpus_key) if self.parallelize_ingest: with ThreadPoolExecutor() as executor: - futures = [ - executor.submit(self._index_doc, doc, valid_corpus_id) - for doc in docs - ] - for future in futures: - ecode = future.result() - if ecode != "E_SUCCEEDED": - _logger.error( - f"Error indexing document in Vectara with error code {ecode}" - ) - self.doc_ids.extend([doc["documentId"] for doc in docs]) - else: - for doc in docs: - ecode = self._index_doc(doc, valid_corpus_id) + future = executor.submit(self._index_doc, doc, valid_corpus_key) + ecode = future.result() if ecode != "E_SUCCEEDED": _logger.error( f"Error indexing document in Vectara with error code {ecode}" ) - self.doc_ids.append(doc["documentId"]) + self.doc_ids.append(doc["id"]) + else: + ecode = self._index_doc(doc, valid_corpus_key) + if ecode != "E_SUCCEEDED": + _logger.error( + f"Error indexing document in Vectara with error code {ecode}" + ) + self.doc_ids.append(doc["id"]) - def add_documents( + def add_document( self, - docs: Sequence[Document], - corpus_id: Optional[str], - use_core_api: bool = False, - allow_update: bool = True, + doc: Document, + corpus_key: Optional[str] = None, + title: Optional[str] = None, + description: Optional[str] = None, + max_chars_per_chunk: Optional[int] = None, ) -> None: - nodes = [ - TextNode(text=doc.get_content(), metadata=doc.metadata) for doc in docs # type: ignore - ] - self._insert(nodes, corpus_id, use_core_api) + """ " + Indexes a document into a corpus using the Vectara Structured Document format. + + Full API Docs: https://docs.vectara.com/docs/api-reference/indexing-apis/indexing#structured-document-object-definition + + Args: + doc (Document): The document object to be indexed. + You should provide the value you want for the document id in the corpus as the id_ member of this object. + You should provide any document_metadata in the metadata member of this object. + corpus_key (str): If multiple corpora are provided for this index, the corpus_key of the corpus you want to add the document to. + title (str): The title of the document. + description (str): The description of the document. + max_chars_per_chunk (int): The maximum number of characters per chunk. + """ + self._insert( + document=doc, + corpus_key=corpus_key, + title=title, + description=description, + max_chars_per_chunk=max_chars_per_chunk, + ) + + def add_nodes( + self, + nodes: Sequence[Node], + document_id: str, + document_metadata: Optional[Dict] = {}, + corpus_key: Optional[str] = None, + ) -> None: + """ + Indexes a document into a corpus using the Vectara Core Document format. + + Full API Docs: https://docs.vectara.com/docs/api-reference/indexing-apis/indexing#core-document-object-definition + + Args: + nodes (Sequence[Node]): The user-specified document parts. + You should provide any part_metadata in the metadata member of each node. + document_id (str): The document id (must be unique for the corpus). + document_metadata (Dict): The document_metadata to be associated with this document. + corpus_key (str): If multiple corpora are provided for this index, the corpus_key of the corpus you want to add the document to. + """ + self._insert( + nodes=nodes, + corpus_key=corpus_key, + doc_id=document_id, + doc_metadata=document_metadata, + ) def insert_file( self, file_path: str, metadata: Optional[dict] = None, - corpus_id: Optional[str] = None, + chunking_strategy: Optional[dict] = None, + enable_table_extraction: Optional[bool] = False, + filename: Optional[str] = None, + corpus_key: Optional[str] = None, **insert_kwargs: Any, ) -> Optional[str]: """ @@ -298,14 +320,17 @@ def insert_file( This method provides a way to use that API in Llama_index. # ruff: noqa: E501 - Full API Docs: https://docs.vectara.com/docs/api-reference/indexing-apis/ - file-upload/file-upload-filetypes + Full API Docs: https://docs.vectara.com/docs/rest-api/upload-file Args: file_path: local file path Files could be text, HTML, PDF, markdown, doc/docx, ppt/pptx, etc. see API docs for full list - metadata: Optional list of metadata associated with the file + metadata: Optional dict of metadata associated with the file + chunking_strategy: Optional dict specifying max number of characters per chunk + enable_table_extraction: Optional bool specifying whether or not to extract tables from document + filename: Optional string specifying the filename + Returns: List of ids associated with each of the files indexed @@ -314,17 +339,34 @@ def insert_file( _logger.error(f"File {file_path} does not exist") return None - metadata = metadata or {} - metadata["framework"] = "llama_index" - files: dict = { - "file": (file_path, open(file_path, "rb")), - "doc_metadata": json.dumps(metadata), - } + if filename is None: + filename = file_path.split("/")[-1] + + files = {"file": (filename, open(file_path, "rb"))} + + if metadata: + metadata["framework"] = "llama_index" + files["metadata"] = (None, json.dumps(metadata), "application/json") + + if chunking_strategy: + files["chunking_strategy"] = ( + None, + json.dumps(chunking_strategy), + "application/json", + ) + + if enable_table_extraction: + files["table_extraction_config"] = ( + None, + json.dumps({"extract_tables": enable_table_extraction}), + "application/json", + ) + headers = self._get_post_headers() headers.pop("Content-Type") - valid_corpus_id = self._get_corpus_id(corpus_id) + valid_corpus_key = self._get_corpus_key(corpus_key) response = self._session.post( - f"https://api.vectara.io/upload?c={self._vectara_customer_id}&o={valid_corpus_id}&d=True", + f"https://api.vectara.io/v2/corpora/{valid_corpus_key}/upload_file", files=files, verify=True, headers=headers, @@ -332,35 +374,70 @@ def insert_file( ) res = response.json() - if response.status_code == 409: - _logger.info( - f"File {file_path} already exists on Vectara, skipping indexing" - ) - return None - elif response.status_code == 200: - quota = res["response"]["quotaConsumed"]["numChars"] - if quota == 0: - _logger.warning( - f"File Upload for {file_path} returned 0 quota consumed, please check your Vectara account quota" - ) - doc_id = res["document"]["documentId"] + if response.status_code == 201: + doc_id = res["id"] self.doc_ids.append(doc_id) return doc_id + elif response.status_code == 400: + _logger.info(f"File upload failed with error message {res['field_errors']}") + return None else: - _logger.info(f"Error indexing file {file_path}: {res}") + _logger.info(f"File upload failed with error message {res['messages'][0]}") return None def delete_ref_doc( - self, ref_doc_id: str, delete_from_docstore: bool = False, **delete_kwargs: Any + self, ref_doc_id: str, delete_from_docstore: bool = True, **delete_kwargs: Any ) -> None: - raise NotImplementedError( - "Vectara does not support deleting a reference document" - ) + """ + Delete a document from a Vectara corpus. + + Args: + ref_doc_id (str): ID of the document to delete + delete_from_docstore (bool): Whether to delete the document from the corpus. + If False, no change is made to the index or corpus. + corpus_key (str): corpus key to delete the document from. + This should be specified if there are multiple corpora in the index. + """ + if delete_from_docstore: + if "corpus_key" in delete_kwargs: + self._delete_doc( + doc_id=ref_doc_id, corpus_key=delete_kwargs["corpus_key"] + ) + else: + self._delete_doc(doc_id=ref_doc_id) def update_ref_doc(self, document: Document, **update_kwargs: Any) -> None: - raise NotImplementedError( - "Vectara does not support updating a reference document" - ) + """ + Update a document's metadata in a Vectara corpus. + + Args: + document (Document): The document to update. + Make sure to include id_ argument for proper identification within the corpus. + corpus_key (str): corpus key to modify the document from. + This should be specified if there are multiple corpora in the index. + metadata (dict): dictionary specifying any modifications or additions to the document's metadata. + """ + if "metadata" in update_kwargs: + if "corpus_key" in update_kwargs: + valid_corpus_key = self._get_corpus_key(update_kwargs["corpus_key"]) + else: + valid_corpus_key = self._get_corpus_key(corpus_key=None) + + doc_id = document.doc_id + body = {"metadata": update_kwargs["metadata"]} + response = self._session.patch( + f"https://api.vectara.io/v2/corpora/{valid_corpus_key}/documents/{doc_id}", + data=json.dumps(body), + verify=True, + headers=self._get_post_headers(), + timeout=self.vectara_api_timeout, + ) + + if response.status_code != 200: + _logger.error( + f"Update request failed for doc_id = {doc_id} with status code " + f"{response.status_code}, text {response.json()['messages'][0]}" + ) def as_retriever(self, **kwargs: Any) -> BaseRetriever: """Return a Retriever for this managed index.""" @@ -422,12 +499,12 @@ def from_documents( **kwargs: Any, ) -> IndexType: """Build a Vectara index from a sequence of documents.""" - nodes = [ - TextNode(text=document.get_content(), metadata=document.metadata) # type: ignore - for document in documents - ] - return cls( - nodes=nodes, + index = cls( show_progress=show_progress, **kwargs, ) + + for doc in documents: + index.add_document(doc) + + return index diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/query.py b/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/query.py index 44477eec48e46..9c3aa510f1c80 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/query.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/query.py @@ -1,4 +1,4 @@ -from typing import Any, List, Optional +from typing import Any, List, Dict, Optional from llama_index.core.base.base_query_engine import BaseQueryEngine from llama_index.core.base.base_retriever import BaseRetriever @@ -15,10 +15,10 @@ BaseChatEngine, StreamingAgentChatResponse, ) + from llama_index.core.base.response.schema import ( RESPONSE_TYPE, Response, - StreamingResponse, ) from llama_index.indices.managed.vectara.retriever import VectaraRetriever @@ -44,7 +44,7 @@ def __init__( summary_enabled: bool = False, summary_response_lang: str = "eng", summary_num_results: int = 5, - summary_prompt_name: str = "vectara-summary-ext-24-05-sml", + summary_prompt_name: str = "vectara-summary-ext-24-05-med-omni", verbose: bool = False, **kwargs: Any, ) -> None: @@ -112,21 +112,17 @@ def _query(self, query_bundle: QueryBundle) -> RESPONSE_TYPE: """Answer a query.""" kwargs = ( { - "summary_response_lang": self._summary_response_lang, - "summary_num_results": self._summary_num_results, - "summary_prompt_name": self._summary_prompt_name, + "response_language": self._summary_response_lang, + "max_used_search_results": self._summary_num_results, + "generation_preset_name": self._summary_prompt_name, } if self._summary_enabled else {} ) if self._streaming: - nodes = self.retrieve(query_bundle) - query_response = StreamingResponse( - response_gen=self._retriever._vectara_stream( - query_bundle, chat=False, verbose=self._verbose - ), - source_nodes=nodes, + query_response = self._retriever._vectara_stream( + query_bundle, chat=False, verbose=self._verbose ) else: nodes, response, _ = self._retriever._vectara_query( @@ -168,7 +164,7 @@ def __init__( streaming: bool = False, summary_response_lang: str = "eng", summary_num_results: int = 5, - summary_prompt_name: str = "vectara-summary-ext-24-05-sml", + summary_prompt_name: str = "vectara-summary-ext-24-05-med-omni", node_postprocessors: Optional[List[BaseNodePostprocessor]] = None, callback_manager: Optional[CallbackManager] = None, verbose: bool = False, @@ -214,9 +210,9 @@ def chat(self, message: str) -> AgentChatResponse: ) as query_event: kwargs = ( { - "summary_response_lang": self._summary_response_lang, - "summary_num_results": self._summary_num_results, - "summary_prompt_name": self._summary_prompt_name, + "response_language": self._summary_response_lang, + "max_used_search_results": self._summary_num_results, + "generation_preset_name": self._summary_prompt_name, } if self._summary_enabled else {} @@ -239,15 +235,18 @@ async def achat(self, message: str) -> AgentChatResponse: """Chat with the agent asynchronously.""" return await self.chat(message) + def set_chat_id(self, source_nodes: List, metadata: Dict) -> None: + """Callback function for setting the conv_id.""" + self.conv_id = metadata.get("chat_id", self.conv_id) + def stream_chat(self, message: str) -> StreamingAgentChatResponse: query_bundle = QueryBundle(message) - nodes = self._retriever.retrieve(query_bundle) - return StreamingAgentChatResponse( - chat_stream=self._retriever._vectara_stream( - query_bundle, chat=True, conv_id=self.conv_id - ), - source_nodes=nodes, + return self._retriever._vectara_stream( + query_bundle, + chat=True, + conv_id=self.conv_id, + callback_func=self.set_chat_id, ) async def astream_chat(self, message: str) -> StreamingAgentChatResponse: diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/retriever.py b/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/retriever.py index 520f124bcb8af..fbfb134fac0f0 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/retriever.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/llama_index/indices/managed/vectara/retriever.py @@ -5,20 +5,18 @@ import json import logging -from typing import Any, List, Optional, Tuple, Dict +from typing import Any, List, Optional, Tuple, Dict, Callable, Union from enum import Enum -import urllib.parse from llama_index.core.base.base_retriever import BaseRetriever from llama_index.core.callbacks.base import CallbackManager from llama_index.core.indices.vector_store.retrievers.auto_retriever.auto_retriever import ( VectorIndexAutoRetriever, ) -from llama_index.core.schema import NodeWithScore, QueryBundle, TextNode +from llama_index.core.schema import NodeWithScore, QueryBundle, Node, MediaResource from llama_index.core.types import TokenGen -from llama_index.core.llms import ( - CompletionResponse, -) +from llama_index.core.base.response.schema import StreamingResponse + from llama_index.core.vector_stores.types import ( FilterCondition, MetadataFilters, @@ -33,28 +31,16 @@ _logger = logging.getLogger(__name__) -MMR_RERANKER_ID = 272725718 -SLINGSHOT_RERANKER_ID = 272725719 -UDF_RERANKER_ID = 272725722 - class VectaraReranker(str, Enum): NONE = "none" MMR = "mmr" SLINGSHOT = "multilingual_reranker_v1" SLINGSHOT_ALT_NAME = "slingshot" - UDF = "udf" + UDF = "userfn" CHAIN = "chain" -CHAIN_RERANKER_NAMES = { - VectaraReranker.MMR: "Maximum Marginal Relevance Reranker", - VectaraReranker.SLINGSHOT: "Rerank_Multilingual_v1", - VectaraReranker.SLINGSHOT_ALT_NAME: "Rerank_Multilingual_v1", - VectaraReranker.UDF: "User_Defined_Function_Reranker", -} - - class VectaraRetriever(BaseRetriever): """ Vectara Retriever. @@ -62,69 +48,99 @@ class VectaraRetriever(BaseRetriever): Args: index (VectaraIndex): the Vectara Index similarity_top_k (int): number of top k results to return, defaults to 5. - lambda_val (float): for hybrid search. + offset (int): number of results to skip, defaults to 0. + lambda_val (Union[List[float], float]): for hybrid search. 0 = neural search only. 1 = keyword match only. - In between values are a linear interpolation + In between values are a linear interpolation. + Provide single value for one corpus or a list of values for each corpus. + semantics (Union[List[str], str]): Indicates whether the query is intended as a query or response. + Provide single value for one corpus or a list of values for each corpus. + custom_dimensions (Dict): Custom dimensions for the query. + See (https://docs.vectara.com/docs/learn/semantic-search/add-custom-dimensions) + for more details about usage. + Provide single dict for one corpus or a list of dicts for each corpus. n_sentences_before (int): number of sentences before the matched sentence to return in the node n_sentences_after (int): number of sentences after the matched sentence to return in the node - filter: metadata filter (if specified) - reranker (str): reranker to use: none, mmr, slingshot/multilingual_reranker_v1, udf, or chain. - Note that "multilingual_reranker_v1" is a Vectara Scale feature only. - rerank_k: number of results to fetch for Reranking, defaults to 50. - mmr_diversity_bias: number between 0 and 1 that determines the degree + filter (Union[List[str], str]): metadata filter (if specified). Provide single string for one corpus + or a list of strings to specify the filter for each corpus (if multiple corpora). + reranker (str): reranker to use: none, mmr, slingshot/multilingual_reranker_v1, userfn, or chain. + rerank_k (int): number of results to fetch for Reranking, defaults to 50. + rerank_limit (int): maximum number of results to return after reranking, defaults to 50. + Don't specify this for chain reranking. Instead, put the "limit" parameter in the dict for each individual reranker. + rerank_cutoff (float): minimum score threshold for results to include after reranking, defaults to 0. + Don't specify this for chain reranking. Instead, put the "chain" parameter in the dict for each individual reranker. + mmr_diversity_bias (float): number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to minimum diversity and 1 to maximum diversity. Defaults to 0.3. - udf_expression: the user defined expression for reranking results. + udf_expression (str): the user defined expression for reranking results. See (https://docs.vectara.com/docs/learn/user-defined-function-reranker) for more details about syntax for udf reranker expressions. - rerank_chain: a list of rerankers to be applied in a sequence and their associated parameters - for the chain reranker. Each element should specify the "type" of reranker (mmr, slingshot, udf) - and any other parameters (e.g. "limit" or "cutoff" for any type, "diversity_bias" for mmr, and "user_function" for udf). + rerank_chain (List[Dict]): a list of rerankers to be applied in a sequence and their associated parameters + for the chain reranker. Each element should specify the "type" of reranker (mmr, slingshot, userfn) + and any other parameters (e.g. "limit" or "cutoff" for any type, "diversity_bias" for mmr, and "user_function" for userfn). If using slingshot/multilingual_reranker_v1, it must be first in the list. - summary_enabled: whether to generate summaries or not. Defaults to False. - summary_response_lang: language to use for summary generation. - summary_num_results: number of results to use for summary generation. - summary_prompt_name: name of the prompt to use for summary generation. - prompt_text: the custom prompt, using appropriate prompt variables and functions. + summary_enabled (bool): whether to generate summaries or not. Defaults to False. + summary_response_lang (str): language to use for summary generation. + summary_num_results (int): number of results to use for summary generation. + summary_prompt_name (str): name of the prompt to use for summary generation. + To use Vectara's Mockingbird LLM designed specifically for RAG, set to "mockingbird-1.0-2024-07-16". + If you are indexing documents with tables, we recommend "vectara-summary-table-query-ext-dec-2024-gpt-4o". + See (https://docs.vectara.com/docs/learn/grounded-generation/select-a-summarizer) for all available prompts. + prompt_text (str): the custom prompt, using appropriate prompt variables and functions. See (https://docs.vectara.com/docs/1.0/prompts/custom-prompts-with-metadata) for more details. - citations_style: The style of the citations in the summary generation, - either "numeric", "html", "markdown", or "none". - This is a Vectara Scale only feature. Defaults to None. - citations_url_pattern: URL pattern for html and markdown citations. + max_response_chars (int): the desired maximum number of characters for the generated summary. + max_tokens (int): the maximum number of tokens to be returned by the LLM. + temperature (float): The sampling temperature; higher values lead to more randomness. + frequency_penalty (float): How much to penalize repeating tokens in the response, reducing likelihood of repeating the same line. + presence_penalty (float): How much to penalize repeating tokens in the response, increasing the diversity of topics. + citations_style (str): The style of the citations in the summary generation, + either "numeric", "html", "markdown", or "none". Defaults to None. + citations_url_pattern (str): URL pattern for html and markdown citations. If non-empty, specifies the URL pattern to use for citations; e.g. "{doc.url}". See (https://docs.vectara.com/docs/api-reference/search-apis/search - #citation-format-in-summary) for more details. - This is a Vectara Scale only feature. Defaults to None. - citations_text_pattern: The displayed text for citations. + #citation-format-in-summary) for more details. Defaults to None. + citations_text_pattern (str): The displayed text for citations. If not specified, numeric citations are displayed for text. + save_history (bool): Whether to save the query in history. Defaults to False. """ def __init__( self, index: VectaraIndex, similarity_top_k: int = 10, - lambda_val: float = 0.005, + offset: int = 0, + lambda_val: Union[List[float], float] = 0.005, + semantics: Union[List[str], str] = "default", + custom_dimensions: Union[List[Dict], Dict] = {}, n_sentences_before: int = 2, n_sentences_after: int = 2, - filter: str = "", + filter: Union[List[str], str] = "", reranker: VectaraReranker = VectaraReranker.NONE, rerank_k: int = 50, + rerank_limit: Optional[int] = None, + rerank_cutoff: Optional[float] = None, mmr_diversity_bias: float = 0.3, udf_expression: str = None, rerank_chain: List[Dict] = None, summary_enabled: bool = False, summary_response_lang: str = "eng", summary_num_results: int = 7, - summary_prompt_name: str = "vectara-summary-ext-24-05-sml", + summary_prompt_name: str = "vectara-summary-ext-24-05-med-omni", prompt_text: Optional[str] = None, + max_response_chars: Optional[int] = None, + max_tokens: Optional[int] = None, + temperature: Optional[float] = None, + frequency_penalty: Optional[float] = None, + presence_penalty: Optional[float] = None, citations_style: Optional[str] = None, citations_url_pattern: Optional[str] = None, citations_text_pattern: Optional[str] = None, + save_history: bool = False, callback_manager: Optional[CallbackManager] = None, x_source_str: str = "llama_index", **kwargs: Any, @@ -132,42 +148,51 @@ def __init__( """Initialize params.""" self._index = index self._similarity_top_k = similarity_top_k + self._offset = offset self._lambda_val = lambda_val + self._semantics = semantics + self._custom_dimensions = custom_dimensions self._n_sentences_before = n_sentences_before self._n_sentences_after = n_sentences_after self._filter = filter - self._prompt_text = prompt_text - self._citations_style = citations_style.upper() if citations_style else None + self._citations_style = citations_style self._citations_url_pattern = citations_url_pattern self._citations_text_pattern = citations_text_pattern + self._save_history = save_history + + self._conv_id = None self._x_source_str = x_source_str - if reranker == VectaraReranker.MMR: + if reranker in [ + VectaraReranker.MMR, + VectaraReranker.SLINGSHOT, + VectaraReranker.SLINGSHOT_ALT_NAME, + VectaraReranker.UDF, + VectaraReranker.CHAIN, + VectaraReranker.NONE, + ]: self._rerank = True + self._reranker = reranker self._rerank_k = rerank_k - self._mmr_diversity_bias = mmr_diversity_bias - self._reranker_id = MMR_RERANKER_ID - elif ( - reranker == VectaraReranker.SLINGSHOT - or reranker == VectaraReranker.SLINGSHOT_ALT_NAME - ): - self._rerank = True - self._rerank_k = rerank_k - self._reranker_id = SLINGSHOT_RERANKER_ID - elif reranker == VectaraReranker.UDF and udf_expression is not None: - self._rerank = True - self._rerank_k = rerank_k - self._udf_expression = udf_expression - self._reranker_id = UDF_RERANKER_ID - elif ( - reranker == VectaraReranker.CHAIN - and rerank_chain is not None - and len(rerank_chain) > 0 - ): - self._rerank = True - self._rerank_k = rerank_k - self._rerank_chain = rerank_chain - self._reranker_id = None + self._rerank_limit = rerank_limit + self._rerank_cutoff = rerank_cutoff + + if self._reranker == VectaraReranker.MMR: + self._mmr_diversity_bias = mmr_diversity_bias + + elif self._reranker == VectaraReranker.UDF: + self._udf_expression = udf_expression + + elif self._reranker == VectaraReranker.CHAIN: + self._rerank_chain = rerank_chain + for sub_reranker in self._rerank_chain: + if sub_reranker["type"] in [ + VectaraReranker.SLINGSHOT, + VectaraReranker.SLINGSHOT_ALT_NAME, + ]: + sub_reranker["type"] = "customer_reranker" + sub_reranker["reranker_name"] = "Rerank_Multilingual_v1" + else: self._rerank = False @@ -176,6 +201,13 @@ def __init__( self._summary_response_lang = summary_response_lang self._summary_num_results = summary_num_results self._summary_prompt_name = summary_prompt_name + self._prompt_text = prompt_text + self._max_response_chars = max_response_chars + self._max_tokens = max_tokens + self._temperature = temperature + self._frequency_penalty = frequency_penalty + self._presence_penalty = presence_penalty + else: self._summary_enabled = False super().__init__(callback_manager) @@ -184,7 +216,6 @@ def _get_post_headers(self) -> dict: """Returns headers that should be attached to each post request.""" return { "x-api-key": self._index._vectara_api_key, - "customer-id": self._index._vectara_customer_id, "Content-Type": "application/json", "X-Source": self._x_source_str, } @@ -208,109 +239,128 @@ def _retrieve( Retrieve top k most similar nodes. Args: - query: Query Bundle + query_bundle: Query Bundle """ return self._vectara_query(query_bundle, **kwargs)[0] # return top_nodes only def _build_vectara_query_body( self, query_str: str, - chat: bool = False, - chat_conv_id: Optional[str] = None, **kwargs: Any, ) -> Dict: - corpus_keys = [ - { - "customerId": self._index._vectara_customer_id, - "corpusId": corpus_id, - "lexicalInterpolationConfig": {"lambda": self._lambda_val}, - } - for corpus_id in self._index._vectara_corpus_id.split(",") - ] - if len(self._filter) > 0: - for k in corpus_keys: - k["metadataFilter"] = self._filter - data = { - "query": [ - { - "query": query_str, - "start": 0, - "numResults": ( - self._rerank_k if self._rerank else self._similarity_top_k - ), - "contextConfig": { - "sentencesBefore": self._n_sentences_before, - "sentencesAfter": self._n_sentences_after, - }, - "corpusKey": corpus_keys, - } - ] + "query": query_str, + "search": { + "offset": self._offset, + "limit": self._rerank_k if self._rerank else self._similarity_top_k, + "context_configuration": { + "sentences_before": self._n_sentences_before, + "sentences_after": self._n_sentences_after, + }, + }, } - if self._rerank and self._reranker_id is not None: - reranking_config = { - "rerankerId": self._reranker_id, - } - if self._reranker_id == MMR_RERANKER_ID: - reranking_config["mmrConfig"] = { - "diversityBias": self._mmr_diversity_bias - } - elif self._reranker_id == UDF_RERANKER_ID: - reranking_config["userFunction"] = self._udf_expression - - data["query"][0]["rerankingConfig"] = reranking_config - - elif self._rerank: - reranking_config = current_config = {} - - for i, rerank_info in enumerate(self._rerank_chain): - rerank_type = rerank_info.get("type", None) - if rerank_type is None: - print("Missing argument 'type' in chain reranker") - else: - current_config["reranker_name"] = CHAIN_RERANKER_NAMES[rerank_type] - - current_config.update( - { - param: value - for param, value in rerank_info.items() - if param != "type" - } - ) - if i < len(self._rerank_chain) - 1: - current_config["next_reranking_config"] = {} - current_config = current_config["next_reranking_config"] + corpora_config = [ + {"corpus_key": corpus_key} + for corpus_key in self._index._vectara_corpus_key.split(",") + ] + + for i in range(len(corpora_config)): + corpora_config[i]["custom_dimensions"] = ( + self._custom_dimensions[i] + if isinstance(self._custom_dimensions, list) + else self._custom_dimensions + ) + corpora_config[i]["metadata_filter"] = ( + self._filter[i] if isinstance(self._filter, list) else self._filter + ) + corpora_config[i]["lexical_interpolation"] = ( + self._lambda_val[i] + if isinstance(self._lambda_val, list) + else self._lambda_val + ) + corpora_config[i]["semantics"] = ( + self._semantics[i] + if isinstance(self._semantics, list) + else self._semantics + ) - data["query"][0]["rerankingConfig"] = reranking_config + data["search"]["corpora"] = corpora_config + + if self._rerank: + rerank_config = {} + + if self._reranker in [ + VectaraReranker.SLINGSHOT, + VectaraReranker.SLINGSHOT_ALT_NAME, + ]: + rerank_config["type"] = "customer_reranker" + rerank_config["reranker_name"] = "Rerank_Multilingual_v1" + else: + rerank_config["type"] = self._reranker + + if self._reranker == VectaraReranker.MMR: + rerank_config["diversity_bias"] = self._mmr_diversity_bias + + elif self._reranker == VectaraReranker.UDF: + rerank_config["user_function"] = self._udf_expression + + elif self._reranker == VectaraReranker.CHAIN: + rerank_config["rerankers"] = self._rerank_chain + + if self._rerank_limit: + rerank_config["limit"] = self._rerank_limit + if self._rerank_cutoff: + rerank_config["cutoff"] = self._rerank_cutoff + + data["search"]["reranker"] = rerank_config if self._summary_enabled: summary_config = { - "responseLang": self._summary_response_lang, - "maxSummarizedResults": self._summary_num_results, - "summarizerPromptName": self._summary_prompt_name, + "response_language": self._summary_response_lang, + "max_used_search_results": self._summary_num_results, + "generation_preset_name": self._summary_prompt_name, + "enable_factual_consistency_score": True, } - data["query"][0]["summary"] = [summary_config] if self._prompt_text: - data["query"][0]["summary"][0]["promptText"] = self._prompt_text - if chat: - data["query"][0]["summary"][0]["chat"] = { - "store": True, - "conversationId": chat_conv_id, - } - + summary_config["prompt_template"] = self._prompt_text + if self._max_response_chars: + summary_config["max_response_characters"] = self._max_response_chars + + model_parameters = {} + if self._max_tokens: + model_parameters["max_tokens"] = self._max_tokens + if self._temperature: + model_parameters["temperature"] = self._temperature + if self._frequency_penalty: + model_parameters["frequency_penalty"] = self._frequency_penalty + if self._presence_penalty: + model_parameters["presence_penalty"] = self._presence_penalty + + if len(model_parameters) > 0: + summary_config["model_parameters"] = model_paramters + + citations_config = {} if self._citations_style: - if self._citations_style in ["NUMERIC", "NONE"]: - data["query"][0]["summary"][0]["citationParams"] = { - "style": self._citations_style, - } - - elif self._citations_url_pattern: - data["query"][0]["summary"][0]["citationParams"] = { - "style": self._citations_style, - "urlPattern": self._citations_url_pattern, - "textPattern": self._citations_text_pattern, - } + if self._citations_style in ["numeric", "none"]: + citations_config["style"] = self._citations_style + elif ( + self._citations_style in ["html", "markdown"] + and self._citations_url_pattern + ): + citations_config["style"] = self._citations_style + citations_config["url_pattern"] = self._citations_url_pattern + citations_config["text_pattern"] = self._citations_text_pattern + else: + _logger.warning( + f"Invalid citations style {self._citations_style}. Must be one of 'numeric', 'html', 'markdown', or 'none'." + ) + + if len(citations_config) > 0: + summary_config["citations"] = citations_config + + data["generation"] = summary_config + data["save_history"] = self._save_history return data @@ -320,108 +370,121 @@ def _vectara_stream( chat: bool = False, conv_id: Optional[str] = None, verbose: bool = False, + callback_func: Callable[[List, Dict], None] = None, **kwargs: Any, - ) -> TokenGen: + ) -> StreamingResponse: """ Query Vectara index to get for top k most similar nodes. Args: query_bundle: Query Bundle - chat: whether to enable chat - conv_id: conversation ID, if chat enabled + chat: whether to use chat API in Vectara + conv_id: conversation ID, if adding to existing chat """ body = self._build_vectara_query_body(query_bundle.query_str) + body["stream_response"] = True if verbose: print(f"Vectara streaming query request body: {body}") - response = self._index._session.post( - headers=self._get_post_headers(), - url="https://api.vectara.io/v1/stream-query", - data=json.dumps(body), - timeout=self._index.vectara_api_timeout, - stream=True, - ) - if response.status_code != 200: - print( - "Query failed %s", - f"(code {response.status_code}, reason {response.reason}, details " - f"{response.text})", + if chat: + body["chat"] = {"store": True} + if conv_id or self._conv_id: + conv_id = conv_id or self._conv_id + response = self._index._session.post( + headers=self._get_post_headers(), + url=f"https://api.vectara.io/v2/chats/{conv_id}/turns", + data=json.dumps(body), + timeout=self._index.vectara_api_timeout, + stream=True, + ) + else: + response = self._index._session.post( + headers=self._get_post_headers(), + url="https://api.vectara.io/v2/chats", + data=json.dumps(body), + timeout=self._index.vectara_api_timeout, + stream=True, + ) + + else: + response = self._index._session.post( + headers=self._get_post_headers(), + url="https://api.vectara.io/v2/query", + data=json.dumps(body), + timeout=self._index.vectara_api_timeout, + stream=True, ) - return - responses = [] - documents = [] - stream_response = CompletionResponse( - text="", additional_kwargs={"fcs": None}, raw=None, delta=None + if response.status_code != 200: + result = response.json() + if response.status_code == 400: + _logger.error( + f"Query failed (code {response.status_code}), reason {result['field_errors']}" + ) + else: + _logger.error( + f"Query failed (code {response.status_code}), reason {result['messages'][0]}" + ) + return None + + def process_chunks(response): + source_nodes = [] + response_metadata = {} + + def text_generator() -> TokenGen: + for line in response.iter_lines(): + line = line.decode("utf-8") + if line: + key, value = line.split(":", 1) + if key == "data": + line = json.loads(value) + if line["type"] == "generation_chunk": + yield line["generation_chunk"] + + elif line["type"] == "factual_consistency_score": + response_metadata["fcs"] = line[ + "factual_consistency_score" + ] + + elif line["type"] == "search_results": + search_results = line["search_results"] + source_nodes.extend( + [ + NodeWithScore( + node=Node( + text_resource=MediaResource( + text=search_result["text"] + ), + id_=search_result["document_id"], + metadata=search_result[ + "document_metadata" + ], + ), + score=search_result["score"], + ) + for search_result in search_results[ + : self._similarity_top_k + ] + ] + ) + + elif line["type"] == "chat_info": + self._conv_id = line["chat_id"] + response_metadata["chat_id"] = line["chat_id"] + + if callback_func: + callback_func(source_nodes, response_metadata) + + return text_generator(), source_nodes, response_metadata + + response_chunks, response_nodes, response_metadata = process_chunks(response) + + return StreamingResponse( + response_gen=response_chunks, + source_nodes=response_nodes, + metadata=response_metadata, ) - for line in response.iter_lines(): - if line: # filter out keep-alive new lines - data = json.loads(line.decode("utf-8")) - result = data["result"] - response_set = result["responseSet"] - if response_set is None: - summary = result.get("summary", None) - if summary is None: - continue - if len(summary.get("status")) > 0: - print( - f"Summary generation failed with status {summary.get('status')[0].get('statusDetail')}" - ) - continue - - # Store conversation ID for chat, if applicable - chat = summary.get("chat", None) - if chat and chat.get("status", None): - st_code = chat["status"] - print(f"Chat query failed with code {st_code}") - if st_code == "RESOURCE_EXHAUSTED": - self.conv_id = None - print("Sorry, Vectara chat turns exceeds plan limit.") - continue - - conv_id = chat.get("conversationId", None) if chat else None - if conv_id: - self.conv_id = conv_id - - # if factual consistency score is provided, pull that from the JSON response - if summary.get("factualConsistency", None): - fcs = summary.get("factualConsistency", {}).get("score", None) - stream_response.additional_kwargs["fcs"] = fcs - continue - - # Yield the summary chunk - chunk = urllib.parse.unquote(summary["text"]) - stream_response.text += chunk - stream_response.delta = chunk - yield stream_response - else: - metadatas = [] - for x in responses: - md = {m["name"]: m["value"] for m in x["metadata"]} - doc_num = x["documentIndex"] - doc_md = { - m["name"]: m["value"] - for m in documents[doc_num]["metadata"] - } - md.update(doc_md) - metadatas.append(md) - - top_nodes = [] - for x, md in zip(responses, metadatas): - doc_inx = x["documentIndex"] - doc_id = documents[doc_inx]["id"] - node = NodeWithScore( - node=TextNode(text=x["text"], id_=doc_id, metadata=md), score=x["score"] # type: ignore - ) - top_nodes.append(node) - stream_response.additional_kwargs["top_nodes"] = top_nodes[ - : self._similarity_top_k - ] - stream_response.delta = None - yield stream_response - return - def _vectara_query( self, query_bundle: QueryBundle, @@ -435,8 +498,8 @@ def _vectara_query( Args: query: Query Bundle - chat: whether to enable chat in Vectara - conv_id: conversation ID, if chat enabled + chat: whether to use chat API in Vectara + conv_id: conversation ID, if adding to existing chat verbose: whether to print verbose output (e.g. for debugging) Additional keyword arguments @@ -445,79 +508,78 @@ def _vectara_query( Dict: summary str: conversation ID, if applicable """ - data = self._build_vectara_query_body(query_bundle.query_str, chat, conv_id) + data = self._build_vectara_query_body(query_bundle.query_str) if verbose: print(f"Vectara query request body: {data}") - response = self._index._session.post( - headers=self._get_post_headers(), - url="https://api.vectara.io/v1/query", - data=json.dumps(data), - timeout=self._index.vectara_api_timeout, - ) - if response.status_code != 200: - _logger.error( - "Query failed %s", - f"(code {response.status_code}, reason {response.reason}, details " - f"{response.text})", + if chat: + data["chat"] = {"store": True} + if conv_id: + response = self._index._session.post( + headers=self._get_post_headers(), + url=f"https://api.vectara.io/v2/chats/{conv_id}/turns", + data=json.dumps(data), + timeout=self._index.vectara_api_timeout, + ) + else: + response = self._index._session.post( + headers=self._get_post_headers(), + url="https://api.vectara.io/v2/chats", + data=json.dumps(data), + timeout=self._index.vectara_api_timeout, + ) + + else: + response = self._index._session.post( + headers=self._get_post_headers(), + url="https://api.vectara.io/v2/query", + data=json.dumps(data), + timeout=self._index.vectara_api_timeout, ) - return [], {"text": ""}, "" result = response.json() - if verbose: - print(f"Vectara query response: {result}") - status = result["responseSet"][0]["status"] - if len(status) > 0 and status[0]["code"] != "OK": - _logger.error( - f"Query failed (code {status[0]['code']}, msg={status[0]['statusDetail']}" - ) + if response.status_code != 200: + if response.status_code == 400: + _logger.error( + f"Query failed (code {response.status_code}), reason {result['field_errors']}" + ) + else: + _logger.error( + f"Query failed (code {response.status_code}), reason {result['messages'][0]}" + ) return [], {"text": ""}, "" - responses = result["responseSet"][0]["response"] - documents = result["responseSet"][0]["document"] + if "warnings" in result: + _logger.warning(f"Query warning(s) {(', ').join(result['warnings'])}") - if self._summary_enabled: - summaryJson = result["responseSet"][0]["summary"][0] - if len(summaryJson["status"]) > 0: - print( - f"Summary generation failed with error: '{summaryJson['status'][0]['statusDetail']}'" - ) - return [], {"text": ""}, "" + if verbose: + print(f"Vectara query response: {result}") + if self._summary_enabled: summary = { - "text": ( - urllib.parse.unquote(summaryJson["text"]) - if self._summary_enabled - else None - ), - "fcs": summaryJson["factualConsistency"]["score"], + "text": result["answer"] if chat else result["summary"], + "fcs": result.get("factual_consistency_score"), } - if summaryJson.get("chat", None): - conv_id = summaryJson["chat"]["conversationId"] - else: - conv_id = None else: summary = None - metadatas = [] - for x in responses: - md = {m["name"]: m["value"] for m in x["metadata"]} - doc_num = x["documentIndex"] - doc_md = {m["name"]: m["value"] for m in documents[doc_num]["metadata"]} - md.update(doc_md) - metadatas.append(md) - - top_nodes = [] - for x, md in zip(responses, metadatas): - doc_inx = x["documentIndex"] - doc_id = documents[doc_inx]["id"] - node = NodeWithScore( - node=TextNode(text=x["text"], id_=doc_id, metadata=md), score=x["score"] # type: ignore + search_results = result["search_results"] + top_nodes = [ + NodeWithScore( + node=Node( + text_resource=MediaResource(text=search_result["text"]), + id_=search_result["document_id"], + metadata=search_result["document_metadata"], + ), + score=search_result["score"], ) - top_nodes.append(node) + for search_result in search_results[: self._similarity_top_k] + ] - return top_nodes[: self._similarity_top_k], summary, conv_id + conv_id = result["chat_id"] if chat else None + + return top_nodes, summary, conv_id async def _avectara_query( self, @@ -532,15 +594,14 @@ async def _avectara_query( Args: query: Query Bundle - chat: whether to enable chat in Vectara - conv_id: conversation ID, if chat enabled + chat: whether to use chat API in Vectara + conv_id: conversation ID, if adding to existing chat verbose: whether to print verbose output (e.g. for debugging) Additional keyword arguments Returns: List[NodeWithScore]: list of nodes with scores Dict: summary - str: conversation ID, if applicable """ return await self._vectara_query(query_bundle, chat, conv_id, verbose, **kwargs) diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml b/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml index 1378f080986c4..cb31692b77030 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml @@ -31,7 +31,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-indices-managed-vectara" readme = "README.md" -version = "0.3.1" +version = "0.4.0" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/tests/test_indices_managed_vectara.py b/llama-index-integrations/indices/llama-index-indices-managed-vectara/tests/test_indices_managed_vectara.py index 7aa9a2673a7d2..a0b644f58a925 100644 --- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/tests/test_indices_managed_vectara.py +++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/tests/test_indices_managed_vectara.py @@ -1,5 +1,5 @@ from typing import List -from llama_index.core.schema import Document +from llama_index.core.schema import Document, Node, MediaResource from llama_index.core.indices.managed.base import BaseManagedIndex from llama_index.indices.managed.vectara import VectaraIndex import pytest @@ -8,16 +8,22 @@ # # For this test to run properly, please setup as follows: # 1. Create a Vectara account: sign up at https://console.vectara.com/signup -# 2. Create a corpus in your Vectara account, with the following filter attributes: +# 2. Create two corpora with corpus keys "Llamaindex-testing-1" and "llamaindex-testing-2" in your Vectara account with the following filter attributes: +# "Llamaindex-testing-1": # a. doc.test_num (text) # b. doc.test_score (integer) # c. doc.date (text) # d. doc.url (text) -# 3. Create an API_KEY for this corpus with permissions for query and indexing +# "llamaindex-testing-2": +# a. doc.author (text) +# b. doc.title (text) +# c. part.test_num (text) +# d. part.test_score (integer) +# e. part.date (text) +# 3. Create an API_KEY for these corpora with permissions for query and indexing # 4. Setup environment variables: -# VECTARA_API_KEY, VECTARA_CORPUS_ID, VECTARA_CUSTOMER_ID, and OPENAI_API_KEY -# -# Note: In order to run test_citations, you will need a Scale account. +# VECTARA_API_KEY, VECTARA_CORPUS_KEY, and OPENAI_API_KEY +# For VECTARA_CORPUS_KEY, separate the corpus keys for the corpora with a ',' for example: "Llamaindex-testing-1,llamaindex-testing-2". # @@ -29,18 +35,22 @@ def test_class(): def get_docs() -> List[Document]: inputs = [ { + "id": "doc_1", "text": "This is test text for Vectara integration with LlamaIndex", "metadata": {"test_num": "1", "test_score": 10, "date": "2020-02-25"}, }, { + "id": "doc_2", "text": "And now for something completely different", "metadata": {"test_num": "2", "test_score": 2, "date": "2015-10-13"}, }, { + "id": "doc_3", "text": "when 900 years you will be, look as good you will not", "metadata": {"test_num": "3", "test_score": 20, "date": "2023-09-12"}, }, { + "id": "doc_4", "text": "when 850 years you will be, look as good you will not", "metadata": {"test_num": "4", "test_score": 50, "date": "2022-01-01"}, }, @@ -48,13 +58,43 @@ def get_docs() -> List[Document]: docs: List[Document] = [] for inp in inputs: doc = Document( - text=str(inp["text"]), - metadata=inp["metadata"], # type: ignore + id_=inp["id"], + text_resource=MediaResource(text=inp["text"]), + metadata=inp["metadata"], ) docs.append(doc) return docs +def get_nodes() -> List[Node]: + inputs = [ + { + "text": "This is test text for Vectara integration with LlamaIndex", + "metadata": {"test_num": "1", "test_score": 10, "date": "2020-02-25"}, + }, + { + "text": "And now for something completely different", + "metadata": {"test_num": "2", "test_score": 2, "date": "2015-10-13"}, + }, + { + "text": "when 900 years you will be, look as good you will not", + "metadata": {"test_num": "3", "test_score": 20, "date": "2023-09-12"}, + }, + { + "text": "when 850 years you will be, look as good you will not", + "metadata": {"test_num": "4", "test_score": 50, "date": "2022-01-01"}, + }, + ] + + nodes: List[Node] = [] + for inp in inputs: + node = Node( + text_resource=MediaResource(text=inp["text"]), metadata=inp["metadata"] + ) + nodes.append(node) + return nodes + + @pytest.fixture() def vectara1(): docs = get_docs() @@ -67,7 +107,7 @@ def vectara1(): # Tear down code for id in vectara1.doc_ids: - vectara1._delete_doc(id) + vectara1.delete_ref_doc(id) def test_simple_retrieval(vectara1) -> None: @@ -76,6 +116,7 @@ def test_simple_retrieval(vectara1) -> None: res = qe.retrieve("Find me something different") assert len(res) == 1 assert res[0].node.get_content() == docs[1].text + assert res[0].node.node_id == docs[1].doc_id def test_mmr_retrieval(vectara1) -> None: @@ -87,7 +128,7 @@ def test_mmr_retrieval(vectara1) -> None: n_sentences_before=0, n_sentences_after=0, reranker="mmr", - mmr_k=10, + rerank_k=10, mmr_diversity_bias=0.0, ) res = qe.retrieve("how will I look?") @@ -101,7 +142,7 @@ def test_mmr_retrieval(vectara1) -> None: n_sentences_before=0, n_sentences_after=0, reranker="mmr", - mmr_k=10, + rerank_k=10, mmr_diversity_bias=1.0, ) res = qe.retrieve("how will I look?") @@ -114,7 +155,7 @@ def test_retrieval_with_filter(vectara1) -> None: docs = get_docs() assert isinstance(vectara1, VectaraIndex) - qe = vectara1.as_retriever(similarity_top_k=1, filter="doc.test_num = '1'") + qe = vectara1.as_retriever(similarity_top_k=1, filter=["doc.test_num = '1'", ""]) res = qe.retrieve("What does this test?") assert len(res) == 1 assert res[0].node.get_content() == docs[0].text @@ -128,7 +169,7 @@ def test_udf_retrieval(vectara1) -> None: similarity_top_k=2, n_sentences_before=0, n_sentences_after=0, - reranker="udf", + reranker="userfn", udf_expression="get('$.score') + get('$.document_metadata.test_score')", ) @@ -142,7 +183,7 @@ def test_udf_retrieval(vectara1) -> None: similarity_top_k=2, n_sentences_before=0, n_sentences_after=0, - reranker="udf", + reranker="userfn", udf_expression="max(0, 5 * get('$.score') - (to_unix_timestamp(now()) - to_unix_timestamp(datetime_parse(get('$.document_metadata.date'), 'yyyy-MM-dd'))) / 31536000)", ) @@ -179,7 +220,7 @@ def test_chain_rerank_retrieval(vectara1) -> None: {"type": "slingshot"}, {"type": "mmr"}, { - "type": "udf", + "type": "userfn", "user_function": "5 * get('$.score') + get('$.document_metadata.test_score') / 2", "limit": 2, }, @@ -209,7 +250,8 @@ def test_chain_rerank_retrieval(vectara1) -> None: # Second query with same retriever to ensure rerank chain configuration remains the same res = qe.retrieve("How will I look when I'm older?") - assert qe._rerank_chain[0].get("type") == "slingshot" + assert qe._rerank_chain[0].get("type") == "customer_reranker" + assert qe._rerank_chain[0].get("reranker_name") == "Rerank_Multilingual_v1" assert qe._rerank_chain[1].get("type") == "mmr" assert res[0].node.get_content() == docs[2].text @@ -231,7 +273,22 @@ def test_custom_prompt(vectara1) -> None: assert "integration" in str(res).lower() assert "llamaindex" in str(res).lower() assert "vectara" in str(res).lower() - assert "first" in str(res).lower() + assert "result" in str(res).lower() + + +def test_update_doc(vectara1) -> None: + docs = get_docs() + + vectara1.update_ref_doc( + document=docs[1], corpus_key="Llamaindex-testing-1", metadata={"test_score": 14} + ) + + qe = vectara1.as_retriever(similarity_top_k=1) + + res = qe.retrieve("Find me something completely different.") + assert len(res) == 1 + assert res[0].node.get_content() == docs[1].text + assert res[0].node.metadata["test_score"] == 14 @pytest.fixture() @@ -243,13 +300,15 @@ def vectara2(): file_path = "docs/docs/examples/data/paul_graham/paul_graham_essay.txt" id = vectara2.insert_file( - file_path, metadata={"url": "https://www.paulgraham.com/worked.html"} + file_path, + metadata={"url": "https://www.paulgraham.com/worked.html"}, + corpus_key="llamaindex-testing-2", ) yield vectara2 # Tear down code - vectara2._delete_doc(id) + vectara2.delete_ref_doc(id, corpus_key="llamaindex-testing-2") def test_file_upload(vectara2) -> None: @@ -263,33 +322,44 @@ def test_file_upload(vectara2) -> None: # test query with Vectara summarization (streaming) query_engine = vectara2.as_query_engine(similarity_top_k=3, streaming=True) res = query_engine.query("What software did Paul Graham write?") - summary = "" - for chunk in res.response_gen: - if chunk.delta: - summary += chunk.delta - if ( - chunk.additional_kwargs - and "fcs" in chunk.additional_kwargs - and chunk.additional_kwargs["fcs"] is not None - ): - assert chunk.additional_kwargs["fcs"] >= 0 + summary = str(res) + assert "paul graham" in summary.lower() and "software" in summary.lower() + assert res.metadata["fcs"] >= 0 + assert len(res.source_nodes) > 0 # test query with VectorStoreQuery (using OpenAI for summarization) - query_engine = vectara2.as_query_engine( - similarity_top_k=3, summary_enabled=False, verbose=True - ) + query_engine = vectara2.as_query_engine(similarity_top_k=3, summary_enabled=False) res = query_engine.query("What software did Paul Graham write?") assert "paul graham" in str(res).lower() and "software" in str(res).lower() # test query with Vectara summarization (default) - query_engine = vectara2.as_query_engine(similarity_top_k=3, verbose=True) + query_engine = vectara2.as_query_engine(similarity_top_k=3) res = query_engine.query("How is Paul related to Reddit?") summary = res.response assert "paul graham" in summary.lower() and "reddit" in summary.lower() assert "https://www.paulgraham.com/worked.html" in str(res.source_nodes) +def test_knee_reranker(vectara2) -> None: + query_engine = vectara2.as_query_engine( + rerank_k=50, + similarity_top_k=50, + reranker="chain", + rerank_chain=[ + {"type": "slingshot"}, + {"type": "userfn", "user_function": "knee()"}, + ], + ) + + # test query with knee reranker (should return less results than rerank_k) + res = query_engine.query("How is Paul related to Reddit?") + summary = res.response + assert "paul" in summary.lower() and "reddit" in summary.lower() + assert "https://www.paulgraham.com/worked.html" in str(res.source_nodes) + assert len(res.source_nodes) > 0 and len(res.source_nodes) < 20 + + def test_citations(vectara2) -> None: # test markdown citations query_engine = vectara2.as_query_engine( @@ -328,3 +398,105 @@ def test_citations(vectara2) -> None: summary = res.response assert "https://www.paulgraham.com/worked.html" in summary assert re.search(r"\[\d+\]", summary) + + +def test_chat(vectara2) -> None: + # Test chat initialization + chat_engine = vectara2.as_chat_engine( + reranker="chain", + rerank_k=30, + rerank_chain=[{"type": "slingshot"}, {"type": "mmr", "diversity_bias": 0.2}], + ) + res = chat_engine.chat("What grad schools did Paul apply to?") + summary = res.response + + assert all(s in summary.lower() for s in ["mit", "yale", "harvard"]) + assert res.metadata["fcs"] > 0 + chat_id = chat_engine.conv_id + assert chat_id is not None + + # Test chat follow up + res = chat_engine.chat("What did he learn at the graduate school he selected?") + summary = res.response + + assert "learn" in summary.lower() + assert "harvard" in summary.lower() + assert res.metadata["fcs"] > 0 + assert chat_engine.conv_id == chat_id + + # Test chat follow up with streaming + res = chat_engine.stream_chat( + "How did attending graduate school help him in his career?" + ) + summary = str(res) + + assert len(res.source_nodes) > 0 + assert chat_engine.conv_id == chat_id + + # Test chat initialization with streaming + chat_engine = vectara2.as_chat_engine( + reranker="chain", + rerank_k=30, + rerank_chain=[ + {"type": "slingshot", "cutoff": 0.25}, + {"type": "mmr", "diversity_bias": 0.2}, + ], + ) + res = chat_engine.stream_chat("How did Paul feel when Yahoo bought his company?") + summary = str(res) + + assert "yahoo" in summary.lower() + assert "felt" in summary.lower() + assert chat_engine._retriever._conv_id is not None + assert chat_engine._retriever._conv_id != chat_id + assert len(res.source_nodes) > 0 + + +@pytest.fixture() +def vectara3(): + nodes = get_nodes() + try: + vectara3 = VectaraIndex() + vectara3.add_nodes( + nodes, + document_id="doc_1", + document_metadata={"author": "Vectara", "title": "LlamaIndex Integration"}, + corpus_key="llamaindex-testing-2", + ) + except ValueError: + pytest.skip("Missing Vectara credentials, skipping test") + + yield vectara3 + + # Tear down code + for id in vectara3.doc_ids: + vectara3.delete_ref_doc(id, corpus_key="llamaindex-testing-2") + + +def test_simple_retrieval_with_nodes(vectara3) -> None: + nodes = get_nodes() + qe = vectara3.as_retriever( + similarity_top_k=1, n_sentences_before=0, n_sentences_after=0 + ) + res = qe.retrieve("Find me something different") + assert len(res) == 1 + assert res[0].node.metadata["author"] == "Vectara" + assert res[0].node.metadata["title"] == "LlamaIndex Integration" + assert res[0].node.get_content() == nodes[1].text_resource.text + + +def test_filter_with_nodes(vectara3) -> None: + nodes = get_nodes() + qe = vectara3.as_retriever( + similarity_top_k=2, + n_sentences_before=0, + n_sentences_after=0, + lambda_val=[0.2, 0.01], + filter=["", "doc.author = 'Vectara' AND part.test_score > 10"], + ) + + res = qe.retrieve("How will I look when I'm older?") + assert len(res) == 2 + assert "look as good you will not" in res[0].node.get_content() + assert "look as good you will not" in res[1].node.get_content() + assert res[0].node.get_content() != res[1].node.get_content() diff --git a/llama-index-integrations/llms/llama-index-llms-anthropic/README.md b/llama-index-integrations/llms/llama-index-llms-anthropic/README.md index 8199b08deb255..477a6e1b07b04 100644 --- a/llama-index-integrations/llms/llama-index-llms-anthropic/README.md +++ b/llama-index-integrations/llms/llama-index-llms-anthropic/README.md @@ -19,14 +19,11 @@ Anthropic is an AI research company focused on developing advanced language mode ### Basic Usage ```py +import os + from llama_index.llms.anthropic import Anthropic from llama_index.core import Settings -tokenizer = Anthropic().tokenizer -Settings.tokenizer = tokenizer - -# Call complete with a prompt -import os os.environ["ANTHROPIC_API_KEY"] = "YOUR ANTHROPIC API KEY" from llama_index.llms.anthropic import Anthropic @@ -36,6 +33,8 @@ from llama_index.llms.anthropic import Anthropic # llm = Anthropic(api_key="") llm = Anthropic(model="claude-3-opus-20240229") +Settings.tokenizer = llm.tokenizer + resp = llm.complete("Paul Graham is ") print(resp) diff --git a/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/base.py b/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/base.py index 230585eac35a2..b6871757fc018 100644 --- a/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/base.py +++ b/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/base.py @@ -1,4 +1,3 @@ -import json from typing import ( Any, Callable, @@ -36,6 +35,7 @@ stream_chat_to_completion_decorator, ) from llama_index.core.llms.function_calling import FunctionCallingLLM, ToolSelection +from llama_index.core.llms.utils import parse_partial_json from llama_index.core.types import BaseOutputParser, PydanticProgramMode from llama_index.llms.bedrock_converse.utils import ( bedrock_modelname_to_context_size, @@ -288,6 +288,10 @@ def _get_content_and_tool_calls( if text := content_block.get("text", None): text_content += text if tool_usage := content_block.get("toolUse", None): + if "toolUseId" not in tool_usage: + tool_usage["toolUseId"] = content_block["toolUseId"] + if "name" not in tool_usage: + tool_usage["name"] = content_block["name"] tool_calls.append(tool_usage) if tool_result := content_block.get("toolResult", None): for tool_result_content in tool_result["content"]: @@ -302,15 +306,13 @@ def _get_content_and_tool_calls( def chat(self, messages: Sequence[ChatMessage], **kwargs: Any) -> ChatResponse: # convert Llama Index messages to AWS Bedrock Converse messages converse_messages, system_prompt = messages_to_converse_messages(messages) - if len(system_prompt) > 0 or self.system_prompt is None: - self.system_prompt = system_prompt all_kwargs = self._get_all_kwargs(**kwargs) # invoke LLM in AWS Bedrock Converse with retry response = converse_with_retry( client=self._client, messages=converse_messages, - system_prompt=self.system_prompt, + system_prompt=system_prompt, max_retries=self.max_retries, stream=False, guardrail_identifier=self.guardrail_identifier, @@ -349,15 +351,13 @@ def stream_chat( ) -> ChatResponseGen: # convert Llama Index messages to AWS Bedrock Converse messages converse_messages, system_prompt = messages_to_converse_messages(messages) - if len(system_prompt) > 0 or self.system_prompt is None: - self.system_prompt = system_prompt all_kwargs = self._get_all_kwargs(**kwargs) # invoke LLM in AWS Bedrock Converse with retry response = converse_with_retry( client=self._client, messages=converse_messages, - system_prompt=self.system_prompt, + system_prompt=system_prompt, max_retries=self.max_retries, stream=True, guardrail_identifier=self.guardrail_identifier, @@ -394,7 +394,7 @@ def gen() -> ChatResponseGen: raw=response, ) elif content_block_start := chunk.get("contentBlockStart"): - tool_use = content_block_start["toolUse"] + tool_use = content_block_start["start"]["toolUse"] content = join_two_dicts(content, tool_use) ( _, @@ -431,8 +431,6 @@ async def achat( ) -> ChatResponse: # convert Llama Index messages to AWS Bedrock Converse messages converse_messages, system_prompt = messages_to_converse_messages(messages) - if len(system_prompt) > 0 or self.system_prompt is None: - self.system_prompt = system_prompt all_kwargs = self._get_all_kwargs(**kwargs) # invoke LLM in AWS Bedrock Converse with retry @@ -440,7 +438,7 @@ async def achat( session=self._asession, config=self._config, messages=converse_messages, - system_prompt=self.system_prompt, + system_prompt=system_prompt, max_retries=self.max_retries, stream=False, guardrail_identifier=self.guardrail_identifier, @@ -479,8 +477,6 @@ async def astream_chat( ) -> ChatResponseAsyncGen: # convert Llama Index messages to AWS Bedrock Converse messages converse_messages, system_prompt = messages_to_converse_messages(messages) - if len(system_prompt) > 0 or self.system_prompt is None: - self.system_prompt = system_prompt all_kwargs = self._get_all_kwargs(**kwargs) # invoke LLM in AWS Bedrock Converse with retry @@ -488,7 +484,7 @@ async def astream_chat( session=self._asession, config=self._config, messages=converse_messages, - system_prompt=self.system_prompt, + system_prompt=system_prompt, max_retries=self.max_retries, stream=True, guardrail_identifier=self.guardrail_identifier, @@ -525,7 +521,7 @@ async def gen() -> ChatResponseAsyncGen: raw=chunk, ) elif content_block_start := chunk.get("contentBlockStart"): - tool_use = content_block_start["toolUse"] + tool_use = content_block_start["start"]["toolUse"] content = join_two_dicts(content, tool_use) ( _, @@ -624,11 +620,17 @@ def get_tool_calls_from_response( or "name" not in tool_call ): raise ValueError("Invalid tool call.") - argument_dict = ( - json.loads(tool_call["input"]) - if isinstance(tool_call["input"], str) - else tool_call["input"] - ) + + # handle empty inputs + argument_dict = {} + if tool_call["input"] and isinstance(tool_call["input"], str): + # TODO parse_partial_json is not perfect + try: + argument_dict = parse_partial_json(tool_call["input"]) + except ValueError: + argument_dict = {} + elif isinstance(tool_call["input"], dict): + argument_dict = tool_call["input"] tool_selections.append( ToolSelection( diff --git a/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/utils.py b/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/utils.py index 35c5342570e90..6b5988d573692 100644 --- a/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/utils.py +++ b/llama-index-integrations/llms/llama-index-llms-bedrock-converse/llama_index/llms/bedrock_converse/utils.py @@ -1,3 +1,4 @@ +import json import logging from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple from tenacity import ( @@ -208,7 +209,20 @@ def messages_to_converse_messages( assert "toolUseId" in tool_call, f"`toolUseId` not found in {tool_call}" assert "input" in tool_call, f"`input` not found in {tool_call}" assert "name" in tool_call, f"`name` not found in {tool_call}" - content.append({"toolUse": tool_call}) + tool_input = ( + json.loads(tool_call["input"]) + if isinstance(tool_call["input"], str) + else tool_call["input"] + ) + content.append( + { + "toolUse": { + "input": tool_input, + "toolUseId": tool_call["toolUseId"], + "name": tool_call["name"], + } + } + ) if len(content) > 0: converse_messages.append( { diff --git a/llama-index-integrations/llms/llama-index-llms-bedrock-converse/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-bedrock-converse/pyproject.toml index 4b9d6b6f07bcf..643bae989dde6 100644 --- a/llama-index-integrations/llms/llama-index-llms-bedrock-converse/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-bedrock-converse/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-llms-bedrock-converse" readme = "README.md" -version = "0.4.3" +version = "0.4.5" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/.gitignore b/llama-index-integrations/llms/llama-index-llms-cortex/.gitignore new file mode 100644 index 0000000000000..1fb5e2874982c --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/.gitignore @@ -0,0 +1,156 @@ +llama_index/_static +.DS_Store +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +bin/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +etc/ +include/ +lib/ +lib64/ +parts/ +sdist/ +share/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +.ruff_cache + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints +notebooks/ + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ +pyvenv.cfg + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# Jetbrains +.idea +modules/ +*.swp + +# VsCode +.vscode + +# pipenv +Pipfile +Pipfile.lock + +# pyright +pyrightconfig.json + +#poetry +poetry.lock diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/BUILD b/llama-index-integrations/llms/llama-index-llms-cortex/BUILD new file mode 100644 index 0000000000000..0896ca890d8bf --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/BUILD @@ -0,0 +1,3 @@ +poetry_requirements( + name="poetry", +) diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/Makefile b/llama-index-integrations/llms/llama-index-llms-cortex/Makefile new file mode 100644 index 0000000000000..b9eab05aa3706 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/Makefile @@ -0,0 +1,17 @@ +GIT_ROOT ?= $(shell git rev-parse --show-toplevel) + +help: ## Show all Makefile targets. + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[33m%-30s\033[0m %s\n", $$1, $$2}' + +format: ## Run code autoformatters (black). + pre-commit install + git ls-files | xargs pre-commit run black --files + +lint: ## Run linters: pre-commit (black, ruff, codespell) and mypy + pre-commit install && git ls-files | xargs pre-commit run --show-diff-on-failure --files + +test: ## Run tests via pytest. + pytest tests + +watch-docs: ## Build and watch documentation. + sphinx-autobuild docs/ docs/_build/html --open-browser --watch $(GIT_ROOT)/llama_index/ diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/README.md b/llama-index-integrations/llms/llama-index-llms-cortex/README.md new file mode 100644 index 0000000000000..b2d524ff0b7fd --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/README.md @@ -0,0 +1,31 @@ +# LlamaIndex Llms Integration: Cortex + +## Overview + +Integrate with Snowflake Cortex API. + +## Installation + +```bash +pip install llama-index-llms-cortex +``` + +## Example + +```python +import os +from llama_index.llms.cortex import Cortex + + +llm = Cortex( + model="llama3.2-1b", + user=os.environ["YOUR_SF_USER"], + account=os.environ["YOUR_SF_ACCOUNT"], + private_key_file=os.environ["PATH_TO_SF_PRIVATE_KEY"], +) + +completion_response = llm.complete( + "write me a haiku about a snowflake", temperature=0.0 +) +print(completion_response) +``` diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/BUILD b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/BUILD new file mode 100644 index 0000000000000..db46e8d6c978c --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/BUILD @@ -0,0 +1 @@ +python_sources() diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/__init__.py b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/__init__.py new file mode 100644 index 0000000000000..ad4ea70b0f397 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/__init__.py @@ -0,0 +1,4 @@ +from llama_index.llms.cortex.base import Cortex + + +__all__ = ["Cortex"] diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/base.py b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/base.py new file mode 100644 index 0000000000000..3cc4d092dbf56 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/base.py @@ -0,0 +1,377 @@ +import json +import os +from typing import Any, Dict, Optional, Sequence + +import aiohttp +import requests +from llama_index.core.base.llms.types import MessageRole +from llama_index.core.bridge.pydantic import Field +from llama_index.core.llms import ( + ChatMessage, + ChatResponse, + ChatResponseAsyncGen, + ChatResponseGen, + CompletionResponse, + CompletionResponseAsyncGen, + CompletionResponseGen, + CustomLLM, + LLMMetadata, +) +from llama_index.core.llms.callbacks import ( + CallbackManager, + llm_chat_callback, + llm_completion_callback, +) +from llama_index.llms.cortex.utils import generate_sf_jwt + +DEFAULT_CONTEXT_WINDOW = 128000 +DEFAULT_MAX_TOKENS = 4096 +DEFAULT_MODEL = "llama3.2-1b" +DEFAULT_TEMP = 0.0 +DEFAULT_TOP_P = 1.0 + + +class Cortex(CustomLLM): + """ + Cortex LLM. + + Examples: + `pip install llama-index-llms-cortex` + + ```python + from llama_index.llms.cortex import Cortex + + + llm = Cortex( + model="llama3.2-1b", + user=your_sf_user, + account=your_sf_account, + private_key_file=your_sf_private_key_file + ) + + completion_response = llm.complete( + "write me a haiku about a snowflake", + temperature=0.0 + ) + print(completion_response) + ``` + """ + + user: str = Field( + description="Snowflake user.", + default=os.environ.get("SNOWFLAKE_USERNAME", None), + ) + account: str = Field( + description="Fully qualified snowflake account specified as -.", + default=os.environ.get("SNOWFLAKE_ACCOUNT", None), + ) + private_key_file: str = Field( + description="Filepath to snowflake private key file.", + default=os.environ.get("SNOWFLAKE_KEY_FILE", None), + ) + context_window: int = Field( + default=DEFAULT_CONTEXT_WINDOW, + description="The maximum number of context tokens for the model.", + ) + max_tokens: int = Field( + default=DEFAULT_MAX_TOKENS, + description="The maximum number of tokens to generate in response.", + ) + model: str = Field(default=DEFAULT_MODEL, description="The model to use.") + + def __init__( + self, + model: str = DEFAULT_MODEL, + user: Optional[str] = None, + account: Optional[str] = None, + private_key_file: Optional[str] = None, + callback_manager: Optional[CallbackManager] = None, + additional_kwargs: Optional[Dict[str, Any]] = None, + ) -> None: + super().__init__( + additional_kwargs=additional_kwargs or {}, + callback_manager=callback_manager, + ) + self.model = model + self.user = user or os.environ.get("SNOWFLAKE_USERNAME", None) + self.account = account or os.environ.get("SNOWFLAKE_ACCOUNT", None) + self.private_key_file = private_key_file or os.environ.get( + "SNOWFLAKE_KEY_FILE", None + ) + + @property + def metadata(self) -> LLMMetadata: + """Get LLM metadata.""" + return LLMMetadata( + # NOTE: no method exists to get model + # context window/max output tokens size + context_window=self.context_window, + num_output=self.max_tokens, + is_chat_model=True, + model_name=self.model, + is_function_calling_model=False, + ) + + @property + def api_base(self) -> str: + return f"https://{self.account}.snowflakecomputing.com/api/v2/cortex/inference:complete" + + def _make_completion_payload( + self, prompt: str, formatted: bool = False, **kwargs: Any + ) -> dict: + """Create a payload for the completions.""" + temperature = kwargs.pop("temperature", DEFAULT_TEMP) + top_p = kwargs.pop("top_p", DEFAULT_TOP_P) + max_tokens = kwargs.pop("max_tokens", self.max_tokens) + if not formatted: + prompt = prompt.format(**kwargs) + jwt = generate_sf_jwt(self.account, self.user, self.private_key_file) + return { + "url": self.api_base, + "headers": { + "X-Snowflake-Authorization-Token-Type": "KEYPAIR_JWT", + "Authorization": f"Bearer {jwt}", + "Content-Type": "application/json", + "Accept": "application/json, text/event-stream", + }, + "json": { + "model": self.model, + "messages": [{"content": prompt}], + "top_p": top_p, + "temperature": temperature, + "max_tokens": max_tokens, + }, + } + + def _complete( + self, prompt: str, formatted: bool = False, **kwargs: Any + ) -> CompletionResponse: + api_response = requests.post( + **self._make_completion_payload(prompt, formatted, **kwargs), stream=True + ) + responses = [] + for line in api_response.iter_lines(decode_unicode=True): + if line: + responses.append(json.loads(line[len("data: ") :])) + return CompletionResponse( + text="".join(r["choices"][0]["delta"].get("content", "") for r in responses) + ) + + @llm_completion_callback() + def complete( + self, prompt: str, formatted: bool = False, **kwargs: Any + ) -> CompletionResponse: + return self._complete(prompt, formatted, **kwargs) + + async def _acomplete(self, prompt, formatted=False, **kwargs) -> CompletionResponse: + async with aiohttp.ClientSession() as session: + api_response = await session.post( + **self._make_completion_payload(prompt, formatted, **kwargs) + ) + responses = [] + async for line in api_response.content: + line = line.decode() + if line and (line != "\n"): + x = line.strip()[len("data: ") :].strip("\n") + responses.append(json.loads(x)) + return CompletionResponse( + text="".join( + r["choices"][0]["delta"].get("content", "") for r in responses + ) + ) + + @llm_completion_callback() + async def acomplete(self, prompt, formatted=False, **kwargs) -> CompletionResponse: + return await self._acomplete(prompt, formatted, **kwargs) + + def _stream_complete( + self, prompt, formatted=False, **kwargs + ) -> CompletionResponseGen: + api_response = requests.post( + **self._make_completion_payload(prompt, formatted, **kwargs), stream=True + ) + + def gen() -> CompletionResponseGen: + text = "" + for line in api_response.iter_lines(): + if line: + line_json = json.loads(line[len("data: ") :]) + line_delta = line_json["choices"][0]["delta"].get("content", "") + text += line_delta + yield CompletionResponse(text=text, delta=line_delta, raw=line_json) + + return gen() + + @llm_completion_callback() + def stream_complete( + self, prompt, formatted=False, **kwargs + ) -> CompletionResponseGen: + return self._stream_complete(prompt, formatted, **kwargs) + + async def _astream_complete( + self, prompt, formatted=False, **kwargs + ) -> CompletionResponseAsyncGen: + async with aiohttp.ClientSession() as session: + api_response = await session.post( + **self._make_completion_payload(prompt, formatted, **kwargs) + ) + # buffer data + lines = [] + async for line in api_response.content: + line = line.decode() + if line and (line != "\n"): + lines.append(line) + + async def gen() -> CompletionResponseAsyncGen: + text = "" + for line in lines: + line_json = json.loads(line[len("data: ") :].strip("\n")) + line_delta = line_json["choices"][0]["delta"].get("content", "") + text += line_delta + yield CompletionResponse(text=text, delta=line_delta, raw=line_json) + + return gen() + + @llm_completion_callback() + async def astream_complete( + self, prompt, formatted=False, **kwargs + ) -> CompletionResponseAsyncGen: + return await self._astream_complete(prompt, formatted, **kwargs) + + def _make_chat_payload( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> dict: + """Create a payload for a chat.""" + temperature = kwargs.pop("temperature", DEFAULT_TEMP) + top_p = kwargs.pop("top_p", DEFAULT_TOP_P) + max_tokens = kwargs.pop("max_tokens", self.max_tokens) + jwt = generate_sf_jwt(self.account, self.user, self.private_key_file) + return { + "url": self.api_base, + "headers": { + "X-Snowflake-Authorization-Token-Type": "KEYPAIR_JWT", + "Authorization": f"Bearer {jwt}", + "Content-Type": "application/json", + "Accept": "application/json, text/event-stream", + }, + "json": { + "model": self.model, + "messages": [ + {"role": message.role.lower(), "content": message.content} + for message in messages + ], + "top_p": top_p, + "temperature": temperature, + "max_tokens": max_tokens, + }, + } + + def _chat(self, messages: Sequence[ChatMessage], **kwargs: Any) -> ChatResponse: + api_response = requests.post( + **self._make_chat_payload(messages, **kwargs), stream=True + ) + responses = [] + for line in api_response.iter_lines(decode_unicode=True): + if line: + responses.append(json.loads(line[len("data: ") :])) + return ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, + content="".join( + r["choices"][0]["delta"].get("content", "") for r in responses + ), + ), + ) + + @llm_chat_callback() + def chat(self, messages: Sequence[ChatMessage], **kwargs: Any) -> ChatResponse: + return self._chat(messages, **kwargs) + + async def _achat( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> ChatResponse: + async with aiohttp.ClientSession() as session: + api_response = await session.post( + **self._make_chat_payload(messages, **kwargs) + ) + responses = [] + async for line in api_response.content: + line = line.decode() + if line and (line != "\n"): + responses.append(json.loads(line[len("data: ") :].strip("\n"))) + return ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, + content="".join( + r["choices"][0]["delta"].get("content", "") for r in responses + ), + ), + ) + + @llm_chat_callback() + async def achat( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> ChatResponse: + return await self._achat(messages, **kwargs) + + def _stream_chat( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> ChatResponseGen: + api_response = requests.post( + **self._make_chat_payload(messages, **kwargs), stream=True + ) + + def gen() -> ChatResponseGen: + text = "" + for line in api_response.iter_lines(): + if line: + line_json = json.loads(line[len("data: ") :]) + line_delta = line_json["choices"][0]["delta"].get("content", "") + text += line_delta + yield ChatResponse( + message=ChatMessage(role=MessageRole.ASSISTANT, content=text), + delta=line_delta, + raw=line_json, + ) + + return gen() + + @llm_chat_callback() + def stream_chat( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> ChatResponseGen: + return self._stream_chat(messages, **kwargs) + + async def _astream_chat( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> ChatResponseAsyncGen: + async with aiohttp.ClientSession() as session: + api_response = await session.post( + **self._make_chat_payload(messages, **kwargs) + ) + # buffer data + lines = [] + async for line in api_response.content: + line = line.decode() + if line and (line != "\n"): + lines.append(line) + + async def gen() -> ChatResponseAsyncGen: + text = "" + for line in lines: + line_json = json.loads(line[len("data: ") :].strip("\n")) + line_delta = line_json["choices"][0]["delta"].get("content", "") + text += line_delta + yield ChatResponse( + message=ChatMessage(role=MessageRole.ASSISTANT, content=text), + delta=line_delta, + raw=line_json, + ) + + return gen() + + @llm_chat_callback() + async def astream_chat( + self, messages: Sequence[ChatMessage], **kwargs: Any + ) -> ChatResponseAsyncGen: + return await self._astream_chat(messages, **kwargs) diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/utils.py b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/utils.py new file mode 100644 index 0000000000000..c1f6f3336e7ce --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/llama_index/llms/cortex/utils.py @@ -0,0 +1,68 @@ +import base64 +import hashlib +from datetime import datetime, timedelta, timezone + +import jwt +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.serialization import ( + Encoding, + PublicFormat, + load_pem_private_key, +) + + +def generate_sf_jwt(sf_account: str, sf_user: str, sf_private_key_filepath: str) -> str: + """ + Generate a JSON Web Token for a Snowflake user. + + Args: + sf_account: Fully qualified snowflake account name (ORG_ID-ACCOUNT_ID). + sf_user: User to generate token for. + sf_private_key_filepath: Path to user's private key. + + Returns: + str: JSON Web Token + """ + with open(sf_private_key_filepath, "rb") as pem_in: + pemlines = pem_in.read() + # TODO: Add support for encrypted private keys + private_key = load_pem_private_key(pemlines, None, default_backend()) + + # Get the raw bytes of the public key. + public_key_raw = private_key.public_key().public_bytes( + Encoding.DER, PublicFormat.SubjectPublicKeyInfo + ) + + # Get the sha256 hash of the raw bytes. + sha256hash = hashlib.sha256() + sha256hash.update(public_key_raw) + + # Base64-encode the value and prepend the prefix 'SHA256:'. + public_key_fp = "SHA256:" + base64.b64encode(sha256hash.digest()).decode("utf-8") + + # Use uppercase for the account identifier and user name. + account = sf_account.upper() + user = sf_user.upper() + qualified_username = account + "." + user + + # Get the current time in order to specify the time when the JWT was issued and the expiration time of the JWT. + now = datetime.now(timezone.utc) + + # Specify the length of time during which the JWT will be valid. You can specify at most 1 hour. + lifetime = timedelta(minutes=59) + + # Create the payload for the token. + payload = { + # Set the issuer to the fully qualified username concatenated with the public key fingerprint (calculated in the previous step). + "iss": qualified_username + "." + public_key_fp, + # Set the subject to the fully qualified username. + "sub": qualified_username, + # Set the issue time to now. + "iat": now, + # Set the expiration time, based on the lifetime specified for this object. + "exp": now + lifetime, + } + + # Generate the JWT. private_key is the private key that you read from the private key file in the previous step when you generated the public key fingerprint. + encoding_algorithm = "RS256" + return jwt.encode(payload, key=private_key, algorithm=encoding_algorithm) diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-cortex/pyproject.toml new file mode 100644 index 0000000000000..f6951bd30fbe1 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/pyproject.toml @@ -0,0 +1,59 @@ +[build-system] +build-backend = "poetry.core.masonry.api" +requires = ["poetry-core"] + +[tool.codespell] +check-filenames = true +check-hidden = true +# Feel free to un-skip examples, and experimental, you will just need to +# work through many typos (--write-changes and --interactive will help) +skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb" + +[tool.llamahub] +contains_example = false +import_path = "llama_index.llms.cortex" + +[tool.llamahub.class_authors] +Cortex = "q-maze" + +[tool.mypy] +disallow_untyped_defs = true +# Remove venv skip when integrated with pre-commit +exclude = ["_static", "build", "examples", "notebooks", "venv"] +ignore_missing_imports = true +python_version = "3.8" + +[tool.poetry] +authors = ["Quinton Mays "] +description = "llama-index llms cortex integration" +license = "MIT" +name = "llama-index-llms-cortex" +packages = [{include = "llama_index/"}] +readme = "README.md" +version = "0.1.0" + +[tool.poetry.dependencies] +python = ">=3.9,<4.0" +llama-index-core = "^0.12.0" +pyjwt = "^2.10.1" +aiohttp = "^3.11.11" +cryptography = ">=44.0.0" + +[tool.poetry.group.dev.dependencies] +black = {extras = ["jupyter"], version = "<=23.9.1,>=23.7.0"} +codespell = {extras = ["toml"], version = ">=v2.2.6"} +ipython = "8.10.0" +jupyter = "^1.0.0" +mypy = "0.991" +pre-commit = "3.2.0" +pylint = "2.15.10" +pytest = "7.2.1" +pytest-mock = "3.11.1" +ruff = "0.0.292" +tree-sitter-languages = "^1.8.0" +types-Deprecated = ">=0.1.0" +types-PyYAML = "^6.0.12.12" +types-protobuf = "^4.24.0.4" +types-redis = "4.5.5.0" +types-requests = "2.28.11.8" # TODO: unpin when mypy>0.991 +types-setuptools = "67.1.0.0" diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/tests/BUILD b/llama-index-integrations/llms/llama-index-llms-cortex/tests/BUILD new file mode 100644 index 0000000000000..dabf212d7e716 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/tests/BUILD @@ -0,0 +1 @@ +python_tests() diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/tests/__init__.py b/llama-index-integrations/llms/llama-index-llms-cortex/tests/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_integration_cortex.py b/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_integration_cortex.py new file mode 100644 index 0000000000000..d1e45b1f01a26 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_integration_cortex.py @@ -0,0 +1,315 @@ +import inspect +import os +from typing import AsyncIterator +from unittest import mock +from unittest.mock import AsyncMock, Mock, patch + +import pytest +from llama_index.core.base.llms.types import ( + ChatMessage, + ChatResponse, + CompletionResponse, + MessageRole, +) +from llama_index.llms.cortex import Cortex + + +@pytest.fixture() +def cortex_llm() -> Cortex: + user = os.getenv("SNOWFLAKE_USERNAME") + account = os.getenv("SNOWFLAKE_ACCOUNT") + key_file = os.getenv("SNOWFLAKE_KEY_FILE") + if user is None or account is None or key_file is None: + pytest.skip("Environment variables not set.") + return Cortex(user=user, account=account, private_key_file=key_file) + + +def test_complete(cortex_llm): + response = cortex_llm.complete("hello", temperature=0, max_tokens=2) + assert isinstance(response, CompletionResponse) + assert "hello" in response.text.lower() + + +@pytest.mark.asyncio() +async def test_acomplete(cortex_llm): + response = await cortex_llm.acomplete("hello") + assert isinstance(response, CompletionResponse) + assert "hello" in response.text.lower() + + +def test_stream_complete(cortex_llm): + stream = cortex_llm.stream_complete("hello", temperature=0, max_tokens=2) + assert inspect.isgenerator(stream), "stream_complete should return a generator" + + full_response = "" + for chunk in stream: + assert isinstance(chunk, CompletionResponse) + full_response += chunk.delta + print(chunk.delta, end="", flush=True) + + assert full_response.strip() + + +@pytest.mark.asyncio() +async def test_astream_complete(cortex_llm): + stream = await cortex_llm.astream_complete("hello") + assert isinstance(stream, AsyncIterator) + + full_response = "" + async for chunk in stream: + assert isinstance(chunk, CompletionResponse) + full_response += chunk.delta + print(chunk.delta, end="", flush=True) + + assert full_response.strip() + + +def test_chat(cortex_llm): + messages_dict = [ + {"role": "system", "content": "You are a poet."}, + {"role": "user", "content": "Write me a haiky about snowflakes."}, + ] + messages = [ChatMessage(**msg) for msg in messages_dict] + response = cortex_llm.chat(messages) + assert isinstance(response, ChatResponse) + assert response.message.content.strip() + + +@pytest.mark.asyncio() +async def test_achat(cortex_llm): + messages = [ + ChatMessage(role=MessageRole.SYSTEM, content="You are a helpful assistant."), + ChatMessage( + role=MessageRole.USER, + content="What is the largest planet in our solar system?", + ), + ] + response = await cortex_llm.achat(messages) + assert isinstance(response, ChatResponse) + assert response.message.content.strip() + + +def test_stream_chat(cortex_llm): + messages_dict = [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": "Name the first 5 elements in the periodic table."}, + ] + messages = [ChatMessage(**msg) for msg in messages_dict] + stream = cortex_llm.stream_chat(messages) + assert inspect.isgenerator(stream) + + full_response = "" + for chunk in stream: + assert isinstance(chunk, ChatResponse) + full_response += chunk.delta + print(chunk.delta, end="", flush=True) + + assert full_response.strip() + + +@pytest.mark.asyncio() +async def test_astream_chat(cortex_llm): + messages = [ + ChatMessage(role=MessageRole.SYSTEM, content="You are a helpful assistant."), + ChatMessage( + role=MessageRole.USER, + content="Name the first 5 elements in the periodic table.", + ), + ] + stream = await cortex_llm.astream_chat(messages) + assert isinstance(stream, AsyncIterator) + + full_response = "" + async for chunk in stream: + assert isinstance(chunk, ChatResponse) + full_response += chunk.delta + print(chunk.delta, end="", flush=True) + + assert full_response.strip() + + +@pytest.fixture() +def mock_cortex_llm() -> Cortex: + return Cortex( + user="example", + account="my_sf_account", + private_key_file="/dummy/path/to/key.p8", + ) + + +def test_complete_mock(mock_cortex_llm): + with mock.patch.object(mock_cortex_llm, "_complete") as mock_complete: + mock_complete.return_value = CompletionResponse( + text="Mocked completion response", raw={} + ) + + response = mock_cortex_llm.complete("Test prompt") + + assert isinstance(response, CompletionResponse) + assert response.text == "Mocked completion response" + mock_complete.assert_called_once() + + +@pytest.mark.asyncio() +async def test_acomplete_mock(mock_cortex_llm): + with mock.patch.object(mock_cortex_llm, "_acomplete") as mock_acomplete: + mock_acomplete.return_value = CompletionResponse( + text="Mocked async completion response", raw={} + ) + + response = await mock_cortex_llm.acomplete("Async test prompt", formatted=True) + + assert isinstance(response, CompletionResponse) + assert response.text == "Mocked async completion response" + mock_acomplete.assert_called_once() + + +def test_stream_complete_mock(mock_cortex_llm): + with mock.patch.object(mock_cortex_llm, "_stream_complete") as mock_stream_complete: + mock_stream_complete.return_value = [ + CompletionResponse(delta="Mocked ", text="Mocked "), + CompletionResponse(delta="streamed ", text="Mocked streamed "), + CompletionResponse(delta="completion", text="Mocked streamed completion"), + ] + + stream = mock_cortex_llm._stream_complete("Test prompt") + full_response = stream[-1].text + + assert full_response == "Mocked streamed completion" + mock_stream_complete.assert_called_once() + + +@pytest.mark.asyncio() +async def test_astream_complete_mock(mock_cortex_llm): + prompt = "Test prompt" + mock_astream_complete = AsyncMock( + return_value=[ + CompletionResponse(delta="Mocked ", text="Mocked "), + CompletionResponse(delta="streamed ", text="Mocked streamed "), + CompletionResponse(delta="completion", text="Mocked streamed completion"), + ] + ) + + with patch.object(mock_cortex_llm, "_astream_complete", mock_astream_complete): + stream = await mock_cortex_llm._astream_complete(prompt) + full_response = stream[-1].text + + assert full_response == "Mocked streamed completion" + mock_astream_complete.assert_called_once_with(prompt) + + +def test_chat_mock(mock_cortex_llm): + with mock.patch.object(mock_cortex_llm, "_chat") as mock_chat: + mock_chat.return_value = ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked chat response" + ), + raw={}, + ) + + messages = [ChatMessage(role=MessageRole.USER, content="Test message")] + response = mock_cortex_llm.chat(messages) + + assert isinstance(response, ChatResponse) + assert response.message.content == "Mocked chat response" + assert response.message.role == MessageRole.ASSISTANT + mock_chat.assert_called_once() + + +@pytest.mark.asyncio() +async def test_achat_mock(mock_cortex_llm): + with mock.patch.object(mock_cortex_llm, "_achat") as mock_achat: + mock_achat.return_value = ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked async chat response" + ), + raw={}, + ) + + messages = [ChatMessage(role=MessageRole.USER, content="Async test")] + response = await mock_cortex_llm.achat(messages) + + assert isinstance(response, ChatResponse) + assert response.message.content == "Mocked async chat response" + assert response.message.role == MessageRole.ASSISTANT + mock_achat.assert_called_once() + + +def test_stream_chat_mock(mock_cortex_llm): + messages = [ + ChatMessage(role=MessageRole.USER, content="Test message 1"), + ChatMessage(role=MessageRole.USER, content="Test message 2"), + ] + mock_stream_chat = Mock( + return_value=[ + ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked ", raw={} + ), + delta="Mocked ", + raw={}, + ), + ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked streamed ", raw={} + ), + delta="streamed ", + raw={}, + ), + ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked streamed chat", raw={} + ), + delta="chat", + raw={}, + ), + ] + ) + + with patch.object(mock_cortex_llm, "_stream_chat", mock_stream_chat): + stream = mock_cortex_llm._stream_chat(messages) + # full_response = "".join(chunk.message.content for chunk in stream) + full_response = stream[-1].message.content + + assert full_response == "Mocked streamed chat" + mock_stream_chat.assert_called_once_with(messages) + + +@pytest.mark.asyncio() +async def test_astream_chat_mock(mock_cortex_llm): + messages = [ + ChatMessage(role=MessageRole.USER, content="Test message 1"), + ChatMessage(role=MessageRole.USER, content="Test message 2"), + ] + mock_astream_chat = AsyncMock( + return_value=[ + ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked ", raw={} + ), + delta="Mocked ", + raw={}, + ), + ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked streamed ", raw={} + ), + delta="streamed ", + raw={}, + ), + ChatResponse( + message=ChatMessage( + role=MessageRole.ASSISTANT, content="Mocked streamed chat", raw={} + ), + delta="chat", + raw={}, + ), + ] + ) + + with patch.object(mock_cortex_llm, "_astream_chat", mock_astream_chat): + stream = await mock_cortex_llm._astream_chat(messages) + full_response = stream[-1].message.content + + assert full_response == "Mocked streamed chat" + mock_astream_chat.assert_called_once_with(messages) diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_llms_cortex.py b/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_llms_cortex.py new file mode 100644 index 0000000000000..329470673c329 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_llms_cortex.py @@ -0,0 +1,7 @@ +from llama_index.core.base.llms.base import BaseLLM +from llama_index.llms.cortex import Cortex + + +def test_embedding_class(): + names_of_base_classes = [b.__name__ for b in Cortex.__mro__] + assert BaseLLM.__name__ in names_of_base_classes diff --git a/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_utils.py b/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_utils.py new file mode 100644 index 0000000000000..2c47b455b8431 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-cortex/tests/test_utils.py @@ -0,0 +1,28 @@ +from unittest.mock import mock_open, patch + +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.primitives import serialization + +from llama_index.llms.cortex.utils import generate_sf_jwt + + +def test_generate_sf_jwt(): + sf_account = "MY_SNOWFLAKE_ORG-MY_SNOWFLAKE_ACCOUNT" + sf_user = "MY_SNOWFLAKE_USER" + + private_key_obj = rsa.generate_private_key(public_exponent=65537, key_size=2048) + + # Serialize the private key to PEM format + private_key = private_key_obj.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption(), + ) + + with patch("builtins.open", mock_open(read_data=private_key)) as mock_file: + mock_file.return_value.read.return_value = ( + private_key # Ensure binary data is returned + ) + token = generate_sf_jwt(sf_account, sf_user, "dummy_key_file.pem") + + assert isinstance(token, str) diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/.gitignore b/llama-index-integrations/llms/llama-index-llms-deepseek/.gitignore new file mode 100644 index 0000000000000..990c18de22908 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/.gitignore @@ -0,0 +1,153 @@ +llama_index/_static +.DS_Store +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +bin/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +etc/ +include/ +lib/ +lib64/ +parts/ +sdist/ +share/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +.ruff_cache + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints +notebooks/ + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ +pyvenv.cfg + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# Jetbrains +.idea +modules/ +*.swp + +# VsCode +.vscode + +# pipenv +Pipfile +Pipfile.lock + +# pyright +pyrightconfig.json diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/BUILD b/llama-index-integrations/llms/llama-index-llms-deepseek/BUILD new file mode 100644 index 0000000000000..0896ca890d8bf --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/BUILD @@ -0,0 +1,3 @@ +poetry_requirements( + name="poetry", +) diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/Makefile b/llama-index-integrations/llms/llama-index-llms-deepseek/Makefile new file mode 100644 index 0000000000000..b9eab05aa3706 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/Makefile @@ -0,0 +1,17 @@ +GIT_ROOT ?= $(shell git rev-parse --show-toplevel) + +help: ## Show all Makefile targets. + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[33m%-30s\033[0m %s\n", $$1, $$2}' + +format: ## Run code autoformatters (black). + pre-commit install + git ls-files | xargs pre-commit run black --files + +lint: ## Run linters: pre-commit (black, ruff, codespell) and mypy + pre-commit install && git ls-files | xargs pre-commit run --show-diff-on-failure --files + +test: ## Run tests via pytest. + pytest tests + +watch-docs: ## Build and watch documentation. + sphinx-autobuild docs/ docs/_build/html --open-browser --watch $(GIT_ROOT)/llama_index/ diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/README.md b/llama-index-integrations/llms/llama-index-llms-deepseek/README.md new file mode 100644 index 0000000000000..3a8b5a4a283c8 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/README.md @@ -0,0 +1,17 @@ +# LlamaIndex Llms Integration: DeepSeek + +This is the DeepSeek integration for LlamaIndex. Visit [DeepSeek](https://api-docs.deepseek.com/) for information on how to get an API key and which models are supported. + +## Installation + +```bash +pip install llama-index-llms-deepseek +``` + +## Usage + +```python +from llama_index.llms.deepseek import DeepSeek + +llm = DeepSeek(model="deepseek-chat", api_key="your-api-key") +``` diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/BUILD b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/BUILD new file mode 100644 index 0000000000000..db46e8d6c978c --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/BUILD @@ -0,0 +1 @@ +python_sources() diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/__init__.py b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/__init__.py new file mode 100644 index 0000000000000..6734547d90818 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/__init__.py @@ -0,0 +1,3 @@ +from llama_index.llms.deepseek.base import DeepSeek + +__all__ = ["DeepSeek"] diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/base.py b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/base.py new file mode 100644 index 0000000000000..f20f24d55b4ca --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/base.py @@ -0,0 +1,53 @@ +import os +from typing import Any, Optional + +from llama_index.llms.openai_like import OpenAILike +from llama_index.llms.deepseek.utils import get_context_window + + +class DeepSeek(OpenAILike): + """ + DeepSeek LLM. + + Examples: + `pip install llama-index-llms-deepseek` + + ```python + from llama_index.llms.deepseek import DeepSeek + + # Set up the DeepSeek class with the required model and API key + llm = DeepSeek(model="deepseek-chat", api_key="your_api_key") + + # Call the complete method with a query + response = llm.complete("Explain the importance of low latency LLMs") + + print(response) + ``` + """ + + def __init__( + self, + model: str, + api_key: Optional[str] = None, + api_base: str = "https://api.deepseek.com", + **openai_llm_kwargs: Any, + ) -> None: + api_key = api_key or os.environ.get("DEEPSEEK_API_KEY", None) + context_window = openai_llm_kwargs.pop( + "context_window", get_context_window(model) + ) + super().__init__( + model=model, + api_key=api_key, + api_base=api_base, + is_chat_model=openai_llm_kwargs.pop("is_chat_model", True), + is_function_calling_model=openai_llm_kwargs.pop( + "is_function_calling_model", True + ), + **openai_llm_kwargs, + ) + + @classmethod + def class_name(cls) -> str: + """Get class name.""" + return "DeepSeek" diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/utils.py b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/utils.py new file mode 100644 index 0000000000000..09f6cfcdeb518 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/llama_index/llms/deepseek/utils.py @@ -0,0 +1,8 @@ +DEEPSEEK_MODEL_TO_CONTEXT_WINDOW = { + "deepseek-chat": 64000, + "deepseek-reasoner": 64000, +} + + +def get_context_window(model: str) -> int: + return DEEPSEEK_MODEL_TO_CONTEXT_WINDOW.get(model, 64000) diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-deepseek/pyproject.toml new file mode 100644 index 0000000000000..e74051a5734b0 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/pyproject.toml @@ -0,0 +1,62 @@ +[build-system] +build-backend = "poetry.core.masonry.api" +requires = ["poetry-core"] + +[tool.codespell] +check-filenames = true +check-hidden = true +skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb" + +[tool.llamahub] +contains_example = false +import_path = "llama_index.llms.deepseek" + +[tool.llamahub.class_authors] +DeepSeek = "logan-markewich" + +[tool.mypy] +disallow_untyped_defs = true +exclude = ["_static", "build", "examples", "notebooks", "venv"] +ignore_missing_imports = true +python_version = "3.9" + +[tool.poetry] +authors = ["Logan Markewich "] +description = "llama-index llms deepseek integration" +exclude = ["**/BUILD"] +license = "MIT" +name = "llama-index-llms-deepseek" +readme = "README.md" +version = "0.1.0" + +[tool.poetry.dependencies] +python = ">=3.9,<4.0" +llama-index-llms-openai-like = "^0.3.3" + +[tool.poetry.group.dev.dependencies] +ipython = "8.10.0" +jupyter = "^1.0.0" +mypy = "0.991" +pre-commit = "3.2.0" +pylint = "2.15.10" +pytest = "7.2.1" +pytest-mock = "3.11.1" +ruff = "0.0.292" +tree-sitter-languages = "^1.8.0" +types-Deprecated = ">=0.1.0" +types-PyYAML = "^6.0.12.12" +types-protobuf = "^4.24.0.4" +types-redis = "4.5.5.0" +types-requests = "2.28.11.8" +types-setuptools = "67.1.0.0" + +[tool.poetry.group.dev.dependencies.black] +extras = ["jupyter"] +version = "<=23.9.1,>=23.7.0" + +[tool.poetry.group.dev.dependencies.codespell] +extras = ["toml"] +version = ">=v2.2.6" + +[[tool.poetry.packages]] +include = "llama_index/" diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/tests/BUILD b/llama-index-integrations/llms/llama-index-llms-deepseek/tests/BUILD new file mode 100644 index 0000000000000..dabf212d7e716 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/tests/BUILD @@ -0,0 +1 @@ +python_tests() diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/tests/__init__.py b/llama-index-integrations/llms/llama-index-llms-deepseek/tests/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/llama-index-integrations/llms/llama-index-llms-deepseek/tests/test_llms_deepseek.py b/llama-index-integrations/llms/llama-index-llms-deepseek/tests/test_llms_deepseek.py new file mode 100644 index 0000000000000..829d10a6f8b89 --- /dev/null +++ b/llama-index-integrations/llms/llama-index-llms-deepseek/tests/test_llms_deepseek.py @@ -0,0 +1,7 @@ +from llama_index.core.base.llms.base import BaseLLM +from llama_index.llms.deepseek import DeepSeek + + +def test_llm_class(): + names_of_base_classes = [b.__name__ for b in DeepSeek.__mro__] + assert BaseLLM.__name__ in names_of_base_classes diff --git a/llama-index-integrations/llms/llama-index-llms-fireworks/llama_index/llms/fireworks/utils.py b/llama-index-integrations/llms/llama-index-llms-fireworks/llama_index/llms/fireworks/utils.py index ab0b761e07bed..99342c5a7728e 100644 --- a/llama-index-integrations/llms/llama-index-llms-fireworks/llama_index/llms/fireworks/utils.py +++ b/llama-index-integrations/llms/llama-index-llms-fireworks/llama_index/llms/fireworks/utils.py @@ -36,6 +36,7 @@ DEEPSEEK_MODELS = { "accounts/fireworks/models/deepseek-v3": 131072, + "accounts/fireworks/models/deepseek-r1": 163840, } ALL_AVAILABLE_MODELS = { diff --git a/llama-index-integrations/llms/llama-index-llms-fireworks/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-fireworks/pyproject.toml index ca730815c938c..abedd1af52dc2 100644 --- a/llama-index-integrations/llms/llama-index-llms-fireworks/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-fireworks/pyproject.toml @@ -26,7 +26,7 @@ description = "llama-index llms fireworks integration" license = "MIT" name = "llama-index-llms-fireworks" readme = "README.md" -version = "0.3.1" +version = "0.3.2" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml index 6b3579612deff..999a281521eef 100644 --- a/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml @@ -27,13 +27,13 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-llms-gemini" readme = "README.md" -version = "0.4.3" +version = "0.4.4" [tool.poetry.dependencies] python = ">=3.9,<4.0" pillow = "^10.2.0" google-generativeai = ">=0.5.2" -llama-index-core = "^0.12.0" +llama-index-core = "^0.12.12" [tool.poetry.group.dev.dependencies] ipython = "8.10.0" diff --git a/llama-index-integrations/llms/llama-index-llms-ibm/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-ibm/pyproject.toml index 471bbfb667d57..622a897c9ae00 100644 --- a/llama-index-integrations/llms/llama-index-llms-ibm/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-ibm/pyproject.toml @@ -34,7 +34,7 @@ readme = "README.md" version = "0.3.1" [tool.poetry.dependencies] -python = ">=3.10,<4.0" +python = ">=3.10,<3.13" ibm-watsonx-ai = ">=1.1.24" pyarrow = "*" llama-index-core = "^0.12.0" diff --git a/llama-index-integrations/llms/llama-index-llms-langchain/llama_index/llms/langchain/base.py b/llama-index-integrations/llms/llama-index-llms-langchain/llama_index/llms/langchain/base.py index 2cb83eed97623..c432094a304c3 100644 --- a/llama-index-integrations/llms/llama-index-llms-langchain/llama_index/llms/langchain/base.py +++ b/llama-index-integrations/llms/llama-index-llms-langchain/llama_index/llms/langchain/base.py @@ -127,7 +127,7 @@ def gen() -> Generator[ChatResponse, None, None]: response_str = "" for message in self._llm.stream(lc_messages, **kwargs): message = from_lc_messages([message])[0] - delta = message.content + delta = message.content or "" response_str += delta yield ChatResponse( message=ChatMessage(role=message.role, content=response_str), diff --git a/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml index 89c0bb036b2d4..146dac65cbad9 100644 --- a/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-llms-langchain" readme = "README.md" -version = "0.5.0" +version = "0.5.1" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/llms/llama-index-llms-llama-cpp/README.md b/llama-index-integrations/llms/llama-index-llms-llama-cpp/README.md index 7a94af5fcfc78..3d50858af2ce3 100644 --- a/llama-index-integrations/llms/llama-index-llms-llama-cpp/README.md +++ b/llama-index-integrations/llms/llama-index-llms-llama-cpp/README.md @@ -2,40 +2,69 @@ ## Installation -1. Install the required Python packages: +To get the best performance out of `LlamaCPP`, it is recommended to install the package so that it is compiled with GPU support. A full guide for installing this way is [here](https://github.com/abetlen/llama-cpp-python#installation-with-openblas--cublas--clblast--metal). - ```bash - %pip install llama-index-embeddings-huggingface - %pip install llama-index-llms-llama-cpp - !pip install llama-index - ``` +Full MACOS instructions are also [here](https://llama-cpp-python.readthedocs.io/en/latest/install/macos/). -## Basic Usage +In general: -### Import Required Libraries +- Use `CuBLAS` if you have CUDA and an NVidia GPU +- Use `METAL` if you are running on an M1/M2 MacBook +- Use `CLBLAST` if you are running on an AMD/Intel GPU -```python -from llama_index.core import SimpleDirectoryReader, VectorStoreIndex -from llama_index.llms.llama_cpp import LlamaCPP -from llama_index.llms.llama_cpp.llama_utils import ( - messages_to_prompt, - completion_to_prompt, -) +Them, install the required llama-index packages: + +```bash +pip install llama-index-embeddings-huggingface +pip install llama-index-llms-llama-cpp ``` +## Basic Usage + ### Initialize LlamaCPP Set up the model URL and initialize the LlamaCPP LLM: ```python -model_url = "https://huggingface.co/TheBloke/Llama-2-13B-chat-GGML/resolve/main/llama-2-13b-chat.ggmlv3.q4_0.bin" +from llama_index.llms.llama_cpp import LlamaCPP +from transformers import AutoTokenizer + +model_url = "https://huggingface.co/Qwen/Qwen2.5-7B-Instruct-GGUF/resolve/main/qwen2.5-7b-instruct-q3_k_m.gguf" + +tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct") + + +def messages_to_prompt(messages): + messages = [{"role": m.role.value, "content": m.content} for m in messages] + prompt = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True + ) + return prompt + + +def completion_to_prompt(completion): + messages = [{"role": "user", "content": completion}] + prompt = tokenizer.apply_chat_template( + messages, tokenize=False, add_generation_prompt=True + ) + return prompt + + llm = LlamaCPP( + # You can pass in the URL to a GGML model to download it automatically model_url=model_url, + # optionally, you can set the path to a pre-downloaded model instead of model_url + model_path=None, temperature=0.1, max_new_tokens=256, - context_window=3900, + # llama2 has a context window of 4096 tokens, but we set it lower to allow for some wiggle room + context_window=16384, + # kwargs to pass to __call__() generate_kwargs={}, - model_kwargs={"n_gpu_layers": 1}, + # kwargs to pass to __init__() + # set to at least 1 to use GPU + model_kwargs={"n_gpu_layers": -1}, + # transform inputs into Llama2 format messages_to_prompt=messages_to_prompt, completion_to_prompt=completion_to_prompt, verbose=True, @@ -70,7 +99,7 @@ from llama_index.core import set_global_tokenizer from transformers import AutoTokenizer set_global_tokenizer( - AutoTokenizer.from_pretrained("NousResearch/Llama-2-7b-chat-hf").encode + AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct").encode ) ``` @@ -107,4 +136,4 @@ print(response) ### LLM Implementation example -https://docs.llamaindex.ai/en/stable/examples/llm/llama_2_llama_cpp/ +https://docs.llamaindex.ai/en/stable/examples/llm/llama_cpp/ diff --git a/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml index 087a797aa4db7..077295820de6b 100644 --- a/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml @@ -27,11 +27,11 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-llms-llama-cpp" readme = "README.md" -version = "0.3.0" +version = "0.4.0" [tool.poetry.dependencies] python = ">=3.9,<4.0" -llama-cpp-python = "^0.2.32" +llama-cpp-python = "^0.3.0" llama-index-core = "^0.12.0" [tool.poetry.group.dev.dependencies] diff --git a/llama-index-integrations/llms/llama-index-llms-mistralai/llama_index/llms/mistralai/utils.py b/llama-index-integrations/llms/llama-index-llms-mistralai/llama_index/llms/mistralai/utils.py index f0e5a59ccb02f..92ec3de419f3b 100644 --- a/llama-index-integrations/llms/llama-index-llms-mistralai/llama_index/llms/mistralai/utils.py +++ b/llama-index-integrations/llms/llama-index-llms-mistralai/llama_index/llms/mistralai/utils.py @@ -22,6 +22,9 @@ "open-mixtral-8x22b", "ministral-8b-latest", "ministral-3b-latest", + "mistral-small-latest", + "codestral-latest", + "open-mistral-nemo-latest", ) MISTRALAI_CODE_MODELS = "codestral-latest" diff --git a/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml index ac93b93d2fe79..764889d1e93cf 100644 --- a/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-llms-mistralai" readme = "README.md" -version = "0.3.1" +version = "0.3.2" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/llms/llama-index-llms-openai/llama_index/llms/openai/utils.py b/llama-index-integrations/llms/llama-index-llms-openai/llama_index/llms/openai/utils.py index 6e48083d24960..220ad8d860ccb 100644 --- a/llama-index-integrations/llms/llama-index-llms-openai/llama_index/llms/openai/utils.py +++ b/llama-index-integrations/llms/llama-index-llms-openai/llama_index/llms/openai/utils.py @@ -2,7 +2,13 @@ import os from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Type, Union +import openai from deprecated import deprecated +from openai.types.chat import ChatCompletionMessageParam, ChatCompletionMessageToolCall +from openai.types.chat.chat_completion_chunk import ChoiceDeltaToolCall +from openai.types.chat.chat_completion_message import ChatCompletionMessage +from openai.types.chat.chat_completion_token_logprob import ChatCompletionTokenLogprob +from openai.types.completion_choice import Logprobs from tenacity import ( before_sleep_log, retry, @@ -14,20 +20,15 @@ ) from tenacity.stop import stop_base -import openai from llama_index.core.base.llms.generic_utils import get_from_param_or_env from llama_index.core.base.llms.types import ( ChatMessage, ImageBlock, LogProb, + MessageRole, TextBlock, ) from llama_index.core.bridge.pydantic import BaseModel -from openai.types.chat import ChatCompletionMessageParam, ChatCompletionMessageToolCall -from openai.types.chat.chat_completion_chunk import ChoiceDeltaToolCall -from openai.types.chat.chat_completion_message import ChatCompletionMessage -from openai.types.chat.chat_completion_token_logprob import ChatCompletionTokenLogprob -from openai.types.completion_choice import Logprobs DEFAULT_OPENAI_API_TYPE = "open_ai" DEFAULT_OPENAI_API_BASE = "https://api.openai.com/v1" @@ -292,9 +293,14 @@ def to_openai_message_dict( msg = f"Unsupported content block type: {type(block).__name__}" raise ValueError(msg) - # NOTE: Sending a blank string to openai will cause an error. - # This will commonly happen with tool calls. - content_txt = None if content_txt == "" else content_txt + # NOTE: Sending a null value (None) for Tool Message to OpenAI will cause error + # It's only Allowed to send None if it's an Assistant Message + # Reference: https://platform.openai.com/docs/api-reference/chat/create + content_txt = ( + None + if content_txt == "" and message.role == MessageRole.ASSISTANT + else content_txt + ) # NOTE: Despite what the openai docs say, if the role is ASSISTANT, SYSTEM # or TOOL, 'content' cannot be a list and must be string instead. @@ -302,10 +308,12 @@ def to_openai_message_dict( # as the content. This will avoid breaking openai-like APIs. message_dict = { "role": message.role.value, - "content": content_txt - if message.role.value in ("assistant", "tool", "system") - or all(isinstance(block, TextBlock) for block in message.blocks) - else content, + "content": ( + content_txt + if message.role.value in ("assistant", "tool", "system") + or all(isinstance(block, TextBlock) for block in message.blocks) + else content + ), } # TODO: O1 models do not support system prompts diff --git a/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml index efd26805d9b51..e92a58e044b7d 100644 --- a/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml @@ -29,7 +29,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-llms-openai" readme = "README.md" -version = "0.3.13" +version = "0.3.14" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/llms/llama-index-llms-openai/tests/test_openai_utils.py b/llama-index-integrations/llms/llama-index-llms-openai/tests/test_openai_utils.py index 9f7ec48c5e923..b829d30b1dcb5 100644 --- a/llama-index-integrations/llms/llama-index-llms-openai/tests/test_openai_utils.py +++ b/llama-index-integrations/llms/llama-index-llms-openai/tests/test_openai_utils.py @@ -59,7 +59,7 @@ def chat_messages_with_function_calling() -> List[ChatMessage]: @pytest.fixture() -def openi_message_dicts_with_function_calling() -> List[ChatCompletionMessageParam]: +def openai_message_dicts_with_function_calling() -> List[ChatCompletionMessageParam]: return [ { "role": "user", @@ -158,19 +158,19 @@ def test_to_openai_message_dicts_basic_string() -> None: def test_to_openai_message_dicts_function_calling( chat_messages_with_function_calling: List[ChatMessage], - openi_message_dicts_with_function_calling: List[ChatCompletionMessageParam], + openai_message_dicts_with_function_calling: List[ChatCompletionMessageParam], ) -> None: message_dicts = to_openai_message_dicts( chat_messages_with_function_calling, ) - assert message_dicts == openi_message_dicts_with_function_calling + assert message_dicts == openai_message_dicts_with_function_calling def test_from_openai_message_dicts_function_calling( - openi_message_dicts_with_function_calling: List[ChatCompletionMessageParam], + openai_message_dicts_with_function_calling: List[ChatCompletionMessageParam], chat_messages_with_function_calling: List[ChatMessage], ) -> None: - chat_messages = from_openai_message_dicts(openi_message_dicts_with_function_calling) # type: ignore + chat_messages = from_openai_message_dicts(openai_message_dicts_with_function_calling) # type: ignore # assert attributes match for chat_message, chat_message_with_function_calling in zip( diff --git a/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml index c3dcfef412249..37cd1541ce635 100644 --- a/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml +++ b/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml @@ -50,7 +50,7 @@ types-protobuf = "^4.24.0.4" types-redis = "4.5.5.0" types-requests = "2.28.11.8" types-setuptools = "67.1.0.0" -vcrpy = "6.0.1" +vcrpy = "7.0.0" [tool.poetry.group.dev.dependencies.black] extras = ["jupyter"] diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml index 469ef362fa740..2173aa61b2630 100644 --- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml +++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml @@ -27,13 +27,13 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-multi-modal-llms-gemini" readme = "README.md" -version = "0.4.1" +version = "0.5.0" [tool.poetry.dependencies] python = ">=3.9,<4.0" -llama-index-llms-gemini = "^0.4.0" +llama-index-llms-gemini = "^0.4.4" pillow = "^10.2.0" -llama-index-core = "^0.12.0" +llama-index-core = "^0.12.12" [tool.poetry.group.dev.dependencies] ipython = "8.10.0" diff --git a/llama-index-integrations/readers/llama-index-readers-file/llama_index/readers/file/markdown/base.py b/llama-index-integrations/readers/llama-index-readers-file/llama_index/readers/file/markdown/base.py index 4b7051c2366a0..2f3c73f6620c5 100644 --- a/llama-index-integrations/readers/llama-index-readers-file/llama_index/readers/file/markdown/base.py +++ b/llama-index-integrations/readers/llama-index-readers-file/llama_index/readers/file/markdown/base.py @@ -5,7 +5,6 @@ """ import re -from pathlib import Path from fsspec import AbstractFileSystem from fsspec.implementations.local import LocalFileSystem from typing import Any, Dict, List, Optional, Tuple @@ -26,50 +25,75 @@ def __init__( *args: Any, remove_hyperlinks: bool = True, remove_images: bool = True, + separator: str = " ", **kwargs: Any, ) -> None: """Init params.""" super().__init__(*args, **kwargs) self._remove_hyperlinks = remove_hyperlinks self._remove_images = remove_images + self._separator = separator def markdown_to_tups(self, markdown_text: str) -> List[Tuple[Optional[str], str]]: - """Convert a markdown file to a dictionary. - - The keys are the headers and the values are the text under each header. - - """ + """Convert a markdown file to a list of tuples containing header and text.""" markdown_tups: List[Tuple[Optional[str], str]] = [] lines = markdown_text.split("\n") - current_header = None current_lines = [] in_code_block = False - + headers = {} for line in lines: + # Toggle code block state if line.startswith("```"): - # This is the end of a code block if we are already in it, and vice versa. in_code_block = not in_code_block - header_match = re.match(r"^#+\s", line) - if not in_code_block and header_match: - # Upon first header, skip if current text chunk is empty - if current_header is not None or len(current_lines) > 0: - markdown_tups.append((current_header, "\n".join(current_lines))) - - current_header = line - current_lines.clear() - else: + if in_code_block: current_lines.append(line) - - # Append final text chunk - markdown_tups.append((current_header, "\n".join(current_lines))) + continue + # Process headers only when not in a code block + else: + line = line.strip() + if not line: + continue + + header_match = re.match(r"^(#+)\s+(.*)", line) + if header_match: + if current_lines and not headers: + # Add content before first header + markdown_tups.append((None, "\n".join(current_lines))) + current_lines.clear() + # Extract header level and text + header_level = len( + header_match.group(1) + ) # number of '#' indicates level + current_header = header_match.group(2) # the header text + if headers.get(header_level): + # Add previous section to the list before switching header + markdown_tups.append( + ( + self._separator.join(headers.values()), + "\n".join(current_lines), + ) + ) + # remove all headers with level greater than current header + headers = {k: v for k, v in headers.items() if k < header_level} + current_lines.clear() + + headers[header_level] = current_header + else: + current_lines.append(line) + + # Append the last section + if current_lines or headers: + markdown_tups.append( + (self._separator.join(headers.values()), "\n".join(current_lines)) + ) # Postprocess the tuples before returning return [ ( - key if key is None else re.sub(r"#", "", key).strip(), - re.sub(r"<.*?>", "", value), + key.strip() if key else None, # Clean up header (strip whitespace) + re.sub(r"<.*?>", "", value), # Remove HTML tags ) for key, value in markdown_tups ] @@ -90,7 +114,7 @@ def _init_parser(self) -> Dict: def parse_tups( self, - filepath: Path, + filepath: str, errors: str = "ignore", fs: Optional[AbstractFileSystem] = None, ) -> List[Tuple[Optional[str], str]]: @@ -106,19 +130,19 @@ def parse_tups( def load_data( self, - file: Path, + file: str, extra_info: Optional[Dict] = None, fs: Optional[AbstractFileSystem] = None, ) -> List[Document]: """Parse file into string.""" tups = self.parse_tups(file, fs=fs) results = [] - # TODO: don't include headers right now - for header, value in tups: + + for header, text in tups: if header is None: - results.append(Document(text=value, metadata=extra_info or {})) + results.append(Document(text=text, metadata=extra_info or {})) else: results.append( - Document(text=f"\n\n{header}\n{value}", metadata=extra_info or {}) + Document(text=f"\n\n{header}\n{text}", metadata=extra_info or {}) ) return results diff --git a/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml index 839382a38d9cd..ca817a8181abd 100644 --- a/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml +++ b/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml @@ -51,7 +51,7 @@ license = "MIT" maintainers = ["FarisHijazi", "Haowjy", "ephe-meral", "hursh-desai", "iamarunbrahma", "jon-chuang", "mmaatouk", "ravi03071991", "sangwongenip", "thejessezhang"] name = "llama-index-readers-file" readme = "README.md" -version = "0.4.3" +version = "0.4.4" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/readers/llama-index-readers-file/tests/test_file.py b/llama-index-integrations/readers/llama-index-readers-file/tests/test_file.py index 1f2e22f03e848..34664c036e090 100644 --- a/llama-index-integrations/readers/llama-index-readers-file/tests/test_file.py +++ b/llama-index-integrations/readers/llama-index-readers-file/tests/test_file.py @@ -568,3 +568,43 @@ def test_read_file_content(tmp_dir_type: Type[Union[Path, str]]) -> None: content = reader.read_file_content(file) checksum = hashlib.md5(content).hexdigest() assert checksum == files_checksum[file] + + +@pytest.mark.parametrize("tmp_dir_type", [Path, str]) +@pytest.mark.skipif(PDFReader is None, reason="llama-index-readers-file not installed") +def test_exclude_empty(tmp_dir_type: Type[Union[Path, str]]) -> None: + """Test if exclude_empty flag excludes empty files.""" + with TemporaryDirectory() as tmp_dir: + tmp_dir = tmp_dir_type(tmp_dir) + + # Create non-empty files + with open(f"{tmp_dir}/test1.txt", "w") as f: + f.write("test1") + with open(f"{tmp_dir}/test2.txt", "w") as f: + f.write("test2") + + # Create empty files + open(f"{tmp_dir}/empty1.txt", "w").close() + open(f"{tmp_dir}/empty2.txt", "w").close() + + # Test with exclude_empty=True + reader_exclude = SimpleDirectoryReader(tmp_dir, exclude_empty=True) + documents_exclude = reader_exclude.load_data() + + assert len(documents_exclude) == 2 + assert [doc.metadata["file_name"] for doc in documents_exclude] == [ + "test1.txt", + "test2.txt", + ] + + # Test with exclude_empty=False (default behavior) + reader_include = SimpleDirectoryReader(tmp_dir, exclude_empty=False) + documents_include = reader_include.load_data() + + assert len(documents_include) == 4 + assert [doc.metadata["file_name"] for doc in documents_include] == [ + "empty1.txt", + "empty2.txt", + "test1.txt", + "test2.txt", + ] diff --git a/llama-index-integrations/readers/llama-index-readers-file/tests/test_markdown.py b/llama-index-integrations/readers/llama-index-readers-file/tests/test_markdown.py index 5508a0e516168..15ee7ae552d57 100644 --- a/llama-index-integrations/readers/llama-index-readers-file/tests/test_markdown.py +++ b/llama-index-integrations/readers/llama-index-readers-file/tests/test_markdown.py @@ -1,4 +1,4 @@ -from llama_index.readers.file import MarkdownReader +from llama_index.readers.file.markdown.base import MarkdownReader def test_parse_markdown_starting_with_header() -> None: @@ -18,7 +18,7 @@ def test_parse_markdown_with_text_before_first_header() -> None: def test_parse_markdown_with_empty_lines_before_first_header() -> None: reader = MarkdownReader() markdown_text = "\n\n\n# ABC\ndef" - expected_tups = [(None, "\n\n"), ("ABC", "def")] + expected_tups = [("ABC", "def")] assert reader.markdown_to_tups(markdown_text) == expected_tups @@ -55,7 +55,7 @@ def test_parse_markdown_with_headers_in_code_block() -> None: def test_parse_empty_markdown() -> None: reader = MarkdownReader() markdown_text = "" - expected_tups = [(None, "")] + expected_tups = [] assert reader.markdown_to_tups(markdown_text) == expected_tups @@ -63,13 +63,100 @@ def test_parse_omits_trailing_newline_before_new_header() -> None: reader = MarkdownReader() markdown_text = ("\n" * 4) + "# ABC\nabc" - expected_tups = [(None, "\n" * 3), ("ABC", "abc")] + expected_tups = [("ABC", "abc")] assert reader.markdown_to_tups(markdown_text) == expected_tups markdown_text = ("\n" * 4) + "# ABC\nabc\n" - expected_tups = [(None, "\n" * 3), ("ABC", "abc\n")] + expected_tups = [("ABC", "abc")] assert reader.markdown_to_tups(markdown_text) == expected_tups markdown_text = "\n" * 4 - expected_tups = [(None, "\n" * 4)] + expected_tups = [] + assert reader.markdown_to_tups(markdown_text) == expected_tups + + +def test_multiple_class_titles_parse() -> None: + reader = MarkdownReader() + markdown_text = """ +# Main Title (Level 1) + +## Section 1: Introduction (Level 2) + +### Subsection 1.1: Background (Level 3) + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia arcu eget nulla fermentum, et suscipit justo volutpat. + +### Subsection 1.2: Objective (Level 3) + +Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. + +## Section 2: Methodology (Level 2) + +### Subsection 2.1: Approach (Level 3) + +Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Pellentesque in ipsum id orci porta dapibus. + +### Subsection 2.2: Tools and Techniques (Level 3) + +Donec rutrum congue leo eget malesuada. Vivamus suscipit tortor eget felis porttitor volutpat. + +#### Sub-subsection 2.2.1: Tool 1 (Level 4) + +Donec sollicitudin molestie malesuada. + +#### Sub-subsection 2.2.2: Tool 2 (Level 4) + +Proin eget tortor risus. Cras ultricies ligula sed magna dictum porta. + +## Section 3: Results (Level 2) + +### Subsection 3.1: Data Analysis (Level 3) + +Sed porttitor lectus nibh. Donec rutrum congue leo eget malesuada. + +### Subsection 3.2: Findings (Level 3) + +Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. + """ + expected_tups = [ + ( + "Main Title (Level 1) Section 1: Introduction (Level 2) Subsection 1.1: Background (Level 3)", + "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia arcu eget nulla fermentum, et suscipit justo volutpat.", + ), + ( + "Main Title (Level 1) Section 1: Introduction (Level 2) Subsection 1.2: Objective (Level 3)", + "Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.", + ), + ( + "Main Title (Level 1) Section 2: Methodology (Level 2) Subsection 2.1: Approach (Level 3)", + "Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Pellentesque in ipsum id orci porta dapibus.", + ), + ( + "Main Title (Level 1) Section 2: Methodology (Level 2) Subsection 2.2: Tools and Techniques (Level 3) Sub-subsection 2.2.1: Tool 1 (Level 4)", + "Donec rutrum congue leo eget malesuada. Vivamus suscipit tortor eget felis porttitor volutpat.\nDonec sollicitudin molestie malesuada.", + ), + ( + "Main Title (Level 1) Section 2: Methodology (Level 2) Subsection 2.2: Tools and Techniques (Level 3) Sub-subsection 2.2.2: Tool 2 (Level 4)", + "Proin eget tortor risus. Cras ultricies ligula sed magna dictum porta.", + ), + ( + "Main Title (Level 1) Section 3: Results (Level 2) Subsection 3.1: Data Analysis (Level 3)", + "Sed porttitor lectus nibh. Donec rutrum congue leo eget malesuada.", + ), + ( + "Main Title (Level 1) Section 3: Results (Level 2) Subsection 3.2: Findings (Level 3)", + "Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem.", + ), + ] + + assert reader.markdown_to_tups(markdown_text) == expected_tups + + +def test_blank_lines_in_markdown() -> None: + reader = MarkdownReader() + markdown_text = """ + + + """ + expected_tups = [] assert reader.markdown_to_tups(markdown_text) == expected_tups diff --git a/llama-index-integrations/readers/llama-index-readers-google/llama_index/readers/google/drive/base.py b/llama-index-integrations/readers/llama-index-readers-google/llama_index/readers/google/drive/base.py index db0e647d9607a..e21f0745c6199 100644 --- a/llama-index-integrations/readers/llama-index-readers-google/llama_index/readers/google/drive/base.py +++ b/llama-index-integrations/readers/llama-index-readers-google/llama_index/readers/google/drive/base.py @@ -450,7 +450,9 @@ def _download_file(self, fileid: str, filename: str) -> str: fileId=fileid, mimeType=download_mimetype ) else: - new_file_name = filename + # we should have a file extension to allow the readers to work + _, download_extension = os.path.splitext(file.get("name", "")) + new_file_name = filename + download_extension # Download file without conversion request = service.files().get_media(fileId=fileid) diff --git a/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml index aaaadca0a0588..7ee3c22372b76 100644 --- a/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml +++ b/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml @@ -47,7 +47,7 @@ maintainers = [ ] name = "llama-index-readers-google" readme = "README.md" -version = "0.5.0" +version = "0.6.0" [tool.poetry.dependencies] python = ">=3.10,<4.0" diff --git a/llama-index-integrations/readers/llama-index-readers-google/tests/test_readers_google_drive.py b/llama-index-integrations/readers/llama-index-readers-google/tests/test_readers_google_drive.py index 27c8d5967883c..331039dd1bb5c 100644 --- a/llama-index-integrations/readers/llama-index-readers-google/tests/test_readers_google_drive.py +++ b/llama-index-integrations/readers/llama-index-readers-google/tests/test_readers_google_drive.py @@ -2,7 +2,7 @@ import os import unittest from tempfile import TemporaryDirectory -from unittest.mock import MagicMock +from unittest.mock import patch, MagicMock, mock_open import pytest from google.oauth2.credentials import Credentials @@ -157,3 +157,42 @@ def test_get_relative_path(self): # Verify API calls assert mock_service.files().get.call_count >= 1 + + def test_download_file(self): + mock_credentials = MagicMock() + mock_credentials.universe_domain = "googleapis.com" + + mock_service = MagicMock() + mock_build = MagicMock(return_value=mock_service) + + # setup a bunch of mocks to imitate calling Google Drive and downloading file + with patch("googleapiclient.discovery.build", mock_build), patch( + "builtins.open", mock_open() + ) as mock_file: + reader = GoogleDriveReader( + client_config={ + "client_id": "example_client_id", + "client_secret": "example_client_secret", + }, + ) + reader._creds = mock_credentials + + google_drive_id = "googledriveid" + mock_file_response = { + "name": "test_file.pdf", + "id": google_drive_id, + "mimeType": "application/pdf", + } + mock_service.files().get().execute.return_value = mock_file_response + + mock_downloader = MagicMock() + mock_downloader.next_chunk.return_value = (None, True) + + with patch( + "googleapiclient.http.MediaIoBaseDownload", return_value=mock_downloader + ): + filename = reader._download_file(google_drive_id, google_drive_id) + + assert filename == google_drive_id + ".pdf" + # also should have tried to write the file + mock_file().write.assert_called_once() diff --git a/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/__init__.py b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/__init__.py index f030d763a0745..31713c452851e 100644 --- a/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/__init__.py +++ b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/__init__.py @@ -1,4 +1,7 @@ """Init file.""" +from llama_index.readers.web.agentql_web.base import ( + AgentQLWebReader, +) from llama_index.readers.web.async_web.base import ( AsyncWebPageReader, ) @@ -51,6 +54,7 @@ __all__ = [ + "AgentQLWebReader", "AsyncWebPageReader", "BeautifulSoupWebReader", "BrowserbaseWebReader", diff --git a/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/BUILD b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/BUILD new file mode 100644 index 0000000000000..db46e8d6c978c --- /dev/null +++ b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/BUILD @@ -0,0 +1 @@ +python_sources() diff --git a/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/README.md b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/README.md new file mode 100644 index 0000000000000..25f70c9ffe2dc --- /dev/null +++ b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/README.md @@ -0,0 +1,64 @@ +# AgentQL Web Loader + +## Instructions for AgentQL Web Loader + +### Setup and Installation + +1. **API Key**: Secure an API key from [AgentQL](https://dev.agentql.com) to access the AgentQL services. + +And you are good to go! + +### Using AgentQL Web Loader + +- **Initialization**: Initialize the AgentQLWebReader by providing the API key, along with any optional parameters you wish to set for the AgentQL API. You can view all the settable parameters [here](https://docs.agentql.com/rest-api/api-reference). + + ```python + from llama_index.readers.web import AgentQLWebReader + + agentql_reader = AgentQLWebReader( + api_key="Your AgentQL API key Here", # Replace with your actual API key from https://dev.agentql.com + # Optional additional parameters + params={ + "is_scroll_to_bottom_enabled": True + }, # for example, here we enable scroll to bottom + ) + ``` + +- **Loading Data**: To load data, use the `load_data` method with the URL you wish to scrape and the Agentql Query you wish to run. To learn more about the Agentql Query, please refer to the [AgentQL query language documentation](https://docs.agentql.com/agentql-query). + +```python +document = agentql_reader.load_data( + url="https://example.com", query="{ products[] { name price } }" +) +``` + +### Example Usage + +Here is an example demonstrating how to initialize the AgentQLWebReader, load document from a URL and an AgentQL Query, and then create a summary index from those documents for querying. + +```python +# Initialize the AgentQLWebReader with your API key and parameters +agentql_reader = AgentQLWebReader( + api_key="Your AgentQL API key Here", # Replace with your actual API key from https://dev.agentql.com + params={ + "is_scroll_to_bottom_enabled": True + }, # Optional additional parameters +) + +# Load documents from scrapeme.live/shop/ which contains a list of pokemons and their prices +document = agentql_reader.load_data( + url="https://scrapeme.live/shop/", query="{ pokemons[] { name price } }" +) + +# Create a summary index from the loaded documents for querying +index = SummaryIndex.from_documents(document) + +# Convert the summary index into a query engine +query_engine = index.as_query_engine() + +# Perform a query on the index to find insights from Paul Graham's essays +response = query_engine.query("What is the average price of the pokemons?") + +# Display the query response +print(response) +``` diff --git a/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/__init__.py b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/base.py b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/base.py new file mode 100644 index 0000000000000..6c270f071bf79 --- /dev/null +++ b/llama-index-integrations/readers/llama-index-readers-web/llama_index/readers/web/agentql_web/base.py @@ -0,0 +1,84 @@ +"""AgentQL Web Reader.""" +import httpx +from typing import Optional, List + +from llama_index.core.readers.base import BasePydanticReader +from llama_index.core.schema import Document + +import logging + +logging.getLogger("root").setLevel(logging.INFO) + +QUERY_DATA_ENDPOINT = "https://api.agentql.com/v1/query-data" +API_TIMEOUT_SECONDS = 900 + + +class AgentQLWebReader(BasePydanticReader): + """ + Scrape a URL with or without a agentql query and returns document in json format. + + Args: + api_key (str): The AgentQL API key, get one at https://dev.agentql.com + params (dict): Additional parameters to pass to the AgentQL API. Visit https://docs.agentql.com/rest-api/api-reference for details. + """ + + api_key: str + params: Optional[dict] + + def __init__( + self, + api_key: str, + params: Optional[dict] = None, + ) -> None: + super().__init__(api_key=api_key, params=params) + + def load_data( + self, url: str, query: Optional[str] = None, prompt: Optional[str] = None + ) -> List[Document]: + """ + Load data from the input directory. + + Args: + url (str): URL to scrape or crawl. + query (Optional[str]): AgentQL query used to specify the scraped data. + prompt (Optional[str]): Natural language description of the data you want to scrape. + Either query or prompt must be provided. + params (Optional[dict]): Additional parameters to pass to the AgentQL API. Visit https://docs.agentql.com/rest-api/api-reference for details. + + Returns: + List[Document]: List of documents. + """ + payload = {"url": url, "query": query, "prompt": prompt, "params": self.params} + + headers = {"X-API-Key": f"{self.api_key}", "Content-Type": "application/json"} + + try: + response = httpx.post( + QUERY_DATA_ENDPOINT, + headers=headers, + json=payload, + timeout=API_TIMEOUT_SECONDS, + ) + response.raise_for_status() + + except httpx.HTTPStatusError as e: + response = e.response + if response.status_code in [401, 403]: + raise ValueError( + "Please, provide a valid API Key. You can create one at https://dev.agentql.com." + ) from e + else: + try: + error_json = response.json() + msg = ( + error_json["error_info"] + if "error_info" in error_json + else error_json["detail"] + ) + except (ValueError, TypeError): + msg = f"HTTP {e}." + raise ValueError(msg) from e + else: + json = response.json() + + return [Document(text=str(json["data"]), metadata=json["metadata"])] diff --git a/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml index b4108e57315ff..fb8c8f8f948d4 100644 --- a/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml +++ b/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml @@ -46,7 +46,7 @@ license = "MIT" maintainers = ["HawkClaws", "Hironsan", "NA", "an-bluecat", "bborn", "jasonwcfan", "kravetsmic", "pandazki", "ruze00", "selamanse", "thejessezhang"] name = "llama-index-readers-web" readme = "README.md" -version = "0.3.4" +version = "0.3.5" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/retrievers/llama-index-retrievers-bm25/llama_index/retrievers/bm25/base.py b/llama-index-integrations/retrievers/llama-index-retrievers-bm25/llama_index/retrievers/bm25/base.py index d204bebb975ea..7b29eb469819e 100644 --- a/llama-index-integrations/retrievers/llama-index-retrievers-bm25/llama_index/retrievers/bm25/base.py +++ b/llama-index-integrations/retrievers/llama-index-retrievers-bm25/llama_index/retrievers/bm25/base.py @@ -33,7 +33,7 @@ class BM25Retriever(BaseRetriever): - """A BM25 retriever that uses the BM25 algorithm to retrieve nodes. + r"""A BM25 retriever that uses the BM25 algorithm to retrieve nodes. Args: nodes (List[BaseNode], optional): @@ -52,6 +52,10 @@ class BM25Retriever(BaseRetriever): The objects to retrieve. Defaults to None. object_map (dict, optional): A map of object IDs to nodes. Defaults to None. + token_pattern (str, optional): + The token pattern to use. Defaults to (?u)\\b\\w\\w+\\b. + skip_stemming (bool, optional): + Whether to skip stemming. Defaults to False. verbose (bool, optional): Whether to show progress. Defaults to False. """ @@ -67,9 +71,13 @@ def __init__( objects: Optional[List[IndexNode]] = None, object_map: Optional[dict] = None, verbose: bool = False, + skip_stemming: bool = False, + token_pattern: str = r"(?u)\b\w\w+\b", ) -> None: self.stemmer = stemmer or Stemmer.Stemmer("english") self.similarity_top_k = similarity_top_k + self.token_pattern = token_pattern + self.skip_stemming = skip_stemming if existing_bm25 is not None: self.bm25 = existing_bm25 @@ -83,7 +91,8 @@ def __init__( corpus_tokens = bm25s.tokenize( [node.get_content(metadata_mode=MetadataMode.EMBED) for node in nodes], stopwords=language, - stemmer=self.stemmer, + stemmer=self.stemmer if not skip_stemming else None, + token_pattern=self.token_pattern, show_progress=verbose, ) self.bm25 = bm25s.BM25() @@ -105,6 +114,8 @@ def from_defaults( language: str = "en", similarity_top_k: int = DEFAULT_SIMILARITY_TOP_K, verbose: bool = False, + skip_stemming: bool = False, + token_pattern: str = r"(?u)\b\w\w+\b", # deprecated tokenizer: Optional[Callable[[str], List[str]]] = None, ) -> "BM25Retriever": @@ -134,6 +145,8 @@ def from_defaults( language=language, similarity_top_k=similarity_top_k, verbose=verbose, + skip_stemming=skip_stemming, + token_pattern=token_pattern, ) def get_persist_args(self) -> Dict[str, Any]: @@ -161,7 +174,10 @@ def from_persist_dir(cls, path: str, **kwargs: Any) -> "BM25Retriever": def _retrieve(self, query_bundle: QueryBundle) -> List[NodeWithScore]: query = query_bundle.query_str tokenized_query = bm25s.tokenize( - query, stemmer=self.stemmer, show_progress=self._verbose + query, + stemmer=self.stemmer if not self.skip_stemming else None, + token_pattern=self.token_pattern, + show_progress=self._verbose, ) indexes, scores = self.bm25.retrieve( tokenized_query, k=self.similarity_top_k, show_progress=self._verbose diff --git a/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml b/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml index 214443b82c9bf..e7c8617cefe7c 100644 --- a/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml +++ b/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-retrievers-bm25" readme = "README.md" -version = "0.5.0" +version = "0.5.1" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/.gitignore b/llama-index-integrations/tools/llama-index-tools-linkup-research/.gitignore new file mode 100644 index 0000000000000..990c18de22908 --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/.gitignore @@ -0,0 +1,153 @@ +llama_index/_static +.DS_Store +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +bin/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +etc/ +include/ +lib/ +lib64/ +parts/ +sdist/ +share/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +.ruff_cache + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints +notebooks/ + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ +pyvenv.cfg + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# Jetbrains +.idea +modules/ +*.swp + +# VsCode +.vscode + +# pipenv +Pipfile +Pipfile.lock + +# pyright +pyrightconfig.json diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/BUILD b/llama-index-integrations/tools/llama-index-tools-linkup-research/BUILD new file mode 100644 index 0000000000000..0896ca890d8bf --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/BUILD @@ -0,0 +1,3 @@ +poetry_requirements( + name="poetry", +) diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/CHANGELOG.md b/llama-index-integrations/tools/llama-index-tools-linkup-research/CHANGELOG.md new file mode 100644 index 0000000000000..36bff877abcbe --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG + +## [0.1.2] - 2024-02-13 + +- Add maintainers and keywords from library.json (llamahub) diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/Makefile b/llama-index-integrations/tools/llama-index-tools-linkup-research/Makefile new file mode 100644 index 0000000000000..b9eab05aa3706 --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/Makefile @@ -0,0 +1,17 @@ +GIT_ROOT ?= $(shell git rev-parse --show-toplevel) + +help: ## Show all Makefile targets. + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[33m%-30s\033[0m %s\n", $$1, $$2}' + +format: ## Run code autoformatters (black). + pre-commit install + git ls-files | xargs pre-commit run black --files + +lint: ## Run linters: pre-commit (black, ruff, codespell) and mypy + pre-commit install && git ls-files | xargs pre-commit run --show-diff-on-failure --files + +test: ## Run tests via pytest. + pytest tests + +watch-docs: ## Build and watch documentation. + sphinx-autobuild docs/ docs/_build/html --open-browser --watch $(GIT_ROOT)/llama_index/ diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/README.md b/llama-index-integrations/tools/llama-index-tools-linkup-research/README.md new file mode 100644 index 0000000000000..06ba313a9b317 --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/README.md @@ -0,0 +1,39 @@ +# Linkup Research Tool + +[Linkup](https://app.linkup.so/) is a robust research API tailored specifically for LLM Agents. It seamlessly integrates with diverse data sources to ensure a superior, relevant research experience. + +- you need to obtain an API key on the [Linkup dashboard](https://app.linkup.com/) + +### Quick Start: + +```bash +pip install llama-index-tools-linkup-research +``` + +```python +import os +from llama_index.core.agent import FunctionCallingAgent +from llama_index.llms.openai import OpenAI +from llama_index.tools.linkup_research.base import LinkupToolSpec + + +# structured_schema=json.dumps(your schema here) # Only if output type is structured +# Initialisation of the tool +linkup_tool = LinkupToolSpec( + api_key="your Linkup API Key", + depth="", # Choose (standard) for a faster result (deep) for a slower but more complete result. + output_type="", # Choose (searchResults) for a list of results relative to your query, (sourcedAnswer) for an answer and a list of sources, or (structured) if you want a specific schema. + # structured_output_schema=structured_schema # Only if output type is structured +) + +# Creation of the agent +agent = FunctionCallingAgent.from_tools( + linkup_tool.to_tool_list(), + llm=OpenAI(model="gpt-4o"), +) + +# Query for the agent +agent.chat("Can you tell me which women were awarded the Physics Nobel Prize") +``` + +This loader is designed to be used as a way to load data as a Tool in an Agent. diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/examples/linkup.ipynb b/llama-index-integrations/tools/llama-index-tools-linkup-research/examples/linkup.ipynb new file mode 100644 index 0000000000000..053b1c6b2696a --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/examples/linkup.ipynb @@ -0,0 +1,110 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Building a Linkup Data Agent\n", + "\n", + "This tutorial walks through using the LLM tools provided by the [Linkup API](https://app.linkup.so/) to allow LLMs to easily search and retrieve relevant content from the Internet.\n", + "\n", + "To get started, you will need an [OpenAI api key](https://platform.openai.com/account/api-keys) and a [Linkup API key](https://app.linkup.so)\n", + "\n", + "We will import the relevant agents and tools and pass them our keys here:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mRunning cells with '.venv (Python 3.13.1)' requires the ipykernel package.\n", + "\u001b[1;31mRun the following command to install 'ipykernel' into the Python environment. \n", + "\u001b[1;31mCommand: '/Users/juliettesivan/llama_index/.venv/bin/python -m pip install ipykernel -U --force-reinstall'" + ] + } + ], + "source": [ + "%pip install llama-index-tools-linkup-research llama-index" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set your openai key, if using openai\n", + "\n", + "import os\n", + "from llama_index.llms.openai import OpenAI\n", + "\n", + "os.environ[\"OPENAI_API_KEY\"] = \"sk-...\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Set up Linkup tool\n", + "\n", + "from llama_index.tools.linkup_research.base import LinkupToolSpec\n", + "\n", + "# structured_schema=json.dumps(your schema here) # Only if output type is structured\n", + "# Initialisation of the tool\n", + "linkup_tool = LinkupToolSpec(\n", + " api_key=\"your Linkup API Key\",\n", + " depth=\"\", # Choose (standard) for a faster result (deep) for a slower but more complete result.\n", + " output_type=\"\", # Choose (searchResults) for a list of results relative to your query, (sourcedAnswer) for an answer and a list of sources, or (structured) if you want a specific shema.\n", + " # structured_output_schema=structured_schema # Only if output type is structured\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Call the agent\n", + "\n", + "from llama_index.core.agent import FunctionCallingAgent\n", + "\n", + "agent = FunctionCallingAgent.from_tools(\n", + " linkup_tool.to_tool_list(),\n", + " llm=OpenAI(model=\"gpt-4o\"),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Query for the agent\n", + "\n", + "print(agent.chat(\"Can you tell me which women were awarded the Physics Nobel Prize\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/BUILD b/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/BUILD new file mode 100644 index 0000000000000..db46e8d6c978c --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/BUILD @@ -0,0 +1 @@ +python_sources() diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/__init__.py b/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/__init__.py new file mode 100644 index 0000000000000..d4f86fda0becf --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/__init__.py @@ -0,0 +1,3 @@ +from llama_index.tools.linkup_research.base import LinkupToolSpec + +__all__ = ["LinkupToolSpec"] diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/base.py b/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/base.py new file mode 100644 index 0000000000000..0347046038b6b --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/llama_index/tools/linkup_research/base.py @@ -0,0 +1,39 @@ +"""Linkup tool spec.""" + +from llama_index.core.tools.tool_spec.base import BaseToolSpec + + +class LinkupToolSpec(BaseToolSpec): + """Linkup tool spec.""" + + spec_functions = [ + "search", + ] + + def __init__(self, api_key: str, depth: str, output_type: str) -> None: + """Initialize with parameters.""" + from linkup import LinkupClient + + self.client = LinkupClient(api_key=api_key) + self.depth = depth + self.output_type = output_type + + def search(self, query: str): + """ + Run query through Linkup Search and return metadata. + + Args: + query: The query to search for. + """ + api_params = { + "query": query, + "depth": self.depth, + "output_type": self.output_type, + } + if self.output_type == "structured": + if not self.structured_output_schema: + raise ValueError( + "structured_output_schema must be provided when output_type is 'structured'." + ) + api_params["structured_output_schema"] = self.structured_output_schema + return self.client.search(**api_params) diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-linkup-research/pyproject.toml new file mode 100644 index 0000000000000..bd7ddd3e319db --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/pyproject.toml @@ -0,0 +1,65 @@ +[build-system] +build-backend = "poetry.core.masonry.api" +requires = ["poetry-core"] + +[tool.codespell] +check-filenames = true +check-hidden = true +skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb" + +[tool.llamahub] +contains_example = false +import_path = "llama_index.tools.linkup_research" + +[tool.llamahub.class_authors] +LinkupToolSpec = "juliette0704" + +[tool.mypy] +disallow_untyped_defs = true +exclude = ["_static", "build", "examples", "notebooks", "venv"] +ignore_missing_imports = true +python_version = "3.8" + +[tool.poetry] +authors = ["Your Name "] +description = "llama-index tools linkup_research integration" +exclude = ["**/BUILD"] +keywords = ["search"] +license = "MIT" +maintainers = ["juliette0704"] +name = "llama-index-tools-linkup-research" +readme = "README.md" +version = "0.3.0" + +[tool.poetry.dependencies] +python = ">=3.9,<4.0" +linkup-sdk = ">=0.2.2" +llama-index-core = "^0.12.0" + +[tool.poetry.group.dev.dependencies] +ipython = "8.10.0" +jupyter = "^1.0.0" +mypy = "0.991" +pre-commit = "3.2.0" +pylint = "2.15.10" +pytest = "7.2.1" +pytest-mock = "3.11.1" +ruff = "0.0.292" +tree-sitter-languages = "^1.8.0" +types-Deprecated = ">=0.1.0" +types-PyYAML = "^6.0.12.12" +types-protobuf = "^4.24.0.4" +types-redis = "4.5.5.0" +types-requests = "2.28.11.8" +types-setuptools = "67.1.0.0" + +[tool.poetry.group.dev.dependencies.black] +extras = ["jupyter"] +version = "<=23.9.1,>=23.7.0" + +[tool.poetry.group.dev.dependencies.codespell] +extras = ["toml"] +version = ">=v2.2.6" + +[[tool.poetry.packages]] +include = "llama_index/" diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/BUILD b/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/BUILD new file mode 100644 index 0000000000000..dabf212d7e716 --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/BUILD @@ -0,0 +1 @@ +python_tests() diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/__init__.py b/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/__init__.py new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/test_tools_linkup_research.py b/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/test_tools_linkup_research.py new file mode 100644 index 0000000000000..71adc9b97179b --- /dev/null +++ b/llama-index-integrations/tools/llama-index-tools-linkup-research/tests/test_tools_linkup_research.py @@ -0,0 +1,7 @@ +from llama_index.core.tools.tool_spec.base import BaseToolSpec +from llama_index.tools.linkup_research import LinkupToolSpec + + +def test_class(): + names_of_base_classes = [b.__name__ for b in LinkupToolSpec.__mro__] + assert BaseToolSpec.__name__ in names_of_base_classes diff --git a/llama-index-integrations/tools/llama-index-tools-notion/llama_index/tools/notion/base.py b/llama-index-integrations/tools/llama-index-tools-notion/llama_index/tools/notion/base.py index ed5a92f0cdbf8..49997780e88f8 100644 --- a/llama-index-integrations/tools/llama-index-tools-notion/llama_index/tools/notion/base.py +++ b/llama-index-integrations/tools/llama-index-tools-notion/llama_index/tools/notion/base.py @@ -54,15 +54,17 @@ def get_fn_schema_from_fn_name( raise ValueError(f"Invalid function name: {fn_name}") def load_data( - self, page_ids: Optional[List[str]] = None, database_id: Optional[str] = None + self, + page_ids: Optional[List[str]] = None, + database_ids: Optional[List[str]] = None, ) -> str: - """Loads content from a set of page ids or a database id. + """Loads content from a set of page ids or database ids. - Don't use this endpoint if you don't know the page ids or database id. + Don't use this endpoint if you don't know the page ids or database ids. """ page_ids = page_ids or [] - docs = self.reader.load_data(page_ids=page_ids, database_id=database_id) + docs = self.reader.load_data(page_ids=page_ids, database_ids=database_ids) return "\n".join([doc.get_content() for doc in docs]) def search_data( @@ -73,11 +75,12 @@ def search_data( value: Optional[str] = None, property: Optional[str] = None, page_size: int = 100, - ) -> str: + ) -> List[Dict[str, Any]]: """Search a list of relevant pages. Contains metadata for each page (but not the page content). - + params: + query: the title of the page or database to search for, which is fuzzy matched. """ payload: Dict[str, Any] = { "query": query, diff --git a/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml index bc626cae226f6..5285fe160f600 100644 --- a/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml +++ b/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml @@ -28,7 +28,7 @@ license = "MIT" maintainers = ["jerryjliu"] name = "llama-index-tools-notion" readme = "README.md" -version = "0.3.0" +version = "0.3.1" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/tools/llama-index-tools-notion/tests/test_tools_notion.py b/llama-index-integrations/tools/llama-index-tools-notion/tests/test_tools_notion.py index 6d02e1403184d..7dc948e02525b 100644 --- a/llama-index-integrations/tools/llama-index-tools-notion/tests/test_tools_notion.py +++ b/llama-index-integrations/tools/llama-index-tools-notion/tests/test_tools_notion.py @@ -1,7 +1,56 @@ +import os + +import pytest from llama_index.core.tools.tool_spec.base import BaseToolSpec from llama_index.tools.notion import NotionToolSpec +# Get yourself a page id and database id from your notion account +# Refer to the page: https://developers.notion.com/docs/create-a-notion-integration#give-your-integration-page-permissions + +page_ids = ["17d66c19670f80c5aaddfb8a0a449179"] # replace with your page id +database_ids = ["16066c19-670f-801d-adb8-fa9d1cdaa053"] # replace with your database id + def test_class(): names_of_base_classes = [b.__name__ for b in NotionToolSpec.__mro__] assert BaseToolSpec.__name__ in names_of_base_classes + + +@pytest.mark.skipif( + "NOTION_INTEGRATION_TOKEN" not in os.environ, + reason="NOTION_INTEGRATION_TOKEN is not set", +) +def test_load_data_with_page_ids(): + tool = NotionToolSpec() + content = tool.load_data(page_ids=page_ids) + assert content + + +@pytest.mark.skipif( + "NOTION_INTEGRATION_TOKEN" not in os.environ, + reason="NOTION_INTEGRATION_TOKEN is not set", +) +def test_load_data_with_database_ids(): + tool = NotionToolSpec() + content = tool.load_data(database_ids=database_ids) + assert content + + +@pytest.mark.skipif( + "NOTION_INTEGRATION_TOKEN" not in os.environ, + reason="NOTION_INTEGRATION_TOKEN is not set", +) +def test_load_data_with_page_ids_and_database_ids(): + tool = NotionToolSpec() + content = tool.load_data(page_ids=page_ids, database_ids=database_ids) + assert content + + +@pytest.mark.skipif( + "NOTION_INTEGRATION_TOKEN" not in os.environ, + reason="NOTION_INTEGRATION_TOKEN is not set", +) +def test_search_data(): + tool = NotionToolSpec() + result = tool.search_data(query="Website") # replace with your search query + assert len(result) > 0 diff --git a/llama-index-integrations/tools/llama-index-tools-vectara-query/README.md b/llama-index-integrations/tools/llama-index-tools-vectara-query/README.md index 3b48504bd8a2d..d06d0cbc46764 100644 --- a/llama-index-integrations/tools/llama-index-tools-vectara-query/README.md +++ b/llama-index-integrations/tools/llama-index-tools-vectara-query/README.md @@ -4,12 +4,13 @@ This tool connects to a Vectara corpus and allows agents to make semantic search ## Usage +Please note that this usage example relies on version >=0.3.0. + This tool has a more extensive example usage documented in a Jupyter notebok [here](https://github.com/run-llama/llama_index/blob/main/llama-index-integrations/tools/llama-index-tools-vectara-query/examples/vectara_query.ipynb) -To use this tool, you'll need the following information in your environment: +To use this tool, you'll need a Vectara account (If you don't have an account, you can create one [here](https://vectara.com/integrations/llamaindex)) and the following information in your environment: -- `VECTARA_CUSTOMER_ID`: The customer id for your Vectara account. If you don't have an account, you can create one [here](https://vectara.com/integrations/llamaindex). -- `VECTARA_CORPUS_ID`: The corpus id for the Vectara corpus that you want your tool to search for information. If you need help creating a corpus with your data, follow this [Quick Start](https://docs.vectara.com/docs/quickstart) guide. +- `VECTARA_CORPUS_KEY`: The corpus key for the Vectara corpus that you want your tool to search for information. If you need help creating a corpus with your data, follow this [Quick Start](https://docs.vectara.com/docs/quickstart) guide. - `VECTARA_API_KEY`: An API key that can perform queries on this corpus. Here's an example usage of the VectaraQueryToolSpec. diff --git a/llama-index-integrations/tools/llama-index-tools-vectara-query/examples/vectara_query.ipynb b/llama-index-integrations/tools/llama-index-tools-vectara-query/examples/vectara_query.ipynb index 028979f10f8a7..d12e71e8bcab6 100644 --- a/llama-index-integrations/tools/llama-index-tools-vectara-query/examples/vectara_query.ipynb +++ b/llama-index-integrations/tools/llama-index-tools-vectara-query/examples/vectara_query.ipynb @@ -21,13 +21,13 @@ "id": "4452df2a-976b-4e1c-9f9b-2fa983569948", "metadata": {}, "source": [ + "Please note that this example notebook is only for Vectara Query tool versions >=0.3.0\n", + "\n", "To get started with Vectara, [sign up](https://vectara.com/integrations/llamaindex) (if you haven't already) and follow our [quickstart](https://docs.vectara.com/docs/quickstart) guide to create a corpus and an API key.\n", "\n", "Once you have done this, add the following variables to your environment:\n", "\n", - "`VECTARA_CUSTOMER_ID`: The customer id for your Vectara account.\n", - "\n", - "`VECTARA_CORPUS_ID`: The corpus id for the Vectara corpus that you want your tool to search for information.\n", + "`VECTARA_CORPUS_KEY`: The corpus key for the Vectara corpus that you want your tool to search for information.\n", "\n", "`VECTARA_API_KEY`: An API key that can perform queries on this corpus.\n", "\n", diff --git a/llama-index-integrations/tools/llama-index-tools-vectara-query/llama_index/tools/vectara_query/base.py b/llama-index-integrations/tools/llama-index-tools-vectara-query/llama_index/tools/vectara_query/base.py index dff6bf75ff4d9..75cbb5622f89b 100644 --- a/llama-index-integrations/tools/llama-index-tools-vectara-query/llama_index/tools/vectara_query/base.py +++ b/llama-index-integrations/tools/llama-index-tools-vectara-query/llama_index/tools/vectara_query/base.py @@ -1,4 +1,4 @@ -from typing import Any, List, Dict, Optional +from typing import Any, Union, List, Dict, Optional from llama_index.core.tools.tool_spec.base import BaseToolSpec from llama_index.core.schema import QueryBundle from llama_index.core.callbacks.base import CallbackManager @@ -15,80 +15,114 @@ class VectaraQueryToolSpec(BaseToolSpec): def __init__( self, - vectara_customer_id: Optional[str] = None, - vectara_corpus_id: Optional[str] = None, + vectara_corpus_key: Optional[str] = None, vectara_api_key: Optional[str] = None, num_results: int = 5, - lambda_val: float = 0.005, + offset: int = 0, + lambda_val: Union[List[float], float] = 0.005, + semantics: Union[List[str], str] = "default", + custom_dimensions: Union[List[Dict], Dict] = {}, n_sentences_before: int = 2, n_sentences_after: int = 2, - metadata_filter: str = "", + metadata_filter: Union[List[str], str] = "", reranker: str = "mmr", rerank_k: int = 50, + rerank_limit: Optional[int] = None, + rerank_cutoff: Optional[float] = None, mmr_diversity_bias: float = 0.2, udf_expression: str = None, rerank_chain: List[Dict] = None, summarizer_prompt_name: str = "vectara-summary-ext-24-05-sml", summary_num_results: int = 5, summary_response_lang: str = "eng", + prompt_text: Optional[str] = None, + max_response_chars: Optional[int] = None, + max_tokens: Optional[int] = None, + temperature: Optional[float] = None, + frequency_penalty: Optional[float] = None, + presence_penalty: Optional[float] = None, citations_style: Optional[str] = None, citations_url_pattern: Optional[str] = None, citations_text_pattern: Optional[str] = None, + save_history: bool = False, callback_manager: Optional[CallbackManager] = None, **kwargs: Any, ) -> None: """Initializes the Vectara API and query parameters. Parameters: - - vectara_customer_id (str): Your Vectara customer ID. - If not specified, reads for environment variable "VECTARA_CUSTOMER_ID". - - vectara_corpus_id (str): The corpus ID for the corpus you want to search for information. - If not specified, reads for environment variable "VECTARA_CORPUS_ID". + - vectara_corpus_key (str): The corpus key for the corpus you want to search for information. + If not specified, reads for environment variable "VECTARA_CORPUS_KEY". - vectara_api_key (str): An API key that has query permissions for the given corpus. If not specified, reads for environment variable "VECTARA_API_KEY". - num_results (int): Number of search results to return with response. - - lambda_val (float): Lambda value for the Vectara query. + - offset (int): Number of results to skip. + - lambda_val (Union[List[float], float]): Lambda value for the Vectara query. + Provide single value for one corpus or a list of values for each corpus. + - semantics (Union[List[str], str]): Indicates whether the query is intended as a query or response. + Provide single value for one corpus or a list of values for each corpus. + - custom_dimensions (Dict): Custom dimensions for the query. + See (https://docs.vectara.com/docs/learn/semantic-search/add-custom-dimensions) + for more details about usage. + Provide single dict for one corpus or a list of dicts for each corpus. - n_sentences_before (int): Number of sentences before the summary. - n_sentences_after (int): Number of sentences after the summary. - - metadata_filter (str): A string with expressions to filter the search documents. - - reranker (str): The reranker mode, either "mmr", "slingshot", "multilingual_reranker_v1", "udf", or "none". + - metadata_filter (Union[List[str], str]): A string with expressions to filter the search documents for each corpus. + Provide single string for one corpus or a list of strings for each corpus (if multiple corpora). + - reranker (str): The reranker to use, either mmr, slingshot (i.e. multilingual_reranker_v1), userfn, or chain. - rerank_k (int): Number of top-k documents for reranking. + - rerank_limit (int): maximum number of results to return after reranking, defaults to 50. + Don't specify this for chain reranking. Instead, put the "limit" parameter in the dict for each individual reranker. + - rerank_cutoff (float): minimum score threshold for results to include after reranking, defaults to 0. + Don't specify this for chain reranking. Instead, put the "chain" parameter in the dict for each individual reranker. - mmr_diversity_bias (float): MMR diversity bias. - udf_expression (str): the user defined expression for reranking results. See (https://docs.vectara.com/docs/learn/user-defined-function-reranker) for more details about syntax for udf reranker expressions. - rerank_chain: a list of rerankers to be applied in a sequence and their associated parameters - for the chain reranker. Each element should specify the "type" of reranker (mmr, slingshot, udf) + for the chain reranker. Each element should specify the "type" of reranker (mmr, slingshot, userfn) and any other parameters (e.g. "limit" or "cutoff" for any type, "diversity_bias" for mmr, and "user_function" for udf). If using slingshot/multilingual_reranker_v1, it must be first in the list. - summarizer_prompt_name (str): If enable_summarizer is True, the Vectara summarizer to use. - summary_num_results (int): If enable_summarizer is True, the number of summary results. - summary_response_lang (str): If enable_summarizer is True, the response language for the summary. + - prompt_text (str): the custom prompt, using appropriate prompt variables and functions. + See (https://docs.vectara.com/docs/1.0/prompts/custom-prompts-with-metadata) + for more details. + - max_response_chars (int): the desired maximum number of characters for the generated summary. + - max_tokens (int): the maximum number of tokens to be returned by the LLM. + - temperature (float): The sampling temperature; higher values lead to more randomness. + - frequency_penalty (float): How much to penalize repeating tokens in the response, reducing likelihood of repeating the same line. + - presence_penalty (float): How much to penalize repeating tokens in the response, increasing the diversity of topics. - citations_style (str): The style of the citations in the summary generation, - either "numeric", "html", "markdown", or "none". - This is a Vectara Scale only feature. Defaults to None. + either "numeric", "html", "markdown", or "none". Defaults to None. - citations_url_pattern (str): URL pattern for html and markdown citations. If non-empty, specifies the URL pattern to use for citations; e.g. "{doc.url}". See (https://docs.vectara.com/docs/api-reference/search-apis/search#citation-format-in-summary) for more details. - This is a Vectara Scale only feature. Defaults to None. + Defaults to None. - citations_text_pattern (str): The displayed text for citations. If not specified, numeric citations are displayed. + - save_history (bool): Whether to save the query in history. Defaults to False. """ self.index = VectaraIndex( - vectara_customer_id=vectara_customer_id, - vectara_corpus_id=vectara_corpus_id, + vectara_corpus_key=vectara_corpus_key, vectara_api_key=vectara_api_key, ) self.retriever = VectaraRetriever( index=self.index, similarity_top_k=num_results, + offset=offset, lambda_val=lambda_val, + semantics=semantics, + custom_dimensions=custom_dimensions, n_sentences_before=n_sentences_before, n_sentences_after=n_sentences_after, filter=metadata_filter, reranker=reranker, rerank_k=rerank_k, + rerank_limit=rerank_limit, + rerank_cutoff=rerank_cutoff, mmr_diversity_bias=mmr_diversity_bias, udf_expression=udf_expression, rerank_chain=rerank_chain, @@ -100,12 +134,17 @@ def __init__( query_engine_retriever = VectaraRetriever( index=self.index, similarity_top_k=num_results, + offset=offset, lambda_val=lambda_val, + semantics=semantics, + custom_dimensions=custom_dimensions, n_sentences_before=n_sentences_before, n_sentences_after=n_sentences_after, filter=metadata_filter, reranker=reranker, rerank_k=rerank_k, + rerank_limit=rerank_limit, + rerank_cutoff=rerank_cutoff, mmr_diversity_bias=mmr_diversity_bias, udf_expression=udf_expression, rerank_chain=rerank_chain, @@ -113,6 +152,11 @@ def __init__( summary_response_lang=summary_response_lang, summary_num_results=summary_num_results, summary_prompt_name=summarizer_prompt_name, + prompt_text=prompt_text, + max_response_chars=max_response_chars, + max_tokens=max_tokens, + temperature=temperature, + frequency_penalty=frequency_penalty, citations_style=citations_style, citations_url_pattern=citations_url_pattern, citations_text_pattern=citations_text_pattern, @@ -142,7 +186,7 @@ def semantic_search( return [ { - "text": doc.node.text, + "text": doc.node.text_resource.text, "citation_metadata": doc.node.metadata, } for doc in response diff --git a/llama-index-integrations/tools/llama-index-tools-vectara-query/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-vectara-query/pyproject.toml index 0da57cfa54d2d..83b1de3a8aadc 100644 --- a/llama-index-integrations/tools/llama-index-tools-vectara-query/pyproject.toml +++ b/llama-index-integrations/tools/llama-index-tools-vectara-query/pyproject.toml @@ -28,12 +28,12 @@ license = "MIT" name = "llama-index-tools-vectara-query" packages = [{include = "llama_index/"}] readme = "README.md" -version = "0.2.0" +version = "0.3.0" [tool.poetry.dependencies] python = ">=3.9,<4.0" llama-index-core = "^0.12.0" -llama-index-indices-managed-vectara = "^0.3.0" +llama-index-indices-managed-vectara = "^0.4.0" [tool.poetry.group.dev.dependencies] black = {extras = ["jupyter"], version = "<=23.9.1,>=23.7.0"} diff --git a/llama-index-integrations/tools/llama-index-tools-vectara-query/tests/test_tools_vectara_query.py b/llama-index-integrations/tools/llama-index-tools-vectara-query/tests/test_tools_vectara_query.py index 46310e6f011eb..74fcdfbb9f899 100644 --- a/llama-index-integrations/tools/llama-index-tools-vectara-query/tests/test_tools_vectara_query.py +++ b/llama-index-integrations/tools/llama-index-tools-vectara-query/tests/test_tools_vectara_query.py @@ -1,5 +1,5 @@ from typing import List -from llama_index.core.schema import Document +from llama_index.core.schema import Document, MediaResource from llama_index.indices.managed.vectara import VectaraIndex from llama_index.core.tools.tool_spec.base import BaseToolSpec from llama_index.tools.vectara_query import VectaraQueryToolSpec @@ -11,16 +11,15 @@ # # For this test to run properly, please setup as follows: # 1. Create a Vectara account: sign up at https://console.vectara.com/signup -# 2. Create a corpus in your Vectara account, with the following filter attributes: +# 2. Create two corpora in your Vectara account with the following filter attributes in the first corpus: # a. doc.test_num (text) # b. doc.test_score (integer) # c. doc.date (text) # d. doc.url (text) -# 3. Create an API_KEY for this corpus with permissions for query and indexing +# 3. Create an API_KEY for these corpora with permissions for query and indexing # 4. Setup environment variables: -# VECTARA_API_KEY, VECTARA_CORPUS_ID, VECTARA_CUSTOMER_ID, and OPENAI_API_KEY -# -# Note: In order to run test_citations, you will need a Scale account. +# VECTARA_API_KEY, VECTARA_CORPUS_KEY, and OPENAI_API_KEY +# For VECTARA_CORPUS_KEY, separate the corpus keys for the corpora with a ',' for example: "llamaindex-testing-1,llamaindex-testing-2". # @@ -32,18 +31,22 @@ def test_class(): def get_docs() -> List[Document]: inputs = [ { + "id": "doc_1", "text": "This is test text for Vectara integration with LlamaIndex", "metadata": {"test_num": "1", "test_score": 10, "date": "2020-02-25"}, }, { + "id": "doc_2", "text": "And now for something completely different", "metadata": {"test_num": "2", "test_score": 2, "date": "2015-10-13"}, }, { + "id": "doc_3", "text": "when 900 years you will be, look as good you will not", "metadata": {"test_num": "3", "test_score": 20, "date": "2023-09-12"}, }, { + "id": "doc_4", "text": "when 850 years you will be, look as good you will not", "metadata": {"test_num": "4", "test_score": 50, "date": "2022-01-01"}, }, @@ -51,7 +54,8 @@ def get_docs() -> List[Document]: docs: List[Document] = [] for inp in inputs: doc = Document( - text=str(inp["text"]), + id_=inp["id"], + text_resource=MediaResource(text=inp["text"]), metadata=inp["metadata"], ) docs.append(doc) @@ -70,7 +74,7 @@ def vectara1(): # Tear down code for id in vectara1.doc_ids: - vectara1._delete_doc(id) + vectara1.delete_ref_doc(id) def test_simple_retrieval(vectara1) -> None: @@ -78,7 +82,7 @@ def test_simple_retrieval(vectara1) -> None: tool_spec = VectaraQueryToolSpec(num_results=1) res = tool_spec.semantic_search("Find me something different.") assert len(res) == 1 - assert res[0]["text"] == docs[1].text + assert res[0]["text"] == docs[1].text_resource.text def test_mmr_retrieval(vectara1) -> None: @@ -95,8 +99,8 @@ def test_mmr_retrieval(vectara1) -> None: ) res = tool_spec.semantic_search("How will I look?") assert len(res) == 2 - assert res[0]["text"] == docs[2].text - assert res[1]["text"] == docs[3].text + assert res[0]["text"] == docs[2].text_resource.text + assert res[1]["text"] == docs[3].text_resource.text # test with diversity bias = 1 tool_spec = VectaraQueryToolSpec( @@ -109,18 +113,18 @@ def test_mmr_retrieval(vectara1) -> None: ) res = tool_spec.semantic_search("How will I look?") assert len(res) == 2 - assert res[0]["text"] == docs[2].text + assert res[0]["text"] == docs[2].text_resource.text def test_retrieval_with_filter(vectara1) -> None: docs = get_docs() tool_spec = VectaraQueryToolSpec( - num_results=1, metadata_filter="doc.test_num = '1'" + num_results=1, metadata_filter=["doc.test_num = '1'", ""] ) res = tool_spec.semantic_search("What does this test?") assert len(res) == 1 - assert res[0]["text"] == docs[0].text + assert res[0]["text"] == docs[0].text_resource.text def test_udf_retrieval(vectara1) -> None: @@ -131,28 +135,28 @@ def test_udf_retrieval(vectara1) -> None: num_results=2, n_sentences_before=0, n_sentences_after=0, - reranker="udf", + reranker="userfn", udf_expression="get('$.score') + get('$.document_metadata.test_score')", ) res = tool_spec.semantic_search("What will the future look like?") assert len(res) == 2 - assert res[0]["text"] == docs[3].text - assert res[1]["text"] == docs[2].text + assert res[0]["text"] == docs[3].text_resource.text + assert res[1]["text"] == docs[2].text_resource.text # test with dates: Weight of score subtracted by number of years from current date tool_spec = VectaraQueryToolSpec( num_results=2, n_sentences_before=0, n_sentences_after=0, - reranker="udf", + reranker="userfn", udf_expression="max(0, 5 * get('$.score') - (to_unix_timestamp(now()) - to_unix_timestamp(datetime_parse(get('$.document_metadata.date'), 'yyyy-MM-dd'))) / 31536000)", ) res = tool_spec.semantic_search("What will the future look like?") assert len(res) == 2 - assert res[0]["text"] == docs[2].text - assert res[1]["text"] == docs[3].text + assert res[0]["text"] == docs[2].text_resource.text + assert res[1]["text"] == docs[3].text_resource.text def test_chain_rerank_retrieval(vectara1) -> None: @@ -169,7 +173,7 @@ def test_chain_rerank_retrieval(vectara1) -> None: res = tool_spec.semantic_search("What's this all about?") assert len(res) == 2 - assert res[0]["text"] == docs[0].text + assert res[0]["text"] == docs[0].text_resource.text # Test chain with UDF and limit tool_spec = VectaraQueryToolSpec( @@ -181,7 +185,7 @@ def test_chain_rerank_retrieval(vectara1) -> None: {"type": "slingshot"}, {"type": "mmr"}, { - "type": "udf", + "type": "userfn", "user_function": "5 * get('$.score') + get('$.document_metadata.test_score') / 2", "limit": 2, }, @@ -190,8 +194,8 @@ def test_chain_rerank_retrieval(vectara1) -> None: res = tool_spec.semantic_search("What's this all about?") assert len(res) == 2 - assert res[0]["text"] == docs[3].text - assert res[1]["text"] == docs[2].text + assert res[0]["text"] == docs[3].text_resource.text + assert res[1]["text"] == docs[2].text_resource.text # Test chain with cutoff tool_spec = VectaraQueryToolSpec( @@ -207,7 +211,37 @@ def test_chain_rerank_retrieval(vectara1) -> None: res = tool_spec.semantic_search("What's this all about?") assert len(res) == 1 - assert res[0]["text"] == docs[0].text + assert res[0]["text"] == docs[0].text_resource.text + + # Second query with same retriever to ensure rerank chain configuration remains the same + res = tool_spec.semantic_search("How will I look when I'm older?") + assert tool_spec.retriever._rerank_chain[0].get("type") == "customer_reranker" + assert ( + tool_spec.retriever._rerank_chain[0].get("reranker_name") + == "Rerank_Multilingual_v1" + ) + assert tool_spec.retriever._rerank_chain[1].get("type") == "mmr" + assert res[0]["text"] == docs[2].text_resource.text + + +def test_custom_prompt(vectara1) -> None: + docs = get_docs() + + tool_spec = VectaraQueryToolSpec( + num_results=3, + n_sentences_before=0, + n_sentences_after=0, + reranker="mmr", + mmr_diversity_bias=0.2, + prompt_text='[\n {"role": "system", "content": "You are an expert in summarizing the future of Vectara\'s inegration with LlamaIndex. Your summaries are insightful, concise, and highlight key innovations and changes."},\n #foreach ($result in $vectaraQueryResults)\n {"role": "user", "content": "What are the key points in result number $vectaraIdxWord[$foreach.index] about Vectara\'s LlamaIndex integration?"},\n {"role": "assistant", "content": "In result number $vectaraIdxWord[$foreach.index], the key points are: ${result.getText()}"},\n #end\n {"role": "user", "content": "Can you generate a comprehensive summary on \'Vectara\'s LlamaIndex Integration\' incorporating all the key points discussed?"}\n]\n', + ) + + res = tool_spec.rag_query("How will Vectara's integration look in the future?") + assert "integration" in res["summary"].lower() + assert "llamaindex" in res["summary"].lower() + assert "vectara" in res["summary"].lower() + assert "result" in res["summary"].lower() + assert res["factual_consistency_score"] > 0 @pytest.fixture() @@ -225,7 +259,7 @@ def vectara2(): yield vectara2 # Tear down code - vectara2._delete_doc(id) + vectara2.delete_ref_doc(id) def test_basic_rag_query(vectara2) -> None: @@ -287,7 +321,7 @@ def test_agent_basic(vectara2) -> None: tool_spec = VectaraQueryToolSpec(num_results=10, reranker="mmr") agent = OpenAIAgent.from_tools(tool_spec.to_tool_list()) - res = agent.chat("Please summarize Paul Graham's work").response + res = agent.chat("Please summarize Paul's thoughts about paintings?").response agent_tasks = agent.get_completed_tasks() tool_called = ( agent_tasks[0] @@ -296,12 +330,12 @@ def test_agent_basic(vectara2) -> None: .function.name ) assert tool_called == "rag_query" - assert "bel" in res.lower() and "lisp" in res.lower() + assert "paint" in res.lower() and "paul" in res.lower() def test_agent_filter(vectara1) -> None: tool_spec = VectaraQueryToolSpec( - num_results=1, metadata_filter="doc.date > '2022-02-01'" + num_results=1, metadata_filter=["doc.date > '2022-02-01'", ""] ) agent = OpenAIAgent.from_tools(tool_spec.to_tool_list()) diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/llama_index/vector_stores/pinecone/base.py b/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/llama_index/vector_stores/pinecone/base.py index e2b64c2d69019..94942cced6897 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/llama_index/vector_stores/pinecone/base.py +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/llama_index/vector_stores/pinecone/base.py @@ -371,6 +371,7 @@ def get_nodes( node_ids: Optional[List[str]] = None, filters: Optional[List[MetadataFilters]] = None, limit: int = 100, + include_values: bool = False, ) -> List[BaseNode]: filter = None if filters is not None: @@ -392,11 +393,16 @@ def get_nodes( vector=query_vector, namespace=self.namespace, filter=filter, - include_values=True, + include_values=include_values, include_metadata=True, ) - return [metadata_dict_to_node(match.metadata) for match in response.matches] + nodes = [metadata_dict_to_node(match.metadata) for match in response.matches] + if include_values: + for node, match in zip(nodes, response.matches): + node.embedding = match.values + + return nodes def delete(self, ref_doc_id: str, **delete_kwargs: Any) -> None: """ diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml index f214666a1b785..98bfa48f760d1 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml @@ -27,11 +27,11 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-vector-stores-pinecone" readme = "README.md" -version = "0.4.2" +version = "0.4.4" [tool.poetry.dependencies] python = ">=3.9,<3.13" -pinecone-client = ">=3.2.2,<6.0.0" +pinecone = ">=3.2.2,<6.0.0" llama-index-core = "^0.12.0" [tool.poetry.group.dev.dependencies] diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/llama_index/vector_stores/postgres/base.py b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/llama_index/vector_stores/postgres/base.py index 0896c46cc850f..59e66de2c9e94 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/llama_index/vector_stores/postgres/base.py +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/llama_index/vector_stores/postgres/base.py @@ -4,6 +4,7 @@ import asyncpg # noqa import pgvector # noqa +from pgvector.sqlalchemy import HALFVEC import psycopg2 # noqa import sqlalchemy import sqlalchemy.ext.asyncio @@ -46,6 +47,7 @@ def get_data_model( cache_okay: bool, embed_dim: int = 1536, use_jsonb: bool = False, + use_halfvec: bool = False, ) -> Any: """ This part create a dynamic sqlalchemy model with a new table. @@ -66,6 +68,11 @@ class TSVector(TypeDecorator): metadata_dtype = JSONB if use_jsonb else JSON + if use_halfvec: + embedding_col = Column(HALFVEC(embed_dim)) # type: ignore + else: + embedding_col = Column(Vector(embed_dim)) # type: ignore + if hybrid_search: class HybridAbstractData(base): # type: ignore @@ -74,7 +81,7 @@ class HybridAbstractData(base): # type: ignore text = Column(VARCHAR, nullable=False) metadata_ = Column(metadata_dtype) node_id = Column(VARCHAR) - embedding = Column(Vector(embed_dim)) # type: ignore + embedding = embedding_col text_search_tsv = Column( # type: ignore TSVector(), Computed( @@ -101,7 +108,7 @@ class AbstractData(base): # type: ignore text = Column(VARCHAR, nullable=False) metadata_ = Column(metadata_dtype) node_id = Column(VARCHAR) - embedding = Column(Vector(embed_dim)) # type: ignore + embedding = embedding_col model = type( class_name, @@ -130,6 +137,8 @@ class PGVectorStore(BasePydanticVectorStore): user="postgres", table_name="paul_graham_essay", embed_dim=1536 # openai embedding dimension + use_halfvec=True # Enable half precision + ) ``` """ @@ -153,6 +162,8 @@ class PGVectorStore(BasePydanticVectorStore): hnsw_kwargs: Optional[Dict[str, Any]] + use_halfvec: bool = False + _base: Any = PrivateAttr() _table_class: Any = PrivateAttr() _engine: Any = PrivateAttr() @@ -177,6 +188,7 @@ def __init__( hnsw_kwargs: Optional[Dict[str, Any]] = None, create_engine_kwargs: Optional[Dict[str, Any]] = None, initialization_fail_on_error: bool = False, + use_halfvec: bool = False, ) -> None: """Constructor. @@ -196,6 +208,7 @@ def __init__( contains "hnsw_ef_construction", "hnsw_ef_search", "hnsw_m", and optionally "hnsw_dist_method". Defaults to None, which turns off HNSW search. create_engine_kwargs (Optional[Dict[str, Any]], optional): Engine parameters to pass to create_engine. Defaults to None. + use_halfvec (bool, optional): If `True`, use half-precision vectors. Defaults to False. """ table_name = table_name.lower() schema_name = schema_name.lower() @@ -223,6 +236,7 @@ def __init__( hnsw_kwargs=hnsw_kwargs, create_engine_kwargs=create_engine_kwargs or {}, initialization_fail_on_error=initialization_fail_on_error, + use_halfvec=use_halfvec, ) # sqlalchemy model @@ -236,6 +250,7 @@ def __init__( cache_ok, embed_dim=embed_dim, use_jsonb=use_jsonb, + use_halfvec=use_halfvec, ) async def close(self) -> None: @@ -272,6 +287,7 @@ def from_params( use_jsonb: bool = False, hnsw_kwargs: Optional[Dict[str, Any]] = None, create_engine_kwargs: Optional[Dict[str, Any]] = None, + use_halfvec: bool = False, ) -> "PGVectorStore": """Construct from params. @@ -296,6 +312,7 @@ def from_params( contains "hnsw_ef_construction", "hnsw_ef_search", "hnsw_m", and optionally "hnsw_dist_method". Defaults to None, which turns off HNSW search. create_engine_kwargs (Optional[Dict[str, Any]], optional): Engine parameters to pass to create_engine. Defaults to None. + use_halfvec (bool, optional): If `True`, use half-precision vectors. Defaults to False. Returns: PGVectorStore: Instance of PGVectorStore constructed from params. @@ -321,6 +338,7 @@ def from_params( use_jsonb=use_jsonb, hnsw_kwargs=hnsw_kwargs, create_engine_kwargs=create_engine_kwargs, + use_halfvec=use_halfvec, ) @property @@ -396,13 +414,25 @@ def _create_hnsw_index(self) -> None: hnsw_ef_construction = self.hnsw_kwargs.pop("hnsw_ef_construction") hnsw_m = self.hnsw_kwargs.pop("hnsw_m") - hnsw_dist_method = self.hnsw_kwargs.pop("hnsw_dist_method", "vector_cosine_ops") + + # If user didn’t specify an operator, pick a default based on whether halfvec is used + if "hnsw_dist_method" in self.hnsw_kwargs: + hnsw_dist_method = self.hnsw_kwargs.pop("hnsw_dist_method") + else: + if self.use_halfvec: + hnsw_dist_method = "halfvec_l2_ops" + else: + # Default to vector_cosine_ops + hnsw_dist_method = "vector_cosine_ops" index_name = f"{self._table_class.__tablename__}_embedding_idx" with self._session() as session, session.begin(): statement = sqlalchemy.text( - f"CREATE INDEX IF NOT EXISTS {index_name} ON {self.schema_name}.{self._table_class.__tablename__} USING hnsw (embedding {hnsw_dist_method}) WITH (m = {hnsw_m}, ef_construction = {hnsw_ef_construction})" + f"CREATE INDEX IF NOT EXISTS {index_name} " + f"ON {self.schema_name}.{self._table_class.__tablename__} " + f"USING hnsw (embedding {hnsw_dist_method}) " + f"WITH (m = {hnsw_m}, ef_construction = {hnsw_ef_construction})" ) session.execute(statement) session.commit() diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml index 86ffd5af4aa9d..83bd6072b7b41 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-vector-stores-postgres" readme = "README.md" -version = "0.4.1" +version = "0.4.2" [tool.poetry.dependencies] python = ">=3.9,<4.0" diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/tests/test_postgres.py b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/tests/test_postgres.py index 4804c8dba4e76..c6bef6f740cb0 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/tests/test_postgres.py +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/tests/test_postgres.py @@ -273,6 +273,66 @@ def index_node_embeddings() -> List[TextNode]: ] +@pytest.fixture() +def pg_halfvec(db: None) -> Any: + pg = PGVectorStore.from_params( + **PARAMS, # type: ignore + database=TEST_DB, + table_name=TEST_TABLE_NAME + "_halfvec", + schema_name=TEST_SCHEMA_NAME, + embed_dim=TEST_EMBED_DIM, + use_halfvec=True, + ) + yield pg + asyncio.run(pg.close()) + + +@pytest.fixture() +def pg_halfvec_hybrid(db: None) -> Any: + pg = PGVectorStore.from_params( + **PARAMS, # type: ignore + database=TEST_DB, + table_name=TEST_TABLE_NAME + "_halfvec_hybrid", + schema_name=TEST_SCHEMA_NAME, + embed_dim=TEST_EMBED_DIM, + hybrid_search=True, + use_halfvec=True, + ) + yield pg + asyncio.run(pg.close()) + + +@pytest.fixture() +def pg_hnsw_halfvec(db_hnsw: None) -> Any: + pg = PGVectorStore.from_params( + **PARAMS, # type: ignore + database=TEST_DB_HNSW, + table_name=TEST_TABLE_NAME + "_hnsw_halfvec", + schema_name=TEST_SCHEMA_NAME, + embed_dim=TEST_EMBED_DIM, + use_halfvec=True, + hnsw_kwargs={"hnsw_m": 16, "hnsw_ef_construction": 64, "hnsw_ef_search": 40}, + ) + yield pg + asyncio.run(pg.close()) + + +@pytest.fixture() +def pg_hnsw_hybrid_halfvec(db_hnsw: None) -> Any: + pg = PGVectorStore.from_params( + **PARAMS, # type: ignore + database=TEST_DB_HNSW, + table_name=TEST_TABLE_NAME + "_hnsw_halfvec_hybrid", + schema_name=TEST_SCHEMA_NAME, + embed_dim=TEST_EMBED_DIM, + hybrid_search=True, + use_halfvec=True, + hnsw_kwargs={"hnsw_m": 16, "hnsw_ef_construction": 64, "hnsw_ef_search": 40}, + ) + yield pg + asyncio.run(pg.close()) + + @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() async def test_instance_creation(db: None) -> None: @@ -288,23 +348,34 @@ async def test_instance_creation(db: None) -> None: await pg.close() +@pytest.fixture() +def pg_fixture(request): + if request.param == "pg": + return request.getfixturevalue("pg") + elif request.param == "pg_halfvec": + return request.getfixturevalue("pg_halfvec") + else: + raise ValueError(f"Unknown param: {request.param}") + + @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_and_query( - pg: PGVectorStore, node_embeddings: List[TextNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[TextNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") q = VectorStoreQuery(query_embedding=_get_sample_vector(1.0), similarity_top_k=1) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 1 assert res.nodes[0].node_id == "aaa" @@ -336,16 +407,17 @@ async def test_query_hnsw( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_and_query_with_metadata_filters( - pg: PGVectorStore, node_embeddings: List[TextNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[TextNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") filters = MetadataFilters( filters=[ExactMatchFilter(key="test_key", value="test_value")] ) @@ -353,9 +425,9 @@ async def test_add_to_db_and_query_with_metadata_filters( query_embedding=_get_sample_vector(0.5), similarity_top_k=10, filters=filters ) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 1 assert res.nodes[0].node_id == "bbb" @@ -363,16 +435,17 @@ async def test_add_to_db_and_query_with_metadata_filters( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_and_query_with_metadata_filters_with_in_operator( - pg: PGVectorStore, node_embeddings: List[TextNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[TextNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") filters = MetadataFilters( filters=[ MetadataFilter( @@ -386,9 +459,9 @@ async def test_add_to_db_and_query_with_metadata_filters_with_in_operator( query_embedding=_get_sample_vector(0.5), similarity_top_k=10, filters=filters ) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 1 assert res.nodes[0].node_id == "bbb" @@ -396,16 +469,17 @@ async def test_add_to_db_and_query_with_metadata_filters_with_in_operator( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_and_query_with_metadata_filters_with_in_operator_and_single_element( - pg: PGVectorStore, node_embeddings: List[TextNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[TextNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") filters = MetadataFilters( filters=[ MetadataFilter( @@ -419,9 +493,9 @@ async def test_add_to_db_and_query_with_metadata_filters_with_in_operator_and_si query_embedding=_get_sample_vector(0.5), similarity_top_k=10, filters=filters ) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 1 assert res.nodes[0].node_id == "bbb" @@ -429,16 +503,17 @@ async def test_add_to_db_and_query_with_metadata_filters_with_in_operator_and_si @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_and_query_with_metadata_filters_with_contains_operator( - pg: PGVectorStore, node_embeddings: List[TextNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[TextNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") filters = MetadataFilters( filters=[ MetadataFilter( @@ -452,9 +527,9 @@ async def test_add_to_db_and_query_with_metadata_filters_with_contains_operator( query_embedding=_get_sample_vector(0.5), similarity_top_k=10, filters=filters ) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 1 assert res.nodes[0].node_id == "ccc" @@ -462,23 +537,24 @@ async def test_add_to_db_and_query_with_metadata_filters_with_contains_operator( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_query_and_delete( - pg: PGVectorStore, node_embeddings: List[TextNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[TextNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") q = VectorStoreQuery(query_embedding=_get_sample_vector(0.1), similarity_top_k=1) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 1 assert res.nodes[0].node_id == "bbb" @@ -713,21 +789,22 @@ def test_hybrid_query_fails_if_no_query_str_provided( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_add_to_db_and_query_index_nodes( - pg: PGVectorStore, index_node_embeddings: List[BaseNode], use_async: bool + pg_fixture: PGVectorStore, index_node_embeddings: List[BaseNode], use_async: bool ) -> None: if use_async: - await pg.async_add(index_node_embeddings) + await pg_fixture.async_add(index_node_embeddings) else: - pg.add(index_node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + pg_fixture.add(index_node_embeddings) + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") q = VectorStoreQuery(query_embedding=_get_sample_vector(5.0), similarity_top_k=2) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert res.nodes assert len(res.nodes) == 2 assert res.nodes[0].node_id == "aaa_ref" @@ -739,68 +816,70 @@ async def test_add_to_db_and_query_index_nodes( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_delete_nodes( - pg: PGVectorStore, node_embeddings: List[BaseNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[BaseNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) + pg_fixture.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") q = VectorStoreQuery(query_embedding=_get_sample_vector(0.5), similarity_top_k=10) # test deleting nothing if use_async: - await pg.adelete_nodes() + await pg_fixture.adelete_nodes() else: - pg.delete_nodes() + pg_fixture.delete_nodes() if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i in res.ids for i in ["aaa", "bbb", "ccc"]) # test deleting element that doesn't exist if use_async: - await pg.adelete_nodes(["asdf"]) + await pg_fixture.adelete_nodes(["asdf"]) else: - pg.delete_nodes(["asdf"]) + pg_fixture.delete_nodes(["asdf"]) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i in res.ids for i in ["aaa", "bbb", "ccc"]) # test deleting list if use_async: - await pg.adelete_nodes(["aaa", "bbb"]) + await pg_fixture.adelete_nodes(["aaa", "bbb"]) else: - pg.delete_nodes(["aaa", "bbb"]) + pg_fixture.delete_nodes(["aaa", "bbb"]) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i not in res.ids for i in ["aaa", "bbb"]) assert "ccc" in res.ids @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_delete_nodes_metadata( - pg: PGVectorStore, node_embeddings: List[BaseNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[BaseNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) + pg_fixture.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") q = VectorStoreQuery(query_embedding=_get_sample_vector(0.5), similarity_top_k=10) @@ -815,13 +894,13 @@ async def test_delete_nodes_metadata( ] ) if use_async: - await pg.adelete_nodes(["aaa", "bbb"], filters=filters) + await pg_fixture.adelete_nodes(["aaa", "bbb"], filters=filters) else: - pg.delete_nodes(["aaa", "bbb"], filters=filters) + pg_fixture.delete_nodes(["aaa", "bbb"], filters=filters) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i in res.ids for i in ["aaa", "ccc", "ddd"]) assert "bbb" not in res.ids @@ -836,13 +915,13 @@ async def test_delete_nodes_metadata( ] ) if use_async: - await pg.adelete_nodes(["aaa"], filters=filters) + await pg_fixture.adelete_nodes(["aaa"], filters=filters) else: - pg.delete_nodes(["aaa"], filters=filters) + pg_fixture.delete_nodes(["aaa"], filters=filters) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i not in res.ids for i in ["bbb", "aaa"]) assert all(i in res.ids for i in ["ccc", "ddd"]) @@ -857,13 +936,13 @@ async def test_delete_nodes_metadata( ] ) if use_async: - await pg.adelete_nodes(["ccc"], filters=filters) + await pg_fixture.adelete_nodes(["ccc"], filters=filters) else: - pg.delete_nodes(["ccc"], filters=filters) + pg_fixture.delete_nodes(["ccc"], filters=filters) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i not in res.ids for i in ["bbb", "aaa"]) assert all(i in res.ids for i in ["ccc", "ddd"]) @@ -878,13 +957,13 @@ async def test_delete_nodes_metadata( ] ) if use_async: - await pg.adelete_nodes(filters=filters) + await pg_fixture.adelete_nodes(filters=filters) else: - pg.delete_nodes(filters=filters) + pg_fixture.delete_nodes(filters=filters) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i not in res.ids for i in ["bbb", "aaa", "ddd"]) assert "ccc" in res.ids @@ -926,35 +1005,36 @@ async def test_hnsw_index_creation( @pytest.mark.skipif(postgres_not_available, reason="postgres db is not available") @pytest.mark.asyncio() +@pytest.mark.parametrize("pg_fixture", ["pg", "pg_halfvec"], indirect=True) @pytest.mark.parametrize("use_async", [True, False]) async def test_clear( - pg: PGVectorStore, node_embeddings: List[BaseNode], use_async: bool + pg_fixture: PGVectorStore, node_embeddings: List[BaseNode], use_async: bool ) -> None: if use_async: - await pg.async_add(node_embeddings) + await pg_fixture.async_add(node_embeddings) else: - pg.add(node_embeddings) + pg_fixture.add(node_embeddings) - assert isinstance(pg, PGVectorStore) - assert hasattr(pg, "_engine") + assert isinstance(pg_fixture, PGVectorStore) + assert hasattr(pg_fixture, "_engine") q = VectorStoreQuery(query_embedding=_get_sample_vector(0.5), similarity_top_k=10) if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i in res.ids for i in ["bbb", "aaa", "ddd", "ccc"]) if use_async: - await pg.aclear() + await pg_fixture.aclear() else: - pg.clear() + pg_fixture.clear() if use_async: - res = await pg.aquery(q) + res = await pg_fixture.aquery(q) else: - res = pg.query(q) + res = pg_fixture.query(q) assert all(i not in res.ids for i in ["bbb", "aaa", "ddd", "ccc"]) assert len(res.ids) == 0 diff --git a/llama-index-networks/examples/demo/contributor-1/poetry.lock b/llama-index-networks/examples/demo/contributor-1/poetry.lock new file mode 100644 index 0000000000000..2c3c2dd414ca7 --- /dev/null +++ b/llama-index-networks/examples/demo/contributor-1/poetry.lock @@ -0,0 +1,3776 @@ +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_system == \"Windows\" or python_version <= \"3.11\" and sys_platform == \"win32\" or python_version >= \"3.12\" and platform_system == \"Windows\" or python_version >= \"3.12\" and sys_platform == \"win32\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "deprecated" +version = "1.2.18" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +description = "DNS toolkit" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "ecdsa" +version = "0.19.0" +description = "ECDSA cryptographic signature library (pure python)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"}, + {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.10\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.115.7" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"}, + {file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"}, +] + +[package.dependencies] +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +fastapi-cli = {version = ">=0.0.5", extras = ["standard"], optional = true, markers = "extra == \"all\""} +httpx = {version = ">=0.23.0", optional = true, markers = "extra == \"all\""} +itsdangerous = {version = ">=1.1.0", optional = true, markers = "extra == \"all\""} +jinja2 = {version = ">=3.1.5", optional = true, markers = "extra == \"all\""} +orjson = {version = ">=3.2.1", optional = true, markers = "extra == \"all\""} +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +pydantic-extra-types = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +pydantic-settings = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +python-multipart = {version = ">=0.0.18", optional = true, markers = "extra == \"all\""} +pyyaml = {version = ">=5.3.1", optional = true, markers = "extra == \"all\""} +starlette = ">=0.40.0,<0.46.0" +typing-extensions = ">=4.8.0" +ujson = {version = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0", optional = true, markers = "extra == \"all\""} +uvicorn = {version = ">=0.12.0", extras = ["standard"], optional = true, markers = "extra == \"all\""} + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4"}, + {file = "fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e"}, +] + +[package.dependencies] +rich-toolkit = ">=0.11.1" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or python_version >= \"3.12\" and python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httptools" +version = "0.6.4" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httptools-0.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0"}, + {file = "httptools-0.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4"}, + {file = "httptools-0.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988"}, + {file = "httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f"}, + {file = "httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0"}, + {file = "httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440"}, + {file = "httptools-0.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd"}, + {file = "httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6"}, + {file = "httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c"}, +] + +[package.extras] +test = ["Cython (>=0.29.24)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "llama-cloud" +version = "0.1.11" +description = "" +optional = false +python-versions = "<4,>=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_cloud-0.1.11-py3-none-any.whl", hash = "sha256:b703765d03783a5a0fc57a52adc9892f8b91b0c19bbecb85a54ad4e813342951"}, + {file = "llama_cloud-0.1.11.tar.gz", hash = "sha256:d4be5b48659fd9fe1698727be257269a22d7f2733a2ed11bce7065768eb94cbe"}, +] + +[package.dependencies] +certifi = ">=2024.7.4,<2025.0.0" +httpx = ">=0.20.0" +pydantic = ">=1.10" + +[[package]] +name = "llama-index" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index-0.12.14-py3-none-any.whl", hash = "sha256:cafbac9f08f1f7293169bfd3c75545db3b761742ea829ba6940c3f2c3b1c2d26"}, + {file = "llama_index-0.12.14.tar.gz", hash = "sha256:aa74315b32e93a77e285519459d77b98be7db9ae4c5aa64aac2c54cc919c838f"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-cli = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.14,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-indices-managed-llama-cloud = ">=0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-multi-modal-llms-openai = ">=0.4.0,<0.5.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" +llama-index-question-gen-openai = ">=0.3.0,<0.4.0" +llama-index-readers-file = ">=0.4.0,<0.5.0" +llama-index-readers-llama-parse = ">=0.4.0" +nltk = ">3.8.1" + +[[package]] +name = "llama-index-agent-openai" +version = "0.4.3" +description = "llama-index agent openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_agent_openai-0.4.3-py3-none-any.whl", hash = "sha256:5d1fbb6831113e609296e457b0a4d1c08c9267acca219eb78cb702bd76a0744d"}, + {file = "llama_index_agent_openai-0.4.3.tar.gz", hash = "sha256:ff1f4a13ba417cb4b9cfbc2ffa9f162bdbdda9b87d6645d512cbde2061f55412"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.11,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +openai = ">=1.14.0" + +[[package]] +name = "llama-index-cli" +version = "0.4.0" +description = "llama-index cli" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_cli-0.4.0-py3-none-any.whl", hash = "sha256:60d12f89e6b85e80a0cc3a8b531f05a911b5eebaebc37314411476d1ba685904"}, + {file = "llama_index_cli-0.4.0.tar.gz", hash = "sha256:d6ab201359962a8a34368aeda3a49bbbe67e9e009c59bd925c4fb2be4ace3906"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-core" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "llama-index-indices-managed-llama-cloud" +version = "0.6.4" +description = "llama-index indices llama-cloud integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_indices_managed_llama_cloud-0.6.4-py3-none-any.whl", hash = "sha256:d7e85844a2e343dacebdef424decab3f5fd6361e25b3ff2bdcfb18607c1a49c5"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4.tar.gz", hash = "sha256:0b45973cb2dc9702122006019bfb556dcabba31b0bdf79afc7b376ca8143df03"}, +] + +[package.dependencies] +llama-cloud = ">=0.1.8,<0.2.0" +llama-index-core = ">=0.12.0,<0.13.0" + +[[package]] +name = "llama-index-llms-openai" +version = "0.3.14" +description = "llama-index llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.4,<0.13.0" +openai = ">=1.58.1,<2.0.0" + +[[package]] +name = "llama-index-multi-modal-llms-openai" +version = "0.4.2" +description = "llama-index multi-modal-llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_multi_modal_llms_openai-0.4.2-py3-none-any.whl", hash = "sha256:093f60f59fc423abab110810f8f129b96b0212b9737d74480f0e3e1b715e975b"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2.tar.gz", hash = "sha256:3437a08cec85cebbc212aa73da5c9b8b054b4dc628338568435a7df88489476f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.3,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-networks" +version = "0.5.1" +description = "llama-index networks integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_networks-0.5.1-py3-none-any.whl", hash = "sha256:96afae13e3bfdc037e0263bd43dff72de2188ad7625a01e95be15df2a16db6a3"}, + {file = "llama_index_networks-0.5.1.tar.gz", hash = "sha256:5f831aeaf0a10d68b0b302868e866b6ffa66df9ae3e94e3d21f6d2fbaee9436f"}, +] + +[package.dependencies] +aiohttp = ">=3.9.3,<4.0.0" +ecdsa = ">=0.19.0" +fastapi = {version = ">=0.115.6,<0.116.0", extras = ["all"]} +llama-index-core = ">=0.12.0,<0.13.0" +pydantic = {version = ">=2.6.1,<3.0.0", extras = ["dotenv"]} +pyjwt = {version = ">=2.8.0,<3.0.0", extras = ["crypto"]} +python-dotenv = ">=1.0.1,<2.0.0" +python-jose = ">=3.3.0,<4.0.0" +uvicorn = {version = ">=0.27.1,<0.28.0", extras = ["standard"]} + +[[package]] +name = "llama-index-program-openai" +version = "0.3.1" +description = "llama-index program openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_program_openai-0.3.1-py3-none-any.whl", hash = "sha256:93646937395dc5318fd095153d2f91bd632b25215d013d14a87c088887d205f9"}, + {file = "llama_index_program_openai-0.3.1.tar.gz", hash = "sha256:6039a6cdbff62c6388c07e82a157fe2edd3bbef0c5adf292ad8546bf4ec75b82"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-question-gen-openai" +version = "0.3.0" +description = "llama-index question_gen openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_question_gen_openai-0.3.0-py3-none-any.whl", hash = "sha256:9b60ec114273a63b50349948666e5744a8f58acb645824e07c979041e8fec598"}, + {file = "llama_index_question_gen_openai-0.3.0.tar.gz", hash = "sha256:efd3b468232808e9d3474670aaeab00e41b90f75f52d0c9bfbf11207e0963d62"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-readers-file" +version = "0.4.4" +description = "llama-index readers file integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.12.3,<5.0.0" +llama-index-core = ">=0.12.0,<0.13.0" +pandas = "*" +pypdf = ">=5.1.0,<6.0.0" +striprtf = ">=0.0.26,<0.0.27" + +[package.extras] +pymupdf = ["pymupdf (>=1.23.21,<2.0.0)"] + +[[package]] +name = "llama-index-readers-llama-parse" +version = "0.4.0" +description = "llama-index readers llama-parse integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf"}, + {file = "llama_index_readers_llama_parse-0.4.0.tar.gz", hash = "sha256:e99ec56f4f8546d7fda1a7c1ae26162fb9acb7ebcac343b5abdb4234b4644e0f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-parse = ">=0.5.0" + +[[package]] +name = "llama-parse" +version = "0.5.20" +description = "Parse files into RAG-Optimized formats." +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_parse-0.5.20-py3-none-any.whl", hash = "sha256:9617edb3428d3218ea01f1708f0b6105f3ffef142fedbeb8c98d50082c37e226"}, + {file = "llama_parse-0.5.20.tar.gz", hash = "sha256:649e256431d3753025b9a320bb03b76849ce4b5a1121394c803df543e6c1006f"}, +] + +[package.dependencies] +click = ">=8.1.7,<9.0.0" +llama-index-core = ">=0.11.0" +pydantic = "!=2.10" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.26.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.60.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "openai-1.60.2-py3-none-any.whl", hash = "sha256:993bd11b96900b9098179c728026f016b4982ded7ee30dfcf4555eab1171fff9"}, + {file = "openai-1.60.2.tar.gz", hash = "sha256:a8f843e10f2855713007f491d96afb2694b11b5e02cb97c7d01a0be60bc5bb51"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "orjson" +version = "3.10.15" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-extra-types" +version = "2.10.2" +description = "Extra Pydantic types." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_extra_types-2.10.2-py3-none-any.whl", hash = "sha256:9eccd55a2b7935cea25f0a67f6ff763d55d80c41d86b887d88915412ccf5b7fa"}, + {file = "pydantic_extra_types-2.10.2.tar.gz", hash = "sha256:934d59ab7a02ff788759c3a97bc896f5cfdc91e62e4f88ea4669067a73f14b98"}, +] + +[package.dependencies] +pydantic = ">=2.5.2" +typing-extensions = "*" + +[package.extras] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<9)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] +semver = ["semver (>=3.0.2)"] + +[[package]] +name = "pydantic-settings" +version = "2.7.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"}, + {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pypdf" +version = "5.2.0" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pypdf-5.2.0-py3-none-any.whl", hash = "sha256:d107962ec45e65e3bd10c1d9242bdbbedaa38193c9e3a6617bd6d996e5747b19"}, + {file = "pypdf-5.2.0.tar.gz", hash = "sha256:7c38e68420f038f2c4998fd9d6717b6db4f6cef1642e9cf384d519c9cf094663"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography"] +cryptodome = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow (>=8.0.0)", "cryptography"] +image = ["Pillow (>=8.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-toolkit" +version = "0.13.2" +description = "Rich toolkit for building command-line applications" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61"}, + {file = "rich_toolkit-0.13.2.tar.gz", hash = "sha256:fea92557530de7c28f121cbed572ad93d9e0ddc60c3ca643f1b831f2f56b95d3"}, +] + +[package.dependencies] +click = ">=8.1.7" +rich = ">=13.7.1" +typing-extensions = ">=4.12.2" + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = [ + {version = "!=0.4.17", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}, + {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""}, +] +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.45.3" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, + {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "striprtf" +version = "0.0.26" +description = "A simple library to convert rtf to text" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, + {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2025.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, +] + +[[package]] +name = "ujson" +version = "5.10.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, + {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22cffecf73391e8abd65ef5f4e4dd523162a3399d5e84faa6aebbf9583df86d6"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26b0e2d2366543c1bb4fbd457446f00b0187a2bddf93148ac2da07a53fe51569"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:caf270c6dba1be7a41125cd1e4fc7ba384bf564650beef0df2dd21a00b7f5770"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a245d59f2ffe750446292b0094244df163c3dc96b3ce152a2c837a44e7cda9d1"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:94a87f6e151c5f483d7d54ceef83b45d3a9cca7a9cb453dbdbb3f5a6f64033f5"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29b443c4c0a113bcbb792c88bea67b675c7ca3ca80c3474784e08bba01c18d51"}, + {file = "ujson-5.10.0-cp310-cp310-win32.whl", hash = "sha256:c18610b9ccd2874950faf474692deee4223a994251bc0a083c114671b64e6518"}, + {file = "ujson-5.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:924f7318c31874d6bb44d9ee1900167ca32aa9b69389b98ecbde34c1698a250f"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, + {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, + {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e"}, + {file = "ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e"}, + {file = "ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f"}, + {file = "ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165"}, + {file = "ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a984a3131da7f07563057db1c3020b1350a3e27a8ec46ccbfbf21e5928a43050"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73814cd1b9db6fc3270e9d8fe3b19f9f89e78ee9d71e8bd6c9a626aeaeaf16bd"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61e1591ed9376e5eddda202ec229eddc56c612b61ac6ad07f96b91460bb6c2fb"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c75269f8205b2690db4572a4a36fe47cd1338e4368bc73a7a0e48789e2e35a"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7223f41e5bf1f919cd8d073e35b229295aa8e0f7b5de07ed1c8fddac63a6bc5d"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc2fd6b3067c0782e7002ac3b38cf48608ee6366ff176bbd02cf969c9c20fe"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:232cc85f8ee3c454c115455195a205074a56ff42608fd6b942aa4c378ac14dd7"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc6139531f13148055d691e442e4bc6601f6dba1e6d521b1585d4788ab0bfad4"}, + {file = "ujson-5.10.0-cp38-cp38-win32.whl", hash = "sha256:e7ce306a42b6b93ca47ac4a3b96683ca554f6d35dd8adc5acfcd55096c8dfcb8"}, + {file = "ujson-5.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:e82d4bb2138ab05e18f089a83b6564fee28048771eb63cdecf4b9b549de8a2cc"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, + {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, + {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, + {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.27.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.21.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and (sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\"" +files = [ + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff"}, + {file = "uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3"}, +] + +[package.extras] +dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "watchfiles" +version = "1.0.4" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "14.2" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"}, + {file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"}, + {file = "websockets-14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:714a9b682deb4339d39ffa674f7b674230227d981a37d5d174a4a83e3978a610"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2e53c72052f2596fb792a7acd9704cbc549bf70fcde8a99e899311455974ca3"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fbd68850c837e57373d95c8fe352203a512b6e49eaae4c2f4088ef8cf21980"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b27ece32f63150c268593d5fdb82819584831a83a3f5809b7521df0685cd5d8"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4daa0faea5424d8713142b33825fff03c736f781690d90652d2c8b053345b0e7"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bc63cee8596a6ec84d9753fd0fcfa0452ee12f317afe4beae6b157f0070c6c7f"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a570862c325af2111343cc9b0257b7119b904823c675b22d4ac547163088d0d"}, + {file = "websockets-14.2-cp310-cp310-win32.whl", hash = "sha256:75862126b3d2d505e895893e3deac0a9339ce750bd27b4ba515f008b5acf832d"}, + {file = "websockets-14.2-cp310-cp310-win_amd64.whl", hash = "sha256:cc45afb9c9b2dc0852d5c8b5321759cf825f82a31bfaf506b65bf4668c96f8b2"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f"}, + {file = "websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d"}, + {file = "websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a"}, + {file = "websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967"}, + {file = "websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe"}, + {file = "websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205"}, + {file = "websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad"}, + {file = "websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307"}, + {file = "websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc"}, + {file = "websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7cd5706caec1686c5d233bc76243ff64b1c0dc445339bd538f30547e787c11fe"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ec607328ce95a2f12b595f7ae4c5d71bf502212bddcea528290b35c286932b12"}, + {file = "websockets-14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da85651270c6bfb630136423037dd4975199e5d4114cae6d3066641adcc9d1c7"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ecadc7ce90accf39903815697917643f5b7cfb73c96702318a096c00aa71f5"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1979bee04af6a78608024bad6dfcc0cc930ce819f9e10342a29a05b5320355d0"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dddacad58e2614a24938a50b85969d56f88e620e3f897b7d80ac0d8a5800258"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:89a71173caaf75fa71a09a5f614f450ba3ec84ad9fca47cb2422a860676716f0"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6af6a4b26eea4fc06c6818a6b962a952441e0e39548b44773502761ded8cc1d4"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:80c8efa38957f20bba0117b48737993643204645e9ec45512579132508477cfc"}, + {file = "websockets-14.2-cp39-cp39-win32.whl", hash = "sha256:2e20c5f517e2163d76e2729104abc42639c41cf91f7b1839295be43302713661"}, + {file = "websockets-14.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4c8cef610e8d7c70dea92e62b6814a8cd24fbd01d7103cc89308d2bfe1659ef"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7d9cafbccba46e768be8a8ad4635fa3eae1ffac4c6e7cb4eb276ba41297ed29"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c76193c1c044bd1e9b3316dcc34b174bbf9664598791e6fb606d8d29000e070c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd475a974d5352390baf865309fe37dec6831aafc3014ffac1eea99e84e83fc2"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6c0097a41968b2e2b54ed3424739aab0b762ca92af2379f152c1aef0187e1c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7ff794c8b36bc402f2e07c0b2ceb4a2424147ed4785ff03e2a7af03711d60a"}, + {file = "websockets-14.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dec254fcabc7bd488dab64846f588fc5b6fe0d78f641180030f8ea27b76d72c3"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bbe03eb853e17fd5b15448328b4ec7fb2407d45fb0245036d06a3af251f8e48f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3c4aa3428b904d5404a0ed85f3644d37e2cb25996b7f096d77caeb0e96a3b42"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577a4cebf1ceaf0b65ffc42c54856214165fb8ceeba3935852fc33f6b0c55e7f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1c1d02357b7665e700eca43a31d52814ad9ad9b89b58118bdabc365454b574"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f390024a47d904613577df83ba700bd189eedc09c57af0a904e5c39624621270"}, + {file = "websockets-14.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c1426c021c38cf92b453cdf371228d3430acd775edee6bac5a4d577efc72365"}, + {file = "websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b"}, + {file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"}, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[metadata] +lock-version = "2.1" +python-versions = ">=3.9,<4.0" +content-hash = "3c19aeb029f8f2c4d9b7cea87b745b74d10d5c5942a18e4cd6e6447dc9a07f83" diff --git a/llama-index-networks/examples/demo/contributor-1/pyproject.toml b/llama-index-networks/examples/demo/contributor-1/pyproject.toml index a8f8cf96f9015..c229dbc7888b8 100644 --- a/llama-index-networks/examples/demo/contributor-1/pyproject.toml +++ b/llama-index-networks/examples/demo/contributor-1/pyproject.toml @@ -9,6 +9,7 @@ name = "contributor-1" version = "0.2.0" [tool.poetry.dependencies] -python = ">=3.9,<3.12" -llama-index = "^0.14.0" -llama-index-networks = {allow-prereleases = true, version = "^0.2.0a0"} +python = ">=3.9,<4.0" +llama-index = "^0.12.0" +llama-index-networks = "^0.5.1" +llama-index-llms-openai = "^0.3.14" diff --git a/llama-index-networks/examples/demo/contributor-2/poetry.lock b/llama-index-networks/examples/demo/contributor-2/poetry.lock new file mode 100644 index 0000000000000..2c3c2dd414ca7 --- /dev/null +++ b/llama-index-networks/examples/demo/contributor-2/poetry.lock @@ -0,0 +1,3776 @@ +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_system == \"Windows\" or python_version <= \"3.11\" and sys_platform == \"win32\" or python_version >= \"3.12\" and platform_system == \"Windows\" or python_version >= \"3.12\" and sys_platform == \"win32\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "deprecated" +version = "1.2.18" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +description = "DNS toolkit" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "ecdsa" +version = "0.19.0" +description = "ECDSA cryptographic signature library (pure python)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"}, + {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.10\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.115.7" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"}, + {file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"}, +] + +[package.dependencies] +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +fastapi-cli = {version = ">=0.0.5", extras = ["standard"], optional = true, markers = "extra == \"all\""} +httpx = {version = ">=0.23.0", optional = true, markers = "extra == \"all\""} +itsdangerous = {version = ">=1.1.0", optional = true, markers = "extra == \"all\""} +jinja2 = {version = ">=3.1.5", optional = true, markers = "extra == \"all\""} +orjson = {version = ">=3.2.1", optional = true, markers = "extra == \"all\""} +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +pydantic-extra-types = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +pydantic-settings = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +python-multipart = {version = ">=0.0.18", optional = true, markers = "extra == \"all\""} +pyyaml = {version = ">=5.3.1", optional = true, markers = "extra == \"all\""} +starlette = ">=0.40.0,<0.46.0" +typing-extensions = ">=4.8.0" +ujson = {version = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0", optional = true, markers = "extra == \"all\""} +uvicorn = {version = ">=0.12.0", extras = ["standard"], optional = true, markers = "extra == \"all\""} + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4"}, + {file = "fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e"}, +] + +[package.dependencies] +rich-toolkit = ">=0.11.1" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or python_version >= \"3.12\" and python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httptools" +version = "0.6.4" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httptools-0.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0"}, + {file = "httptools-0.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4"}, + {file = "httptools-0.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988"}, + {file = "httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f"}, + {file = "httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0"}, + {file = "httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440"}, + {file = "httptools-0.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd"}, + {file = "httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6"}, + {file = "httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c"}, +] + +[package.extras] +test = ["Cython (>=0.29.24)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "llama-cloud" +version = "0.1.11" +description = "" +optional = false +python-versions = "<4,>=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_cloud-0.1.11-py3-none-any.whl", hash = "sha256:b703765d03783a5a0fc57a52adc9892f8b91b0c19bbecb85a54ad4e813342951"}, + {file = "llama_cloud-0.1.11.tar.gz", hash = "sha256:d4be5b48659fd9fe1698727be257269a22d7f2733a2ed11bce7065768eb94cbe"}, +] + +[package.dependencies] +certifi = ">=2024.7.4,<2025.0.0" +httpx = ">=0.20.0" +pydantic = ">=1.10" + +[[package]] +name = "llama-index" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index-0.12.14-py3-none-any.whl", hash = "sha256:cafbac9f08f1f7293169bfd3c75545db3b761742ea829ba6940c3f2c3b1c2d26"}, + {file = "llama_index-0.12.14.tar.gz", hash = "sha256:aa74315b32e93a77e285519459d77b98be7db9ae4c5aa64aac2c54cc919c838f"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-cli = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.14,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-indices-managed-llama-cloud = ">=0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-multi-modal-llms-openai = ">=0.4.0,<0.5.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" +llama-index-question-gen-openai = ">=0.3.0,<0.4.0" +llama-index-readers-file = ">=0.4.0,<0.5.0" +llama-index-readers-llama-parse = ">=0.4.0" +nltk = ">3.8.1" + +[[package]] +name = "llama-index-agent-openai" +version = "0.4.3" +description = "llama-index agent openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_agent_openai-0.4.3-py3-none-any.whl", hash = "sha256:5d1fbb6831113e609296e457b0a4d1c08c9267acca219eb78cb702bd76a0744d"}, + {file = "llama_index_agent_openai-0.4.3.tar.gz", hash = "sha256:ff1f4a13ba417cb4b9cfbc2ffa9f162bdbdda9b87d6645d512cbde2061f55412"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.11,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +openai = ">=1.14.0" + +[[package]] +name = "llama-index-cli" +version = "0.4.0" +description = "llama-index cli" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_cli-0.4.0-py3-none-any.whl", hash = "sha256:60d12f89e6b85e80a0cc3a8b531f05a911b5eebaebc37314411476d1ba685904"}, + {file = "llama_index_cli-0.4.0.tar.gz", hash = "sha256:d6ab201359962a8a34368aeda3a49bbbe67e9e009c59bd925c4fb2be4ace3906"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-core" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "llama-index-indices-managed-llama-cloud" +version = "0.6.4" +description = "llama-index indices llama-cloud integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_indices_managed_llama_cloud-0.6.4-py3-none-any.whl", hash = "sha256:d7e85844a2e343dacebdef424decab3f5fd6361e25b3ff2bdcfb18607c1a49c5"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4.tar.gz", hash = "sha256:0b45973cb2dc9702122006019bfb556dcabba31b0bdf79afc7b376ca8143df03"}, +] + +[package.dependencies] +llama-cloud = ">=0.1.8,<0.2.0" +llama-index-core = ">=0.12.0,<0.13.0" + +[[package]] +name = "llama-index-llms-openai" +version = "0.3.14" +description = "llama-index llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.4,<0.13.0" +openai = ">=1.58.1,<2.0.0" + +[[package]] +name = "llama-index-multi-modal-llms-openai" +version = "0.4.2" +description = "llama-index multi-modal-llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_multi_modal_llms_openai-0.4.2-py3-none-any.whl", hash = "sha256:093f60f59fc423abab110810f8f129b96b0212b9737d74480f0e3e1b715e975b"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2.tar.gz", hash = "sha256:3437a08cec85cebbc212aa73da5c9b8b054b4dc628338568435a7df88489476f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.3,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-networks" +version = "0.5.1" +description = "llama-index networks integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_networks-0.5.1-py3-none-any.whl", hash = "sha256:96afae13e3bfdc037e0263bd43dff72de2188ad7625a01e95be15df2a16db6a3"}, + {file = "llama_index_networks-0.5.1.tar.gz", hash = "sha256:5f831aeaf0a10d68b0b302868e866b6ffa66df9ae3e94e3d21f6d2fbaee9436f"}, +] + +[package.dependencies] +aiohttp = ">=3.9.3,<4.0.0" +ecdsa = ">=0.19.0" +fastapi = {version = ">=0.115.6,<0.116.0", extras = ["all"]} +llama-index-core = ">=0.12.0,<0.13.0" +pydantic = {version = ">=2.6.1,<3.0.0", extras = ["dotenv"]} +pyjwt = {version = ">=2.8.0,<3.0.0", extras = ["crypto"]} +python-dotenv = ">=1.0.1,<2.0.0" +python-jose = ">=3.3.0,<4.0.0" +uvicorn = {version = ">=0.27.1,<0.28.0", extras = ["standard"]} + +[[package]] +name = "llama-index-program-openai" +version = "0.3.1" +description = "llama-index program openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_program_openai-0.3.1-py3-none-any.whl", hash = "sha256:93646937395dc5318fd095153d2f91bd632b25215d013d14a87c088887d205f9"}, + {file = "llama_index_program_openai-0.3.1.tar.gz", hash = "sha256:6039a6cdbff62c6388c07e82a157fe2edd3bbef0c5adf292ad8546bf4ec75b82"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-question-gen-openai" +version = "0.3.0" +description = "llama-index question_gen openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_question_gen_openai-0.3.0-py3-none-any.whl", hash = "sha256:9b60ec114273a63b50349948666e5744a8f58acb645824e07c979041e8fec598"}, + {file = "llama_index_question_gen_openai-0.3.0.tar.gz", hash = "sha256:efd3b468232808e9d3474670aaeab00e41b90f75f52d0c9bfbf11207e0963d62"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-readers-file" +version = "0.4.4" +description = "llama-index readers file integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.12.3,<5.0.0" +llama-index-core = ">=0.12.0,<0.13.0" +pandas = "*" +pypdf = ">=5.1.0,<6.0.0" +striprtf = ">=0.0.26,<0.0.27" + +[package.extras] +pymupdf = ["pymupdf (>=1.23.21,<2.0.0)"] + +[[package]] +name = "llama-index-readers-llama-parse" +version = "0.4.0" +description = "llama-index readers llama-parse integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf"}, + {file = "llama_index_readers_llama_parse-0.4.0.tar.gz", hash = "sha256:e99ec56f4f8546d7fda1a7c1ae26162fb9acb7ebcac343b5abdb4234b4644e0f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-parse = ">=0.5.0" + +[[package]] +name = "llama-parse" +version = "0.5.20" +description = "Parse files into RAG-Optimized formats." +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_parse-0.5.20-py3-none-any.whl", hash = "sha256:9617edb3428d3218ea01f1708f0b6105f3ffef142fedbeb8c98d50082c37e226"}, + {file = "llama_parse-0.5.20.tar.gz", hash = "sha256:649e256431d3753025b9a320bb03b76849ce4b5a1121394c803df543e6c1006f"}, +] + +[package.dependencies] +click = ">=8.1.7,<9.0.0" +llama-index-core = ">=0.11.0" +pydantic = "!=2.10" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.26.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.60.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "openai-1.60.2-py3-none-any.whl", hash = "sha256:993bd11b96900b9098179c728026f016b4982ded7ee30dfcf4555eab1171fff9"}, + {file = "openai-1.60.2.tar.gz", hash = "sha256:a8f843e10f2855713007f491d96afb2694b11b5e02cb97c7d01a0be60bc5bb51"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "orjson" +version = "3.10.15" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-extra-types" +version = "2.10.2" +description = "Extra Pydantic types." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_extra_types-2.10.2-py3-none-any.whl", hash = "sha256:9eccd55a2b7935cea25f0a67f6ff763d55d80c41d86b887d88915412ccf5b7fa"}, + {file = "pydantic_extra_types-2.10.2.tar.gz", hash = "sha256:934d59ab7a02ff788759c3a97bc896f5cfdc91e62e4f88ea4669067a73f14b98"}, +] + +[package.dependencies] +pydantic = ">=2.5.2" +typing-extensions = "*" + +[package.extras] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<9)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] +semver = ["semver (>=3.0.2)"] + +[[package]] +name = "pydantic-settings" +version = "2.7.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"}, + {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pypdf" +version = "5.2.0" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pypdf-5.2.0-py3-none-any.whl", hash = "sha256:d107962ec45e65e3bd10c1d9242bdbbedaa38193c9e3a6617bd6d996e5747b19"}, + {file = "pypdf-5.2.0.tar.gz", hash = "sha256:7c38e68420f038f2c4998fd9d6717b6db4f6cef1642e9cf384d519c9cf094663"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography"] +cryptodome = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow (>=8.0.0)", "cryptography"] +image = ["Pillow (>=8.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-toolkit" +version = "0.13.2" +description = "Rich toolkit for building command-line applications" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61"}, + {file = "rich_toolkit-0.13.2.tar.gz", hash = "sha256:fea92557530de7c28f121cbed572ad93d9e0ddc60c3ca643f1b831f2f56b95d3"}, +] + +[package.dependencies] +click = ">=8.1.7" +rich = ">=13.7.1" +typing-extensions = ">=4.12.2" + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = [ + {version = "!=0.4.17", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}, + {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""}, +] +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.45.3" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, + {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "striprtf" +version = "0.0.26" +description = "A simple library to convert rtf to text" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, + {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2025.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, +] + +[[package]] +name = "ujson" +version = "5.10.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, + {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22cffecf73391e8abd65ef5f4e4dd523162a3399d5e84faa6aebbf9583df86d6"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26b0e2d2366543c1bb4fbd457446f00b0187a2bddf93148ac2da07a53fe51569"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:caf270c6dba1be7a41125cd1e4fc7ba384bf564650beef0df2dd21a00b7f5770"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a245d59f2ffe750446292b0094244df163c3dc96b3ce152a2c837a44e7cda9d1"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:94a87f6e151c5f483d7d54ceef83b45d3a9cca7a9cb453dbdbb3f5a6f64033f5"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29b443c4c0a113bcbb792c88bea67b675c7ca3ca80c3474784e08bba01c18d51"}, + {file = "ujson-5.10.0-cp310-cp310-win32.whl", hash = "sha256:c18610b9ccd2874950faf474692deee4223a994251bc0a083c114671b64e6518"}, + {file = "ujson-5.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:924f7318c31874d6bb44d9ee1900167ca32aa9b69389b98ecbde34c1698a250f"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, + {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, + {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e"}, + {file = "ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e"}, + {file = "ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f"}, + {file = "ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165"}, + {file = "ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a984a3131da7f07563057db1c3020b1350a3e27a8ec46ccbfbf21e5928a43050"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73814cd1b9db6fc3270e9d8fe3b19f9f89e78ee9d71e8bd6c9a626aeaeaf16bd"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61e1591ed9376e5eddda202ec229eddc56c612b61ac6ad07f96b91460bb6c2fb"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c75269f8205b2690db4572a4a36fe47cd1338e4368bc73a7a0e48789e2e35a"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7223f41e5bf1f919cd8d073e35b229295aa8e0f7b5de07ed1c8fddac63a6bc5d"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc2fd6b3067c0782e7002ac3b38cf48608ee6366ff176bbd02cf969c9c20fe"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:232cc85f8ee3c454c115455195a205074a56ff42608fd6b942aa4c378ac14dd7"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc6139531f13148055d691e442e4bc6601f6dba1e6d521b1585d4788ab0bfad4"}, + {file = "ujson-5.10.0-cp38-cp38-win32.whl", hash = "sha256:e7ce306a42b6b93ca47ac4a3b96683ca554f6d35dd8adc5acfcd55096c8dfcb8"}, + {file = "ujson-5.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:e82d4bb2138ab05e18f089a83b6564fee28048771eb63cdecf4b9b549de8a2cc"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, + {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, + {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, + {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.27.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.21.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and (sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\"" +files = [ + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff"}, + {file = "uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3"}, +] + +[package.extras] +dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "watchfiles" +version = "1.0.4" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "14.2" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"}, + {file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"}, + {file = "websockets-14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:714a9b682deb4339d39ffa674f7b674230227d981a37d5d174a4a83e3978a610"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2e53c72052f2596fb792a7acd9704cbc549bf70fcde8a99e899311455974ca3"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fbd68850c837e57373d95c8fe352203a512b6e49eaae4c2f4088ef8cf21980"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b27ece32f63150c268593d5fdb82819584831a83a3f5809b7521df0685cd5d8"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4daa0faea5424d8713142b33825fff03c736f781690d90652d2c8b053345b0e7"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bc63cee8596a6ec84d9753fd0fcfa0452ee12f317afe4beae6b157f0070c6c7f"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a570862c325af2111343cc9b0257b7119b904823c675b22d4ac547163088d0d"}, + {file = "websockets-14.2-cp310-cp310-win32.whl", hash = "sha256:75862126b3d2d505e895893e3deac0a9339ce750bd27b4ba515f008b5acf832d"}, + {file = "websockets-14.2-cp310-cp310-win_amd64.whl", hash = "sha256:cc45afb9c9b2dc0852d5c8b5321759cf825f82a31bfaf506b65bf4668c96f8b2"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f"}, + {file = "websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d"}, + {file = "websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a"}, + {file = "websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967"}, + {file = "websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe"}, + {file = "websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205"}, + {file = "websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad"}, + {file = "websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307"}, + {file = "websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc"}, + {file = "websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7cd5706caec1686c5d233bc76243ff64b1c0dc445339bd538f30547e787c11fe"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ec607328ce95a2f12b595f7ae4c5d71bf502212bddcea528290b35c286932b12"}, + {file = "websockets-14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da85651270c6bfb630136423037dd4975199e5d4114cae6d3066641adcc9d1c7"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ecadc7ce90accf39903815697917643f5b7cfb73c96702318a096c00aa71f5"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1979bee04af6a78608024bad6dfcc0cc930ce819f9e10342a29a05b5320355d0"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dddacad58e2614a24938a50b85969d56f88e620e3f897b7d80ac0d8a5800258"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:89a71173caaf75fa71a09a5f614f450ba3ec84ad9fca47cb2422a860676716f0"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6af6a4b26eea4fc06c6818a6b962a952441e0e39548b44773502761ded8cc1d4"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:80c8efa38957f20bba0117b48737993643204645e9ec45512579132508477cfc"}, + {file = "websockets-14.2-cp39-cp39-win32.whl", hash = "sha256:2e20c5f517e2163d76e2729104abc42639c41cf91f7b1839295be43302713661"}, + {file = "websockets-14.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4c8cef610e8d7c70dea92e62b6814a8cd24fbd01d7103cc89308d2bfe1659ef"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7d9cafbccba46e768be8a8ad4635fa3eae1ffac4c6e7cb4eb276ba41297ed29"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c76193c1c044bd1e9b3316dcc34b174bbf9664598791e6fb606d8d29000e070c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd475a974d5352390baf865309fe37dec6831aafc3014ffac1eea99e84e83fc2"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6c0097a41968b2e2b54ed3424739aab0b762ca92af2379f152c1aef0187e1c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7ff794c8b36bc402f2e07c0b2ceb4a2424147ed4785ff03e2a7af03711d60a"}, + {file = "websockets-14.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dec254fcabc7bd488dab64846f588fc5b6fe0d78f641180030f8ea27b76d72c3"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bbe03eb853e17fd5b15448328b4ec7fb2407d45fb0245036d06a3af251f8e48f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3c4aa3428b904d5404a0ed85f3644d37e2cb25996b7f096d77caeb0e96a3b42"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577a4cebf1ceaf0b65ffc42c54856214165fb8ceeba3935852fc33f6b0c55e7f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1c1d02357b7665e700eca43a31d52814ad9ad9b89b58118bdabc365454b574"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f390024a47d904613577df83ba700bd189eedc09c57af0a904e5c39624621270"}, + {file = "websockets-14.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c1426c021c38cf92b453cdf371228d3430acd775edee6bac5a4d577efc72365"}, + {file = "websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b"}, + {file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"}, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[metadata] +lock-version = "2.1" +python-versions = ">=3.9,<4.0" +content-hash = "3c19aeb029f8f2c4d9b7cea87b745b74d10d5c5942a18e4cd6e6447dc9a07f83" diff --git a/llama-index-networks/examples/demo/contributor-2/pyproject.toml b/llama-index-networks/examples/demo/contributor-2/pyproject.toml index 8372647a81fe5..af4381b3ba396 100644 --- a/llama-index-networks/examples/demo/contributor-2/pyproject.toml +++ b/llama-index-networks/examples/demo/contributor-2/pyproject.toml @@ -9,6 +9,7 @@ name = "contributor-2" version = "0.2.0" [tool.poetry.dependencies] -python = ">=3.9,<3.12" -llama-index = "^0.14.0" -llama-index-networks = {allow-prereleases = true, version = "^0.2.0a0"} +python = ">=3.9,<4.0" +llama-index = "^0.12.0" +llama-index-networks = "^0.5.1" +llama-index-llms-openai = "^0.3.14" diff --git a/llama-index-networks/examples/demo/contributor-3/poetry.lock b/llama-index-networks/examples/demo/contributor-3/poetry.lock new file mode 100644 index 0000000000000..2ec75e35a562a --- /dev/null +++ b/llama-index-networks/examples/demo/contributor-3/poetry.lock @@ -0,0 +1,3808 @@ +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_system == \"Windows\" or python_version <= \"3.11\" and sys_platform == \"win32\" or python_version >= \"3.12\" and platform_system == \"Windows\" or python_version >= \"3.12\" and sys_platform == \"win32\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "deprecated" +version = "1.2.18" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +description = "DNS toolkit" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "ecdsa" +version = "0.19.0" +description = "ECDSA cryptographic signature library (pure python)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"}, + {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.10\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.115.7" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"}, + {file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"}, +] + +[package.dependencies] +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +fastapi-cli = {version = ">=0.0.5", extras = ["standard"], optional = true, markers = "extra == \"all\""} +httpx = {version = ">=0.23.0", optional = true, markers = "extra == \"all\""} +itsdangerous = {version = ">=1.1.0", optional = true, markers = "extra == \"all\""} +jinja2 = {version = ">=3.1.5", optional = true, markers = "extra == \"all\""} +orjson = {version = ">=3.2.1", optional = true, markers = "extra == \"all\""} +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +pydantic-extra-types = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +pydantic-settings = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +python-multipart = {version = ">=0.0.18", optional = true, markers = "extra == \"all\""} +pyyaml = {version = ">=5.3.1", optional = true, markers = "extra == \"all\""} +starlette = ">=0.40.0,<0.46.0" +typing-extensions = ">=4.8.0" +ujson = {version = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0", optional = true, markers = "extra == \"all\""} +uvicorn = {version = ">=0.12.0", extras = ["standard"], optional = true, markers = "extra == \"all\""} + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4"}, + {file = "fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e"}, +] + +[package.dependencies] +rich-toolkit = ">=0.11.1" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or python_version >= \"3.12\" and python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httptools" +version = "0.6.4" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httptools-0.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0"}, + {file = "httptools-0.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4"}, + {file = "httptools-0.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988"}, + {file = "httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f"}, + {file = "httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0"}, + {file = "httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440"}, + {file = "httptools-0.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd"}, + {file = "httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6"}, + {file = "httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c"}, +] + +[package.extras] +test = ["Cython (>=0.29.24)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "llama-cloud" +version = "0.1.11" +description = "" +optional = false +python-versions = "<4,>=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_cloud-0.1.11-py3-none-any.whl", hash = "sha256:b703765d03783a5a0fc57a52adc9892f8b91b0c19bbecb85a54ad4e813342951"}, + {file = "llama_cloud-0.1.11.tar.gz", hash = "sha256:d4be5b48659fd9fe1698727be257269a22d7f2733a2ed11bce7065768eb94cbe"}, +] + +[package.dependencies] +certifi = ">=2024.7.4,<2025.0.0" +httpx = ">=0.20.0" +pydantic = ">=1.10" + +[[package]] +name = "llama-index" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index-0.12.14-py3-none-any.whl", hash = "sha256:cafbac9f08f1f7293169bfd3c75545db3b761742ea829ba6940c3f2c3b1c2d26"}, + {file = "llama_index-0.12.14.tar.gz", hash = "sha256:aa74315b32e93a77e285519459d77b98be7db9ae4c5aa64aac2c54cc919c838f"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-cli = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.14,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-indices-managed-llama-cloud = ">=0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-multi-modal-llms-openai = ">=0.4.0,<0.5.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" +llama-index-question-gen-openai = ">=0.3.0,<0.4.0" +llama-index-readers-file = ">=0.4.0,<0.5.0" +llama-index-readers-llama-parse = ">=0.4.0" +nltk = ">3.8.1" + +[[package]] +name = "llama-index-agent-openai" +version = "0.4.3" +description = "llama-index agent openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_agent_openai-0.4.3-py3-none-any.whl", hash = "sha256:5d1fbb6831113e609296e457b0a4d1c08c9267acca219eb78cb702bd76a0744d"}, + {file = "llama_index_agent_openai-0.4.3.tar.gz", hash = "sha256:ff1f4a13ba417cb4b9cfbc2ffa9f162bdbdda9b87d6645d512cbde2061f55412"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.11,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +openai = ">=1.14.0" + +[[package]] +name = "llama-index-cli" +version = "0.4.0" +description = "llama-index cli" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_cli-0.4.0-py3-none-any.whl", hash = "sha256:60d12f89e6b85e80a0cc3a8b531f05a911b5eebaebc37314411476d1ba685904"}, + {file = "llama_index_cli-0.4.0.tar.gz", hash = "sha256:d6ab201359962a8a34368aeda3a49bbbe67e9e009c59bd925c4fb2be4ace3906"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-core" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "llama-index-indices-managed-llama-cloud" +version = "0.6.4" +description = "llama-index indices llama-cloud integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_indices_managed_llama_cloud-0.6.4-py3-none-any.whl", hash = "sha256:d7e85844a2e343dacebdef424decab3f5fd6361e25b3ff2bdcfb18607c1a49c5"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4.tar.gz", hash = "sha256:0b45973cb2dc9702122006019bfb556dcabba31b0bdf79afc7b376ca8143df03"}, +] + +[package.dependencies] +llama-cloud = ">=0.1.8,<0.2.0" +llama-index-core = ">=0.12.0,<0.13.0" + +[[package]] +name = "llama-index-llms-openai" +version = "0.3.14" +description = "llama-index llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.4,<0.13.0" +openai = ">=1.58.1,<2.0.0" + +[[package]] +name = "llama-index-multi-modal-llms-openai" +version = "0.4.2" +description = "llama-index multi-modal-llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_multi_modal_llms_openai-0.4.2-py3-none-any.whl", hash = "sha256:093f60f59fc423abab110810f8f129b96b0212b9737d74480f0e3e1b715e975b"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2.tar.gz", hash = "sha256:3437a08cec85cebbc212aa73da5c9b8b054b4dc628338568435a7df88489476f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.3,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-networks" +version = "0.5.1" +description = "llama-index networks integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_networks-0.5.1-py3-none-any.whl", hash = "sha256:96afae13e3bfdc037e0263bd43dff72de2188ad7625a01e95be15df2a16db6a3"}, + {file = "llama_index_networks-0.5.1.tar.gz", hash = "sha256:5f831aeaf0a10d68b0b302868e866b6ffa66df9ae3e94e3d21f6d2fbaee9436f"}, +] + +[package.dependencies] +aiohttp = ">=3.9.3,<4.0.0" +ecdsa = ">=0.19.0" +fastapi = {version = ">=0.115.6,<0.116.0", extras = ["all"]} +llama-index-core = ">=0.12.0,<0.13.0" +pydantic = {version = ">=2.6.1,<3.0.0", extras = ["dotenv"]} +pyjwt = {version = ">=2.8.0,<3.0.0", extras = ["crypto"]} +python-dotenv = ">=1.0.1,<2.0.0" +python-jose = ">=3.3.0,<4.0.0" +uvicorn = {version = ">=0.27.1,<0.28.0", extras = ["standard"]} + +[[package]] +name = "llama-index-program-openai" +version = "0.3.1" +description = "llama-index program openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_program_openai-0.3.1-py3-none-any.whl", hash = "sha256:93646937395dc5318fd095153d2f91bd632b25215d013d14a87c088887d205f9"}, + {file = "llama_index_program_openai-0.3.1.tar.gz", hash = "sha256:6039a6cdbff62c6388c07e82a157fe2edd3bbef0c5adf292ad8546bf4ec75b82"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-question-gen-openai" +version = "0.3.0" +description = "llama-index question_gen openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_question_gen_openai-0.3.0-py3-none-any.whl", hash = "sha256:9b60ec114273a63b50349948666e5744a8f58acb645824e07c979041e8fec598"}, + {file = "llama_index_question_gen_openai-0.3.0.tar.gz", hash = "sha256:efd3b468232808e9d3474670aaeab00e41b90f75f52d0c9bfbf11207e0963d62"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-readers-file" +version = "0.4.4" +description = "llama-index readers file integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.12.3,<5.0.0" +llama-index-core = ">=0.12.0,<0.13.0" +pandas = "*" +pypdf = ">=5.1.0,<6.0.0" +striprtf = ">=0.0.26,<0.0.27" + +[package.extras] +pymupdf = ["pymupdf (>=1.23.21,<2.0.0)"] + +[[package]] +name = "llama-index-readers-llama-parse" +version = "0.4.0" +description = "llama-index readers llama-parse integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf"}, + {file = "llama_index_readers_llama_parse-0.4.0.tar.gz", hash = "sha256:e99ec56f4f8546d7fda1a7c1ae26162fb9acb7ebcac343b5abdb4234b4644e0f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-parse = ">=0.5.0" + +[[package]] +name = "llama-index-readers-wikipedia" +version = "0.3.0" +description = "llama-index readers wikipedia integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_wikipedia-0.3.0-py3-none-any.whl", hash = "sha256:1723441901a3a19f323872e3c5a968bbfc98cdc5f35e901c99e79f0e8cb7fa57"}, + {file = "llama_index_readers_wikipedia-0.3.0.tar.gz", hash = "sha256:77972387cd5410c981bd427699613de63e76889f99816512fc3fce3b2eca440a"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" + +[[package]] +name = "llama-parse" +version = "0.5.20" +description = "Parse files into RAG-Optimized formats." +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_parse-0.5.20-py3-none-any.whl", hash = "sha256:9617edb3428d3218ea01f1708f0b6105f3ffef142fedbeb8c98d50082c37e226"}, + {file = "llama_parse-0.5.20.tar.gz", hash = "sha256:649e256431d3753025b9a320bb03b76849ce4b5a1121394c803df543e6c1006f"}, +] + +[package.dependencies] +click = ">=8.1.7,<9.0.0" +llama-index-core = ">=0.11.0" +pydantic = "!=2.10" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.26.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.60.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "openai-1.60.2-py3-none-any.whl", hash = "sha256:993bd11b96900b9098179c728026f016b4982ded7ee30dfcf4555eab1171fff9"}, + {file = "openai-1.60.2.tar.gz", hash = "sha256:a8f843e10f2855713007f491d96afb2694b11b5e02cb97c7d01a0be60bc5bb51"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "orjson" +version = "3.10.15" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-extra-types" +version = "2.10.2" +description = "Extra Pydantic types." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_extra_types-2.10.2-py3-none-any.whl", hash = "sha256:9eccd55a2b7935cea25f0a67f6ff763d55d80c41d86b887d88915412ccf5b7fa"}, + {file = "pydantic_extra_types-2.10.2.tar.gz", hash = "sha256:934d59ab7a02ff788759c3a97bc896f5cfdc91e62e4f88ea4669067a73f14b98"}, +] + +[package.dependencies] +pydantic = ">=2.5.2" +typing-extensions = "*" + +[package.extras] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<9)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] +semver = ["semver (>=3.0.2)"] + +[[package]] +name = "pydantic-settings" +version = "2.7.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"}, + {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pypdf" +version = "5.2.0" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pypdf-5.2.0-py3-none-any.whl", hash = "sha256:d107962ec45e65e3bd10c1d9242bdbbedaa38193c9e3a6617bd6d996e5747b19"}, + {file = "pypdf-5.2.0.tar.gz", hash = "sha256:7c38e68420f038f2c4998fd9d6717b6db4f6cef1642e9cf384d519c9cf094663"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography"] +cryptodome = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow (>=8.0.0)", "cryptography"] +image = ["Pillow (>=8.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-toolkit" +version = "0.13.2" +description = "Rich toolkit for building command-line applications" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61"}, + {file = "rich_toolkit-0.13.2.tar.gz", hash = "sha256:fea92557530de7c28f121cbed572ad93d9e0ddc60c3ca643f1b831f2f56b95d3"}, +] + +[package.dependencies] +click = ">=8.1.7" +rich = ">=13.7.1" +typing-extensions = ">=4.12.2" + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = [ + {version = "!=0.4.17", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}, + {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""}, +] +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.45.3" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, + {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "striprtf" +version = "0.0.26" +description = "A simple library to convert rtf to text" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, + {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2025.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, +] + +[[package]] +name = "ujson" +version = "5.10.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, + {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22cffecf73391e8abd65ef5f4e4dd523162a3399d5e84faa6aebbf9583df86d6"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26b0e2d2366543c1bb4fbd457446f00b0187a2bddf93148ac2da07a53fe51569"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:caf270c6dba1be7a41125cd1e4fc7ba384bf564650beef0df2dd21a00b7f5770"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a245d59f2ffe750446292b0094244df163c3dc96b3ce152a2c837a44e7cda9d1"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:94a87f6e151c5f483d7d54ceef83b45d3a9cca7a9cb453dbdbb3f5a6f64033f5"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29b443c4c0a113bcbb792c88bea67b675c7ca3ca80c3474784e08bba01c18d51"}, + {file = "ujson-5.10.0-cp310-cp310-win32.whl", hash = "sha256:c18610b9ccd2874950faf474692deee4223a994251bc0a083c114671b64e6518"}, + {file = "ujson-5.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:924f7318c31874d6bb44d9ee1900167ca32aa9b69389b98ecbde34c1698a250f"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, + {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, + {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e"}, + {file = "ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e"}, + {file = "ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f"}, + {file = "ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165"}, + {file = "ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a984a3131da7f07563057db1c3020b1350a3e27a8ec46ccbfbf21e5928a43050"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73814cd1b9db6fc3270e9d8fe3b19f9f89e78ee9d71e8bd6c9a626aeaeaf16bd"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61e1591ed9376e5eddda202ec229eddc56c612b61ac6ad07f96b91460bb6c2fb"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c75269f8205b2690db4572a4a36fe47cd1338e4368bc73a7a0e48789e2e35a"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7223f41e5bf1f919cd8d073e35b229295aa8e0f7b5de07ed1c8fddac63a6bc5d"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc2fd6b3067c0782e7002ac3b38cf48608ee6366ff176bbd02cf969c9c20fe"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:232cc85f8ee3c454c115455195a205074a56ff42608fd6b942aa4c378ac14dd7"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc6139531f13148055d691e442e4bc6601f6dba1e6d521b1585d4788ab0bfad4"}, + {file = "ujson-5.10.0-cp38-cp38-win32.whl", hash = "sha256:e7ce306a42b6b93ca47ac4a3b96683ca554f6d35dd8adc5acfcd55096c8dfcb8"}, + {file = "ujson-5.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:e82d4bb2138ab05e18f089a83b6564fee28048771eb63cdecf4b9b549de8a2cc"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, + {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, + {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, + {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.27.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.21.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" and (sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" or python_version >= \"3.12\" and (sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\"" +files = [ + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff"}, + {file = "uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3"}, +] + +[package.extras] +dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "watchfiles" +version = "1.0.4" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "14.2" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"}, + {file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"}, + {file = "websockets-14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:714a9b682deb4339d39ffa674f7b674230227d981a37d5d174a4a83e3978a610"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2e53c72052f2596fb792a7acd9704cbc549bf70fcde8a99e899311455974ca3"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fbd68850c837e57373d95c8fe352203a512b6e49eaae4c2f4088ef8cf21980"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b27ece32f63150c268593d5fdb82819584831a83a3f5809b7521df0685cd5d8"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4daa0faea5424d8713142b33825fff03c736f781690d90652d2c8b053345b0e7"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bc63cee8596a6ec84d9753fd0fcfa0452ee12f317afe4beae6b157f0070c6c7f"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a570862c325af2111343cc9b0257b7119b904823c675b22d4ac547163088d0d"}, + {file = "websockets-14.2-cp310-cp310-win32.whl", hash = "sha256:75862126b3d2d505e895893e3deac0a9339ce750bd27b4ba515f008b5acf832d"}, + {file = "websockets-14.2-cp310-cp310-win_amd64.whl", hash = "sha256:cc45afb9c9b2dc0852d5c8b5321759cf825f82a31bfaf506b65bf4668c96f8b2"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f"}, + {file = "websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d"}, + {file = "websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a"}, + {file = "websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967"}, + {file = "websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe"}, + {file = "websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205"}, + {file = "websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad"}, + {file = "websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307"}, + {file = "websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc"}, + {file = "websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7cd5706caec1686c5d233bc76243ff64b1c0dc445339bd538f30547e787c11fe"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ec607328ce95a2f12b595f7ae4c5d71bf502212bddcea528290b35c286932b12"}, + {file = "websockets-14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da85651270c6bfb630136423037dd4975199e5d4114cae6d3066641adcc9d1c7"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ecadc7ce90accf39903815697917643f5b7cfb73c96702318a096c00aa71f5"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1979bee04af6a78608024bad6dfcc0cc930ce819f9e10342a29a05b5320355d0"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dddacad58e2614a24938a50b85969d56f88e620e3f897b7d80ac0d8a5800258"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:89a71173caaf75fa71a09a5f614f450ba3ec84ad9fca47cb2422a860676716f0"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6af6a4b26eea4fc06c6818a6b962a952441e0e39548b44773502761ded8cc1d4"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:80c8efa38957f20bba0117b48737993643204645e9ec45512579132508477cfc"}, + {file = "websockets-14.2-cp39-cp39-win32.whl", hash = "sha256:2e20c5f517e2163d76e2729104abc42639c41cf91f7b1839295be43302713661"}, + {file = "websockets-14.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4c8cef610e8d7c70dea92e62b6814a8cd24fbd01d7103cc89308d2bfe1659ef"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7d9cafbccba46e768be8a8ad4635fa3eae1ffac4c6e7cb4eb276ba41297ed29"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c76193c1c044bd1e9b3316dcc34b174bbf9664598791e6fb606d8d29000e070c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd475a974d5352390baf865309fe37dec6831aafc3014ffac1eea99e84e83fc2"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6c0097a41968b2e2b54ed3424739aab0b762ca92af2379f152c1aef0187e1c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7ff794c8b36bc402f2e07c0b2ceb4a2424147ed4785ff03e2a7af03711d60a"}, + {file = "websockets-14.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dec254fcabc7bd488dab64846f588fc5b6fe0d78f641180030f8ea27b76d72c3"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bbe03eb853e17fd5b15448328b4ec7fb2407d45fb0245036d06a3af251f8e48f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3c4aa3428b904d5404a0ed85f3644d37e2cb25996b7f096d77caeb0e96a3b42"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577a4cebf1ceaf0b65ffc42c54856214165fb8ceeba3935852fc33f6b0c55e7f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1c1d02357b7665e700eca43a31d52814ad9ad9b89b58118bdabc365454b574"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f390024a47d904613577df83ba700bd189eedc09c57af0a904e5c39624621270"}, + {file = "websockets-14.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c1426c021c38cf92b453cdf371228d3430acd775edee6bac5a4d577efc72365"}, + {file = "websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b"}, + {file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"}, +] + +[[package]] +name = "wikipedia" +version = "1.4.0" +description = "Wikipedia API for Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "wikipedia-1.4.0.tar.gz", hash = "sha256:db0fad1829fdd441b1852306e9856398204dc0786d2996dd2e0c8bb8e26133b2"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +requests = ">=2.0.0,<3.0.0" + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[metadata] +lock-version = "2.1" +python-versions = ">=3.9,<4.0" +content-hash = "e3e079166d413bd97691a6dff7132f01096a75d0dda552cdd501a6f7f01131f2" diff --git a/llama-index-networks/examples/demo/contributor-3/pyproject.toml b/llama-index-networks/examples/demo/contributor-3/pyproject.toml index 0617e92f3000b..53df07c5b621b 100644 --- a/llama-index-networks/examples/demo/contributor-3/pyproject.toml +++ b/llama-index-networks/examples/demo/contributor-3/pyproject.toml @@ -9,8 +9,9 @@ name = "contributor-3" version = "0.2.0" [tool.poetry.dependencies] -python = ">=3.9,<3.12" -llama-index = "^0.14.0" -llama-index-networks = {allow-prereleases = true, version = "^0.2.0a0"} +python = ">=3.9,<4.0" +llama-index = "^0.12.0" +llama-index-networks = "^0.5.1" llama-index-readers-wikipedia = "^0.3.0" wikipedia = "^1.4.0" +llama-index-llms-openai = "^0.3.14" diff --git a/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/poetry.lock b/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/poetry.lock new file mode 100644 index 0000000000000..f2dd55b450df8 --- /dev/null +++ b/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/poetry.lock @@ -0,0 +1,3858 @@ +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "platform_system == \"Windows\" and python_version <= \"3.11\" or sys_platform == \"win32\" and python_version <= \"3.11\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "deprecated" +version = "1.2.18" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +description = "DNS toolkit" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "ecdsa" +version = "0.19.0" +description = "ECDSA cryptographic signature library (pure python)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"}, + {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.10\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.115.7" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"}, + {file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"}, +] + +[package.dependencies] +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +fastapi-cli = {version = ">=0.0.5", extras = ["standard"], optional = true, markers = "extra == \"all\""} +httpx = {version = ">=0.23.0", optional = true, markers = "extra == \"all\""} +itsdangerous = {version = ">=1.1.0", optional = true, markers = "extra == \"all\""} +jinja2 = {version = ">=3.1.5", optional = true, markers = "extra == \"all\""} +orjson = {version = ">=3.2.1", optional = true, markers = "extra == \"all\""} +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +pydantic-extra-types = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +pydantic-settings = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +python-multipart = {version = ">=0.0.18", optional = true, markers = "extra == \"all\""} +pyyaml = {version = ">=5.3.1", optional = true, markers = "extra == \"all\""} +starlette = ">=0.40.0,<0.46.0" +typing-extensions = ">=4.8.0" +ujson = {version = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0", optional = true, markers = "extra == \"all\""} +uvicorn = {version = ">=0.12.0", extras = ["standard"], optional = true, markers = "extra == \"all\""} + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4"}, + {file = "fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e"}, +] + +[package.dependencies] +rich-toolkit = ">=0.11.1" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httptools" +version = "0.6.4" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "httptools-0.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0"}, + {file = "httptools-0.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4"}, + {file = "httptools-0.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988"}, + {file = "httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f"}, + {file = "httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0"}, + {file = "httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440"}, + {file = "httptools-0.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd"}, + {file = "httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6"}, + {file = "httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c"}, +] + +[package.extras] +test = ["Cython (>=0.29.24)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "llama-cloud" +version = "0.1.11" +description = "" +optional = false +python-versions = "<4,>=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_cloud-0.1.11-py3-none-any.whl", hash = "sha256:b703765d03783a5a0fc57a52adc9892f8b91b0c19bbecb85a54ad4e813342951"}, + {file = "llama_cloud-0.1.11.tar.gz", hash = "sha256:d4be5b48659fd9fe1698727be257269a22d7f2733a2ed11bce7065768eb94cbe"}, +] + +[package.dependencies] +certifi = ">=2024.7.4,<2025.0.0" +httpx = ">=0.20.0" +pydantic = ">=1.10" + +[[package]] +name = "llama-index" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index-0.12.14-py3-none-any.whl", hash = "sha256:cafbac9f08f1f7293169bfd3c75545db3b761742ea829ba6940c3f2c3b1c2d26"}, + {file = "llama_index-0.12.14.tar.gz", hash = "sha256:aa74315b32e93a77e285519459d77b98be7db9ae4c5aa64aac2c54cc919c838f"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-cli = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.14,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-indices-managed-llama-cloud = ">=0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-multi-modal-llms-openai = ">=0.4.0,<0.5.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" +llama-index-question-gen-openai = ">=0.3.0,<0.4.0" +llama-index-readers-file = ">=0.4.0,<0.5.0" +llama-index-readers-llama-parse = ">=0.4.0" +nltk = ">3.8.1" + +[[package]] +name = "llama-index-agent-openai" +version = "0.4.3" +description = "llama-index agent openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_agent_openai-0.4.3-py3-none-any.whl", hash = "sha256:5d1fbb6831113e609296e457b0a4d1c08c9267acca219eb78cb702bd76a0744d"}, + {file = "llama_index_agent_openai-0.4.3.tar.gz", hash = "sha256:ff1f4a13ba417cb4b9cfbc2ffa9f162bdbdda9b87d6645d512cbde2061f55412"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.11,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +openai = ">=1.14.0" + +[[package]] +name = "llama-index-cli" +version = "0.4.0" +description = "llama-index cli" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_cli-0.4.0-py3-none-any.whl", hash = "sha256:60d12f89e6b85e80a0cc3a8b531f05a911b5eebaebc37314411476d1ba685904"}, + {file = "llama_index_cli-0.4.0.tar.gz", hash = "sha256:d6ab201359962a8a34368aeda3a49bbbe67e9e009c59bd925c4fb2be4ace3906"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-core" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "llama-index-indices-managed-llama-cloud" +version = "0.6.4" +description = "llama-index indices llama-cloud integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_indices_managed_llama_cloud-0.6.4-py3-none-any.whl", hash = "sha256:d7e85844a2e343dacebdef424decab3f5fd6361e25b3ff2bdcfb18607c1a49c5"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4.tar.gz", hash = "sha256:0b45973cb2dc9702122006019bfb556dcabba31b0bdf79afc7b376ca8143df03"}, +] + +[package.dependencies] +llama-cloud = ">=0.1.8,<0.2.0" +llama-index-core = ">=0.12.0,<0.13.0" + +[[package]] +name = "llama-index-llms-openai" +version = "0.3.14" +description = "llama-index llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.4,<0.13.0" +openai = ">=1.58.1,<2.0.0" + +[[package]] +name = "llama-index-multi-modal-llms-openai" +version = "0.4.2" +description = "llama-index multi-modal-llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_multi_modal_llms_openai-0.4.2-py3-none-any.whl", hash = "sha256:093f60f59fc423abab110810f8f129b96b0212b9737d74480f0e3e1b715e975b"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2.tar.gz", hash = "sha256:3437a08cec85cebbc212aa73da5c9b8b054b4dc628338568435a7df88489476f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.3,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-networks" +version = "0.5.1" +description = "llama-index networks integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_networks-0.5.1-py3-none-any.whl", hash = "sha256:96afae13e3bfdc037e0263bd43dff72de2188ad7625a01e95be15df2a16db6a3"}, + {file = "llama_index_networks-0.5.1.tar.gz", hash = "sha256:5f831aeaf0a10d68b0b302868e866b6ffa66df9ae3e94e3d21f6d2fbaee9436f"}, +] + +[package.dependencies] +aiohttp = ">=3.9.3,<4.0.0" +ecdsa = ">=0.19.0" +fastapi = {version = ">=0.115.6,<0.116.0", extras = ["all"]} +llama-index-core = ">=0.12.0,<0.13.0" +pydantic = {version = ">=2.6.1,<3.0.0", extras = ["dotenv"]} +pyjwt = {version = ">=2.8.0,<3.0.0", extras = ["crypto"]} +python-dotenv = ">=1.0.1,<2.0.0" +python-jose = ">=3.3.0,<4.0.0" +uvicorn = {version = ">=0.27.1,<0.28.0", extras = ["standard"]} + +[[package]] +name = "llama-index-packs-diff-private-simple-dataset" +version = "0.3.0" +description = "llama-index packs diff private simple dataset" +optional = false +python-versions = "<3.12,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_packs_diff_private_simple_dataset-0.3.0-py3-none-any.whl", hash = "sha256:d5f55841cac8dda56120d5a0bf2ebbe7652bcb905215340c15c9b32ba15651e8"}, + {file = "llama_index_packs_diff_private_simple_dataset-0.3.0.tar.gz", hash = "sha256:0129743bbc97ff49dba5b2d8231842121e448ccf41933b2ba5a0ac2d062f3dfd"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +pandas = "*" +prv-accountant = ">=0.2.0,<0.3.0" + +[[package]] +name = "llama-index-program-openai" +version = "0.3.1" +description = "llama-index program openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_program_openai-0.3.1-py3-none-any.whl", hash = "sha256:93646937395dc5318fd095153d2f91bd632b25215d013d14a87c088887d205f9"}, + {file = "llama_index_program_openai-0.3.1.tar.gz", hash = "sha256:6039a6cdbff62c6388c07e82a157fe2edd3bbef0c5adf292ad8546bf4ec75b82"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-question-gen-openai" +version = "0.3.0" +description = "llama-index question_gen openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_question_gen_openai-0.3.0-py3-none-any.whl", hash = "sha256:9b60ec114273a63b50349948666e5744a8f58acb645824e07c979041e8fec598"}, + {file = "llama_index_question_gen_openai-0.3.0.tar.gz", hash = "sha256:efd3b468232808e9d3474670aaeab00e41b90f75f52d0c9bfbf11207e0963d62"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-readers-file" +version = "0.4.4" +description = "llama-index readers file integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.12.3,<5.0.0" +llama-index-core = ">=0.12.0,<0.13.0" +pandas = "*" +pypdf = ">=5.1.0,<6.0.0" +striprtf = ">=0.0.26,<0.0.27" + +[package.extras] +pymupdf = ["pymupdf (>=1.23.21,<2.0.0)"] + +[[package]] +name = "llama-index-readers-llama-parse" +version = "0.4.0" +description = "llama-index readers llama-parse integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf"}, + {file = "llama_index_readers_llama_parse-0.4.0.tar.gz", hash = "sha256:e99ec56f4f8546d7fda1a7c1ae26162fb9acb7ebcac343b5abdb4234b4644e0f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-parse = ">=0.5.0" + +[[package]] +name = "llama-parse" +version = "0.5.20" +description = "Parse files into RAG-Optimized formats." +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_parse-0.5.20-py3-none-any.whl", hash = "sha256:9617edb3428d3218ea01f1708f0b6105f3ffef142fedbeb8c98d50082c37e226"}, + {file = "llama_parse-0.5.20.tar.gz", hash = "sha256:649e256431d3753025b9a320bb03b76849ce4b5a1121394c803df543e6c1006f"}, +] + +[package.dependencies] +click = ">=8.1.7,<9.0.0" +llama-index-core = ">=0.11.0" +pydantic = "!=2.10" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.26.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.60.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "openai-1.60.2-py3-none-any.whl", hash = "sha256:993bd11b96900b9098179c728026f016b4982ded7ee30dfcf4555eab1171fff9"}, + {file = "openai-1.60.2.tar.gz", hash = "sha256:a8f843e10f2855713007f491d96afb2694b11b5e02cb97c7d01a0be60bc5bb51"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "orjson" +version = "3.10.15" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "prv-accountant" +version = "0.2.0" +description = "A fast algorithm to optimally compose privacy guarantees of differentially private (DP) mechanisms to arbitrary accuracy." +optional = false +python-versions = ">=3.7.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "prv_accountant-0.2.0-py3-none-any.whl", hash = "sha256:53564736db91327ac4cc6953c725a8510cfde397e01d99a6092d61f8f1e3c74d"}, + {file = "prv_accountant-0.2.0.tar.gz", hash = "sha256:548400c975242ef63e4a2c0a2e58070b15ad0ddc35056b25e9e5692b4e337f68"}, +] + +[package.dependencies] +numpy = "*" +scipy = "*" + +[package.extras] +extra = ["flake8", "jupyter", "nbconvert", "pandas", "plotly", "pytest", "sympy", "tensorflow-privacy", "tqdm"] + +[[package]] +name = "pyasn1" +version = "0.6.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-extra-types" +version = "2.10.2" +description = "Extra Pydantic types." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic_extra_types-2.10.2-py3-none-any.whl", hash = "sha256:9eccd55a2b7935cea25f0a67f6ff763d55d80c41d86b887d88915412ccf5b7fa"}, + {file = "pydantic_extra_types-2.10.2.tar.gz", hash = "sha256:934d59ab7a02ff788759c3a97bc896f5cfdc91e62e4f88ea4669067a73f14b98"}, +] + +[package.dependencies] +pydantic = ">=2.5.2" +typing-extensions = "*" + +[package.extras] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<9)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] +semver = ["semver (>=3.0.2)"] + +[[package]] +name = "pydantic-settings" +version = "2.7.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"}, + {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pypdf" +version = "5.2.0" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pypdf-5.2.0-py3-none-any.whl", hash = "sha256:d107962ec45e65e3bd10c1d9242bdbbedaa38193c9e3a6617bd6d996e5747b19"}, + {file = "pypdf-5.2.0.tar.gz", hash = "sha256:7c38e68420f038f2c4998fd9d6717b6db4f6cef1642e9cf384d519c9cf094663"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography"] +cryptodome = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow (>=8.0.0)", "cryptography"] +image = ["Pillow (>=8.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-toolkit" +version = "0.13.2" +description = "Rich toolkit for building command-line applications" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61"}, + {file = "rich_toolkit-0.13.2.tar.gz", hash = "sha256:fea92557530de7c28f121cbed572ad93d9e0ddc60c3ca643f1b831f2f56b95d3"}, +] + +[package.dependencies] +click = ">=8.1.7" +rich = ">=13.7.1" +typing-extensions = ">=4.12.2" + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = [ + {version = "!=0.4.17", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}, + {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""}, +] +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.45.3" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, + {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "striprtf" +version = "0.0.26" +description = "A simple library to convert rtf to text" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, + {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2025.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, +] + +[[package]] +name = "ujson" +version = "5.10.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, + {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22cffecf73391e8abd65ef5f4e4dd523162a3399d5e84faa6aebbf9583df86d6"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26b0e2d2366543c1bb4fbd457446f00b0187a2bddf93148ac2da07a53fe51569"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:caf270c6dba1be7a41125cd1e4fc7ba384bf564650beef0df2dd21a00b7f5770"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a245d59f2ffe750446292b0094244df163c3dc96b3ce152a2c837a44e7cda9d1"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:94a87f6e151c5f483d7d54ceef83b45d3a9cca7a9cb453dbdbb3f5a6f64033f5"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29b443c4c0a113bcbb792c88bea67b675c7ca3ca80c3474784e08bba01c18d51"}, + {file = "ujson-5.10.0-cp310-cp310-win32.whl", hash = "sha256:c18610b9ccd2874950faf474692deee4223a994251bc0a083c114671b64e6518"}, + {file = "ujson-5.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:924f7318c31874d6bb44d9ee1900167ca32aa9b69389b98ecbde34c1698a250f"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, + {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, + {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e"}, + {file = "ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e"}, + {file = "ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f"}, + {file = "ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165"}, + {file = "ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a984a3131da7f07563057db1c3020b1350a3e27a8ec46ccbfbf21e5928a43050"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73814cd1b9db6fc3270e9d8fe3b19f9f89e78ee9d71e8bd6c9a626aeaeaf16bd"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61e1591ed9376e5eddda202ec229eddc56c612b61ac6ad07f96b91460bb6c2fb"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c75269f8205b2690db4572a4a36fe47cd1338e4368bc73a7a0e48789e2e35a"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7223f41e5bf1f919cd8d073e35b229295aa8e0f7b5de07ed1c8fddac63a6bc5d"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc2fd6b3067c0782e7002ac3b38cf48608ee6366ff176bbd02cf969c9c20fe"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:232cc85f8ee3c454c115455195a205074a56ff42608fd6b942aa4c378ac14dd7"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc6139531f13148055d691e442e4bc6601f6dba1e6d521b1585d4788ab0bfad4"}, + {file = "ujson-5.10.0-cp38-cp38-win32.whl", hash = "sha256:e7ce306a42b6b93ca47ac4a3b96683ca554f6d35dd8adc5acfcd55096c8dfcb8"}, + {file = "ujson-5.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:e82d4bb2138ab05e18f089a83b6564fee28048771eb63cdecf4b9b549de8a2cc"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, + {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, + {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, + {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.27.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.21.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and python_version <= \"3.11\"" +files = [ + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff"}, + {file = "uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3"}, +] + +[package.extras] +dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "watchfiles" +version = "1.0.4" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "14.2" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"}, + {file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"}, + {file = "websockets-14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:714a9b682deb4339d39ffa674f7b674230227d981a37d5d174a4a83e3978a610"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2e53c72052f2596fb792a7acd9704cbc549bf70fcde8a99e899311455974ca3"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fbd68850c837e57373d95c8fe352203a512b6e49eaae4c2f4088ef8cf21980"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b27ece32f63150c268593d5fdb82819584831a83a3f5809b7521df0685cd5d8"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4daa0faea5424d8713142b33825fff03c736f781690d90652d2c8b053345b0e7"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bc63cee8596a6ec84d9753fd0fcfa0452ee12f317afe4beae6b157f0070c6c7f"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a570862c325af2111343cc9b0257b7119b904823c675b22d4ac547163088d0d"}, + {file = "websockets-14.2-cp310-cp310-win32.whl", hash = "sha256:75862126b3d2d505e895893e3deac0a9339ce750bd27b4ba515f008b5acf832d"}, + {file = "websockets-14.2-cp310-cp310-win_amd64.whl", hash = "sha256:cc45afb9c9b2dc0852d5c8b5321759cf825f82a31bfaf506b65bf4668c96f8b2"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f"}, + {file = "websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d"}, + {file = "websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a"}, + {file = "websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967"}, + {file = "websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe"}, + {file = "websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205"}, + {file = "websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad"}, + {file = "websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307"}, + {file = "websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc"}, + {file = "websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7cd5706caec1686c5d233bc76243ff64b1c0dc445339bd538f30547e787c11fe"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ec607328ce95a2f12b595f7ae4c5d71bf502212bddcea528290b35c286932b12"}, + {file = "websockets-14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da85651270c6bfb630136423037dd4975199e5d4114cae6d3066641adcc9d1c7"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ecadc7ce90accf39903815697917643f5b7cfb73c96702318a096c00aa71f5"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1979bee04af6a78608024bad6dfcc0cc930ce819f9e10342a29a05b5320355d0"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dddacad58e2614a24938a50b85969d56f88e620e3f897b7d80ac0d8a5800258"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:89a71173caaf75fa71a09a5f614f450ba3ec84ad9fca47cb2422a860676716f0"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6af6a4b26eea4fc06c6818a6b962a952441e0e39548b44773502761ded8cc1d4"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:80c8efa38957f20bba0117b48737993643204645e9ec45512579132508477cfc"}, + {file = "websockets-14.2-cp39-cp39-win32.whl", hash = "sha256:2e20c5f517e2163d76e2729104abc42639c41cf91f7b1839295be43302713661"}, + {file = "websockets-14.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4c8cef610e8d7c70dea92e62b6814a8cd24fbd01d7103cc89308d2bfe1659ef"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7d9cafbccba46e768be8a8ad4635fa3eae1ffac4c6e7cb4eb276ba41297ed29"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c76193c1c044bd1e9b3316dcc34b174bbf9664598791e6fb606d8d29000e070c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd475a974d5352390baf865309fe37dec6831aafc3014ffac1eea99e84e83fc2"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6c0097a41968b2e2b54ed3424739aab0b762ca92af2379f152c1aef0187e1c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7ff794c8b36bc402f2e07c0b2ceb4a2424147ed4785ff03e2a7af03711d60a"}, + {file = "websockets-14.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dec254fcabc7bd488dab64846f588fc5b6fe0d78f641180030f8ea27b76d72c3"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bbe03eb853e17fd5b15448328b4ec7fb2407d45fb0245036d06a3af251f8e48f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3c4aa3428b904d5404a0ed85f3644d37e2cb25996b7f096d77caeb0e96a3b42"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577a4cebf1ceaf0b65ffc42c54856214165fb8ceeba3935852fc33f6b0c55e7f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1c1d02357b7665e700eca43a31d52814ad9ad9b89b58118bdabc365454b574"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f390024a47d904613577df83ba700bd189eedc09c57af0a904e5c39624621270"}, + {file = "websockets-14.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c1426c021c38cf92b453cdf371228d3430acd775edee6bac5a4d577efc72365"}, + {file = "websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b"}, + {file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"}, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[metadata] +lock-version = "2.1" +python-versions = ">3.9,<3.12" +content-hash = "054e8a7bf05ddb5cc5a59b0b9a01c4c10cc2b1fa2a56e4679ad92ba9b4695a4e" diff --git a/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/pyproject.toml b/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/pyproject.toml index ca9c35447de35..21a4a78796db1 100644 --- a/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/pyproject.toml +++ b/llama-index-networks/examples/privacy_safe_retrieval/contributor-1/pyproject.toml @@ -10,7 +10,7 @@ readme = "README.md" version = "0.2.0" [tool.poetry.dependencies] -python = "^3.10" -llama-index = "^0.14.0" -llama-index-networks = {allow-prereleases = true, version = "^0.2.1a2"} -llama-index-packs-diff-private-simple-dataset = {allow-prereleases = true, version = "^0.1.0a0"} +python = ">3.9,<3.12" +llama-index = "^0.12.0" +llama-index-networks = "^0.5.1" +llama-index-packs-diff-private-simple-dataset = "^0.3.0" diff --git a/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/poetry.lock b/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/poetry.lock new file mode 100644 index 0000000000000..f2dd55b450df8 --- /dev/null +++ b/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/poetry.lock @@ -0,0 +1,3858 @@ +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "platform_system == \"Windows\" and python_version <= \"3.11\" or sys_platform == \"win32\" and python_version <= \"3.11\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "deprecated" +version = "1.2.18" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +description = "DNS toolkit" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "ecdsa" +version = "0.19.0" +description = "ECDSA cryptographic signature library (pure python)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"}, + {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.10\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.115.7" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"}, + {file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"}, +] + +[package.dependencies] +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +fastapi-cli = {version = ">=0.0.5", extras = ["standard"], optional = true, markers = "extra == \"all\""} +httpx = {version = ">=0.23.0", optional = true, markers = "extra == \"all\""} +itsdangerous = {version = ">=1.1.0", optional = true, markers = "extra == \"all\""} +jinja2 = {version = ">=3.1.5", optional = true, markers = "extra == \"all\""} +orjson = {version = ">=3.2.1", optional = true, markers = "extra == \"all\""} +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +pydantic-extra-types = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +pydantic-settings = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +python-multipart = {version = ">=0.0.18", optional = true, markers = "extra == \"all\""} +pyyaml = {version = ">=5.3.1", optional = true, markers = "extra == \"all\""} +starlette = ">=0.40.0,<0.46.0" +typing-extensions = ">=4.8.0" +ujson = {version = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0", optional = true, markers = "extra == \"all\""} +uvicorn = {version = ">=0.12.0", extras = ["standard"], optional = true, markers = "extra == \"all\""} + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4"}, + {file = "fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e"}, +] + +[package.dependencies] +rich-toolkit = ">=0.11.1" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httptools" +version = "0.6.4" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "httptools-0.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0"}, + {file = "httptools-0.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4"}, + {file = "httptools-0.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988"}, + {file = "httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f"}, + {file = "httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0"}, + {file = "httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440"}, + {file = "httptools-0.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd"}, + {file = "httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6"}, + {file = "httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c"}, +] + +[package.extras] +test = ["Cython (>=0.29.24)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "llama-cloud" +version = "0.1.11" +description = "" +optional = false +python-versions = "<4,>=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_cloud-0.1.11-py3-none-any.whl", hash = "sha256:b703765d03783a5a0fc57a52adc9892f8b91b0c19bbecb85a54ad4e813342951"}, + {file = "llama_cloud-0.1.11.tar.gz", hash = "sha256:d4be5b48659fd9fe1698727be257269a22d7f2733a2ed11bce7065768eb94cbe"}, +] + +[package.dependencies] +certifi = ">=2024.7.4,<2025.0.0" +httpx = ">=0.20.0" +pydantic = ">=1.10" + +[[package]] +name = "llama-index" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index-0.12.14-py3-none-any.whl", hash = "sha256:cafbac9f08f1f7293169bfd3c75545db3b761742ea829ba6940c3f2c3b1c2d26"}, + {file = "llama_index-0.12.14.tar.gz", hash = "sha256:aa74315b32e93a77e285519459d77b98be7db9ae4c5aa64aac2c54cc919c838f"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-cli = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.14,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-indices-managed-llama-cloud = ">=0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-multi-modal-llms-openai = ">=0.4.0,<0.5.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" +llama-index-question-gen-openai = ">=0.3.0,<0.4.0" +llama-index-readers-file = ">=0.4.0,<0.5.0" +llama-index-readers-llama-parse = ">=0.4.0" +nltk = ">3.8.1" + +[[package]] +name = "llama-index-agent-openai" +version = "0.4.3" +description = "llama-index agent openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_agent_openai-0.4.3-py3-none-any.whl", hash = "sha256:5d1fbb6831113e609296e457b0a4d1c08c9267acca219eb78cb702bd76a0744d"}, + {file = "llama_index_agent_openai-0.4.3.tar.gz", hash = "sha256:ff1f4a13ba417cb4b9cfbc2ffa9f162bdbdda9b87d6645d512cbde2061f55412"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.11,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +openai = ">=1.14.0" + +[[package]] +name = "llama-index-cli" +version = "0.4.0" +description = "llama-index cli" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_cli-0.4.0-py3-none-any.whl", hash = "sha256:60d12f89e6b85e80a0cc3a8b531f05a911b5eebaebc37314411476d1ba685904"}, + {file = "llama_index_cli-0.4.0.tar.gz", hash = "sha256:d6ab201359962a8a34368aeda3a49bbbe67e9e009c59bd925c4fb2be4ace3906"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-embeddings-openai = ">=0.3.0,<0.4.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-core" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "llama-index-indices-managed-llama-cloud" +version = "0.6.4" +description = "llama-index indices llama-cloud integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_indices_managed_llama_cloud-0.6.4-py3-none-any.whl", hash = "sha256:d7e85844a2e343dacebdef424decab3f5fd6361e25b3ff2bdcfb18607c1a49c5"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4.tar.gz", hash = "sha256:0b45973cb2dc9702122006019bfb556dcabba31b0bdf79afc7b376ca8143df03"}, +] + +[package.dependencies] +llama-cloud = ">=0.1.8,<0.2.0" +llama-index-core = ">=0.12.0,<0.13.0" + +[[package]] +name = "llama-index-llms-openai" +version = "0.3.14" +description = "llama-index llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.4,<0.13.0" +openai = ">=1.58.1,<2.0.0" + +[[package]] +name = "llama-index-multi-modal-llms-openai" +version = "0.4.2" +description = "llama-index multi-modal-llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_multi_modal_llms_openai-0.4.2-py3-none-any.whl", hash = "sha256:093f60f59fc423abab110810f8f129b96b0212b9737d74480f0e3e1b715e975b"}, + {file = "llama_index_multi_modal_llms_openai-0.4.2.tar.gz", hash = "sha256:3437a08cec85cebbc212aa73da5c9b8b054b4dc628338568435a7df88489476f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.3,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-networks" +version = "0.5.1" +description = "llama-index networks integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_networks-0.5.1-py3-none-any.whl", hash = "sha256:96afae13e3bfdc037e0263bd43dff72de2188ad7625a01e95be15df2a16db6a3"}, + {file = "llama_index_networks-0.5.1.tar.gz", hash = "sha256:5f831aeaf0a10d68b0b302868e866b6ffa66df9ae3e94e3d21f6d2fbaee9436f"}, +] + +[package.dependencies] +aiohttp = ">=3.9.3,<4.0.0" +ecdsa = ">=0.19.0" +fastapi = {version = ">=0.115.6,<0.116.0", extras = ["all"]} +llama-index-core = ">=0.12.0,<0.13.0" +pydantic = {version = ">=2.6.1,<3.0.0", extras = ["dotenv"]} +pyjwt = {version = ">=2.8.0,<3.0.0", extras = ["crypto"]} +python-dotenv = ">=1.0.1,<2.0.0" +python-jose = ">=3.3.0,<4.0.0" +uvicorn = {version = ">=0.27.1,<0.28.0", extras = ["standard"]} + +[[package]] +name = "llama-index-packs-diff-private-simple-dataset" +version = "0.3.0" +description = "llama-index packs diff private simple dataset" +optional = false +python-versions = "<3.12,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_packs_diff_private_simple_dataset-0.3.0-py3-none-any.whl", hash = "sha256:d5f55841cac8dda56120d5a0bf2ebbe7652bcb905215340c15c9b32ba15651e8"}, + {file = "llama_index_packs_diff_private_simple_dataset-0.3.0.tar.gz", hash = "sha256:0129743bbc97ff49dba5b2d8231842121e448ccf41933b2ba5a0ac2d062f3dfd"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +pandas = "*" +prv-accountant = ">=0.2.0,<0.3.0" + +[[package]] +name = "llama-index-program-openai" +version = "0.3.1" +description = "llama-index program openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_program_openai-0.3.1-py3-none-any.whl", hash = "sha256:93646937395dc5318fd095153d2f91bd632b25215d013d14a87c088887d205f9"}, + {file = "llama_index_program_openai-0.3.1.tar.gz", hash = "sha256:6039a6cdbff62c6388c07e82a157fe2edd3bbef0c5adf292ad8546bf4ec75b82"}, +] + +[package.dependencies] +llama-index-agent-openai = ">=0.4.0,<0.5.0" +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-question-gen-openai" +version = "0.3.0" +description = "llama-index question_gen openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_question_gen_openai-0.3.0-py3-none-any.whl", hash = "sha256:9b60ec114273a63b50349948666e5744a8f58acb645824e07c979041e8fec598"}, + {file = "llama_index_question_gen_openai-0.3.0.tar.gz", hash = "sha256:efd3b468232808e9d3474670aaeab00e41b90f75f52d0c9bfbf11207e0963d62"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-index-llms-openai = ">=0.3.0,<0.4.0" +llama-index-program-openai = ">=0.3.0,<0.4.0" + +[[package]] +name = "llama-index-readers-file" +version = "0.4.4" +description = "llama-index readers file integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.12.3,<5.0.0" +llama-index-core = ">=0.12.0,<0.13.0" +pandas = "*" +pypdf = ">=5.1.0,<6.0.0" +striprtf = ">=0.0.26,<0.0.27" + +[package.extras] +pymupdf = ["pymupdf (>=1.23.21,<2.0.0)"] + +[[package]] +name = "llama-index-readers-llama-parse" +version = "0.4.0" +description = "llama-index readers llama-parse integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf"}, + {file = "llama_index_readers_llama_parse-0.4.0.tar.gz", hash = "sha256:e99ec56f4f8546d7fda1a7c1ae26162fb9acb7ebcac343b5abdb4234b4644e0f"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +llama-parse = ">=0.5.0" + +[[package]] +name = "llama-parse" +version = "0.5.20" +description = "Parse files into RAG-Optimized formats." +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "llama_parse-0.5.20-py3-none-any.whl", hash = "sha256:9617edb3428d3218ea01f1708f0b6105f3ffef142fedbeb8c98d50082c37e226"}, + {file = "llama_parse-0.5.20.tar.gz", hash = "sha256:649e256431d3753025b9a320bb03b76849ce4b5a1121394c803df543e6c1006f"}, +] + +[package.dependencies] +click = ">=8.1.7,<9.0.0" +llama-index-core = ">=0.11.0" +pydantic = "!=2.10" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.26.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.60.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "openai-1.60.2-py3-none-any.whl", hash = "sha256:993bd11b96900b9098179c728026f016b4982ded7ee30dfcf4555eab1171fff9"}, + {file = "openai-1.60.2.tar.gz", hash = "sha256:a8f843e10f2855713007f491d96afb2694b11b5e02cb97c7d01a0be60bc5bb51"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "orjson" +version = "3.10.15" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "prv-accountant" +version = "0.2.0" +description = "A fast algorithm to optimally compose privacy guarantees of differentially private (DP) mechanisms to arbitrary accuracy." +optional = false +python-versions = ">=3.7.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "prv_accountant-0.2.0-py3-none-any.whl", hash = "sha256:53564736db91327ac4cc6953c725a8510cfde397e01d99a6092d61f8f1e3c74d"}, + {file = "prv_accountant-0.2.0.tar.gz", hash = "sha256:548400c975242ef63e4a2c0a2e58070b15ad0ddc35056b25e9e5692b4e337f68"}, +] + +[package.dependencies] +numpy = "*" +scipy = "*" + +[package.extras] +extra = ["flake8", "jupyter", "nbconvert", "pandas", "plotly", "pytest", "sympy", "tensorflow-privacy", "tqdm"] + +[[package]] +name = "pyasn1" +version = "0.6.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + +[[package]] +name = "pydantic" +version = "2.10.6" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-extra-types" +version = "2.10.2" +description = "Extra Pydantic types." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic_extra_types-2.10.2-py3-none-any.whl", hash = "sha256:9eccd55a2b7935cea25f0a67f6ff763d55d80c41d86b887d88915412ccf5b7fa"}, + {file = "pydantic_extra_types-2.10.2.tar.gz", hash = "sha256:934d59ab7a02ff788759c3a97bc896f5cfdc91e62e4f88ea4669067a73f14b98"}, +] + +[package.dependencies] +pydantic = ">=2.5.2" +typing-extensions = "*" + +[package.extras] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<9)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] +semver = ["semver (>=3.0.2)"] + +[[package]] +name = "pydantic-settings" +version = "2.7.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"}, + {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pypdf" +version = "5.2.0" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pypdf-5.2.0-py3-none-any.whl", hash = "sha256:d107962ec45e65e3bd10c1d9242bdbbedaa38193c9e3a6617bd6d996e5747b19"}, + {file = "pypdf-5.2.0.tar.gz", hash = "sha256:7c38e68420f038f2c4998fd9d6717b6db4f6cef1642e9cf384d519c9cf094663"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography"] +cryptodome = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow (>=8.0.0)", "cryptography"] +image = ["Pillow (>=8.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-toolkit" +version = "0.13.2" +description = "Rich toolkit for building command-line applications" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61"}, + {file = "rich_toolkit-0.13.2.tar.gz", hash = "sha256:fea92557530de7c28f121cbed572ad93d9e0ddc60c3ca643f1b831f2f56b95d3"}, +] + +[package.dependencies] +click = ">=8.1.7" +rich = ">=13.7.1" +typing-extensions = ">=4.12.2" + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = [ + {version = "!=0.4.17", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}, + {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""}, +] +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "starlette" +version = "0.45.3" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, + {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "striprtf" +version = "0.0.26" +description = "A simple library to convert rtf to text" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, + {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2025.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, +] + +[[package]] +name = "ujson" +version = "5.10.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, + {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22cffecf73391e8abd65ef5f4e4dd523162a3399d5e84faa6aebbf9583df86d6"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26b0e2d2366543c1bb4fbd457446f00b0187a2bddf93148ac2da07a53fe51569"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:caf270c6dba1be7a41125cd1e4fc7ba384bf564650beef0df2dd21a00b7f5770"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a245d59f2ffe750446292b0094244df163c3dc96b3ce152a2c837a44e7cda9d1"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:94a87f6e151c5f483d7d54ceef83b45d3a9cca7a9cb453dbdbb3f5a6f64033f5"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29b443c4c0a113bcbb792c88bea67b675c7ca3ca80c3474784e08bba01c18d51"}, + {file = "ujson-5.10.0-cp310-cp310-win32.whl", hash = "sha256:c18610b9ccd2874950faf474692deee4223a994251bc0a083c114671b64e6518"}, + {file = "ujson-5.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:924f7318c31874d6bb44d9ee1900167ca32aa9b69389b98ecbde34c1698a250f"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, + {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, + {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e"}, + {file = "ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e"}, + {file = "ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f"}, + {file = "ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165"}, + {file = "ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a984a3131da7f07563057db1c3020b1350a3e27a8ec46ccbfbf21e5928a43050"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73814cd1b9db6fc3270e9d8fe3b19f9f89e78ee9d71e8bd6c9a626aeaeaf16bd"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61e1591ed9376e5eddda202ec229eddc56c612b61ac6ad07f96b91460bb6c2fb"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c75269f8205b2690db4572a4a36fe47cd1338e4368bc73a7a0e48789e2e35a"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7223f41e5bf1f919cd8d073e35b229295aa8e0f7b5de07ed1c8fddac63a6bc5d"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc2fd6b3067c0782e7002ac3b38cf48608ee6366ff176bbd02cf969c9c20fe"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:232cc85f8ee3c454c115455195a205074a56ff42608fd6b942aa4c378ac14dd7"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc6139531f13148055d691e442e4bc6601f6dba1e6d521b1585d4788ab0bfad4"}, + {file = "ujson-5.10.0-cp38-cp38-win32.whl", hash = "sha256:e7ce306a42b6b93ca47ac4a3b96683ca554f6d35dd8adc5acfcd55096c8dfcb8"}, + {file = "ujson-5.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:e82d4bb2138ab05e18f089a83b6564fee28048771eb63cdecf4b9b549de8a2cc"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, + {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, + {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, + {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.27.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.21.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and python_version <= \"3.11\"" +files = [ + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff"}, + {file = "uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3"}, +] + +[package.extras] +dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "watchfiles" +version = "1.0.4" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "websockets" +version = "14.2" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"}, + {file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"}, + {file = "websockets-14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:714a9b682deb4339d39ffa674f7b674230227d981a37d5d174a4a83e3978a610"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2e53c72052f2596fb792a7acd9704cbc549bf70fcde8a99e899311455974ca3"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fbd68850c837e57373d95c8fe352203a512b6e49eaae4c2f4088ef8cf21980"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b27ece32f63150c268593d5fdb82819584831a83a3f5809b7521df0685cd5d8"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4daa0faea5424d8713142b33825fff03c736f781690d90652d2c8b053345b0e7"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bc63cee8596a6ec84d9753fd0fcfa0452ee12f317afe4beae6b157f0070c6c7f"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a570862c325af2111343cc9b0257b7119b904823c675b22d4ac547163088d0d"}, + {file = "websockets-14.2-cp310-cp310-win32.whl", hash = "sha256:75862126b3d2d505e895893e3deac0a9339ce750bd27b4ba515f008b5acf832d"}, + {file = "websockets-14.2-cp310-cp310-win_amd64.whl", hash = "sha256:cc45afb9c9b2dc0852d5c8b5321759cf825f82a31bfaf506b65bf4668c96f8b2"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f"}, + {file = "websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d"}, + {file = "websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a"}, + {file = "websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967"}, + {file = "websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe"}, + {file = "websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205"}, + {file = "websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad"}, + {file = "websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307"}, + {file = "websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc"}, + {file = "websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7cd5706caec1686c5d233bc76243ff64b1c0dc445339bd538f30547e787c11fe"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ec607328ce95a2f12b595f7ae4c5d71bf502212bddcea528290b35c286932b12"}, + {file = "websockets-14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da85651270c6bfb630136423037dd4975199e5d4114cae6d3066641adcc9d1c7"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ecadc7ce90accf39903815697917643f5b7cfb73c96702318a096c00aa71f5"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1979bee04af6a78608024bad6dfcc0cc930ce819f9e10342a29a05b5320355d0"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dddacad58e2614a24938a50b85969d56f88e620e3f897b7d80ac0d8a5800258"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:89a71173caaf75fa71a09a5f614f450ba3ec84ad9fca47cb2422a860676716f0"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6af6a4b26eea4fc06c6818a6b962a952441e0e39548b44773502761ded8cc1d4"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:80c8efa38957f20bba0117b48737993643204645e9ec45512579132508477cfc"}, + {file = "websockets-14.2-cp39-cp39-win32.whl", hash = "sha256:2e20c5f517e2163d76e2729104abc42639c41cf91f7b1839295be43302713661"}, + {file = "websockets-14.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4c8cef610e8d7c70dea92e62b6814a8cd24fbd01d7103cc89308d2bfe1659ef"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7d9cafbccba46e768be8a8ad4635fa3eae1ffac4c6e7cb4eb276ba41297ed29"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c76193c1c044bd1e9b3316dcc34b174bbf9664598791e6fb606d8d29000e070c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd475a974d5352390baf865309fe37dec6831aafc3014ffac1eea99e84e83fc2"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6c0097a41968b2e2b54ed3424739aab0b762ca92af2379f152c1aef0187e1c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7ff794c8b36bc402f2e07c0b2ceb4a2424147ed4785ff03e2a7af03711d60a"}, + {file = "websockets-14.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dec254fcabc7bd488dab64846f588fc5b6fe0d78f641180030f8ea27b76d72c3"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bbe03eb853e17fd5b15448328b4ec7fb2407d45fb0245036d06a3af251f8e48f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3c4aa3428b904d5404a0ed85f3644d37e2cb25996b7f096d77caeb0e96a3b42"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577a4cebf1ceaf0b65ffc42c54856214165fb8ceeba3935852fc33f6b0c55e7f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1c1d02357b7665e700eca43a31d52814ad9ad9b89b58118bdabc365454b574"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f390024a47d904613577df83ba700bd189eedc09c57af0a904e5c39624621270"}, + {file = "websockets-14.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c1426c021c38cf92b453cdf371228d3430acd775edee6bac5a4d577efc72365"}, + {file = "websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b"}, + {file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"}, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\"" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[metadata] +lock-version = "2.1" +python-versions = ">3.9,<3.12" +content-hash = "054e8a7bf05ddb5cc5a59b0b9a01c4c10cc2b1fa2a56e4679ad92ba9b4695a4e" diff --git a/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/pyproject.toml b/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/pyproject.toml index 5788562295639..96cb6857f6243 100644 --- a/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/pyproject.toml +++ b/llama-index-networks/examples/privacy_safe_retrieval/contributor-2/pyproject.toml @@ -10,7 +10,7 @@ readme = "README.md" version = "0.2.0" [tool.poetry.dependencies] -python = "^3.10" -llama-index = "^0.14.0" -llama-index-networks = {allow-prereleases = true, version = "^0.2.1a2"} -llama-index-packs-diff-private-simple-dataset = {allow-prereleases = true, version = "^0.1.0a0"} +python = ">3.9,<3.12" +llama-index = "^0.12.0" +llama-index-networks = "^0.5.1" +llama-index-packs-diff-private-simple-dataset = "^0.3.0" diff --git a/llama-index-networks/poetry.lock b/llama-index-networks/poetry.lock new file mode 100644 index 0000000000000..a088fe67047a1 --- /dev/null +++ b/llama-index-networks/poetry.lock @@ -0,0 +1,6196 @@ +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"}, + {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.11" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"}, + {file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"}, + {file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"}, + {file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"}, + {file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"}, + {file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"}, + {file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"}, + {file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"}, + {file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"}, + {file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"}, + {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"}, + {file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"}, + {file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"}, + {file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"}, + {file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"}, + {file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"}, + {file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"}, + {file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"}, + {file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"}, + {file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"}, + {file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"}, + {file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"}, + {file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"}, + {file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"}, + {file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"}, + {file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"}, + {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.8.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"}, + {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "(sys_platform == \"darwin\" or platform_system == \"Darwin\") and (python_version <= \"3.11\" or python_version >= \"3.12\")" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +description = "Argon2 for Python" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea"}, + {file = "argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08"}, +] + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["argon2-cffi[tests,typing]", "tox (>4)"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-copybutton", "sphinx-notfound-page"] +tests = ["hypothesis", "pytest"] +typing = ["mypy"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.3.0" +description = "Better dates & times for Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80"}, + {file = "arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"}, +] + +[package.dependencies] +python-dateutil = ">=2.7.0" +types-python-dateutil = ">=2.8.10" + +[package.extras] +doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] +test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] + +[[package]] +name = "astroid" +version = "2.13.5" +description = "An abstract syntax tree for Python with inference support." +optional = false +python-versions = ">=3.7.2" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "astroid-2.13.5-py3-none-any.whl", hash = "sha256:6891f444625b6edb2ac798829b689e95297e100ddf89dbed5a8c610e34901501"}, + {file = "astroid-2.13.5.tar.gz", hash = "sha256:df164d5ac811b9f44105a72b8f9d5edfb7b5b2d7e979b04ea377a77b3229114a"}, +] + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, +] + +[package.extras] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] + +[[package]] +name = "async-lru" +version = "2.0.4" +description = "Simple LRU cache for asyncio" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627"}, + {file = "async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, +] + +[package.extras] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] + +[[package]] +name = "babel" +version = "2.16.0" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, + {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, +] + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +description = "Screen-scraping library" +optional = false +python-versions = ">=3.6.0" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "black" +version = "24.3.0" +description = "The uncompromising code formatter." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "black-24.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7d5e026f8da0322b5662fa7a8e752b3fa2dac1c1cbc213c3d7ff9bdd0ab12395"}, + {file = "black-24.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f50ea1132e2189d8dff0115ab75b65590a3e97de1e143795adb4ce317934995"}, + {file = "black-24.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2af80566f43c85f5797365077fb64a393861a3730bd110971ab7a0c94e873e7"}, + {file = "black-24.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:4be5bb28e090456adfc1255e03967fb67ca846a03be7aadf6249096100ee32d0"}, + {file = "black-24.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f1373a7808a8f135b774039f61d59e4be7eb56b2513d3d2f02a8b9365b8a8a9"}, + {file = "black-24.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aadf7a02d947936ee418777e0247ea114f78aff0d0959461057cae8a04f20597"}, + {file = "black-24.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c02e4ea2ae09d16314d30912a58ada9a5c4fdfedf9512d23326128ac08ac3d"}, + {file = "black-24.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:bf21b7b230718a5f08bd32d5e4f1db7fc8788345c8aea1d155fc17852b3410f5"}, + {file = "black-24.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2818cf72dfd5d289e48f37ccfa08b460bf469e67fb7c4abb07edc2e9f16fb63f"}, + {file = "black-24.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4acf672def7eb1725f41f38bf6bf425c8237248bb0804faa3965c036f7672d11"}, + {file = "black-24.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ed6668cbbfcd231fa0dc1b137d3e40c04c7f786e626b405c62bcd5db5857e4"}, + {file = "black-24.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:56f52cfbd3dabe2798d76dbdd299faa046a901041faf2cf33288bc4e6dae57b5"}, + {file = "black-24.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79dcf34b33e38ed1b17434693763301d7ccbd1c5860674a8f871bd15139e7837"}, + {file = "black-24.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e19cb1c6365fd6dc38a6eae2dcb691d7d83935c10215aef8e6c38edee3f77abd"}, + {file = "black-24.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65b76c275e4c1c5ce6e9870911384bff5ca31ab63d19c76811cb1fb162678213"}, + {file = "black-24.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5991d523eee14756f3c8d5df5231550ae8993e2286b8014e2fdea7156ed0959"}, + {file = "black-24.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c45f8dff244b3c431b36e3224b6be4a127c6aca780853574c00faf99258041eb"}, + {file = "black-24.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6905238a754ceb7788a73f02b45637d820b2f5478b20fec82ea865e4f5d4d9f7"}, + {file = "black-24.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7de8d330763c66663661a1ffd432274a2f92f07feeddd89ffd085b5744f85e7"}, + {file = "black-24.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:7bb041dca0d784697af4646d3b62ba4a6b028276ae878e53f6b4f74ddd6db99f"}, + {file = "black-24.3.0-py3-none-any.whl", hash = "sha256:41622020d7120e01d377f74249e677039d20e6344ff5851de8a10f11f513bf93"}, + {file = "black-24.3.0.tar.gz", hash = "sha256:a0c9c4a0771afc6919578cec71ce82a3e31e054904e7197deacbc9382671c41f"}, +] + +[package.dependencies] +click = ">=8.0.0" +ipython = {version = ">=7.8.0", optional = true, markers = "extra == \"jupyter\""} +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tokenize-rt = {version = ">=3.2.0", optional = true, markers = "extra == \"jupyter\""} +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "bleach" +version = "6.2.0" +description = "An easy safelist-based HTML-sanitizing tool." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e"}, + {file = "bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f"}, +] + +[package.dependencies] +tinycss2 = {version = ">=1.1.0,<1.5", optional = true, markers = "extra == \"css\""} +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.5)"] + +[[package]] +name = "certifi" +version = "2024.12.14" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, +] + +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] +markers = {main = "(python_version <= \"3.11\" or python_version >= \"3.12\") and platform_python_implementation != \"PyPy\"", dev = "python_version <= \"3.11\" or python_version >= \"3.12\""} + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"}, + {file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"}, + {file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"}, + {file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"}, + {file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"}, + {file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"}, + {file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"}, + {file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"}, + {file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"}, + {file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "codespell" +version = "2.4.1" +description = "Fix common misspellings in text files" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "codespell-2.4.1-py3-none-any.whl", hash = "sha256:3dadafa67df7e4a3dbf51e0d7315061b80d265f9552ebd699b3dd6834b47e425"}, + {file = "codespell-2.4.1.tar.gz", hash = "sha256:299fcdcb09d23e81e35a671bbe746d5ad7e8385972e65dbb833a2eaac33c01e5"}, +] + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_version < \"3.11\" and extra == \"toml\""} + +[package.extras] +dev = ["Pygments", "build", "chardet", "pre-commit", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli", "twine"] +hard-encoding-detection = ["chardet"] +toml = ["tomli"] +types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency"] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev"] +markers = "(platform_system == \"Windows\" or sys_platform == \"win32\") and (python_version <= \"3.11\" or python_version >= \"3.12\")" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "cryptography" +version = "43.0.3" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, + {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, + {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, + {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, + {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, + {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, + {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, + {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, + {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, + {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, + {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, + {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, + {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +description = "Easily serialize dataclasses to and from JSON." +optional = false +python-versions = "<4.0,>=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, + {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, +] + +[package.dependencies] +marshmallow = ">=3.18.0,<4.0.0" +typing-inspect = ">=0.4.0,<1" + +[[package]] +name = "debugpy" +version = "1.8.12" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "debugpy-1.8.12-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:a2ba7ffe58efeae5b8fad1165357edfe01464f9aef25e814e891ec690e7dd82a"}, + {file = "debugpy-1.8.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbbd4149c4fc5e7d508ece083e78c17442ee13b0e69bfa6bd63003e486770f45"}, + {file = "debugpy-1.8.12-cp310-cp310-win32.whl", hash = "sha256:b202f591204023b3ce62ff9a47baa555dc00bb092219abf5caf0e3718ac20e7c"}, + {file = "debugpy-1.8.12-cp310-cp310-win_amd64.whl", hash = "sha256:9649eced17a98ce816756ce50433b2dd85dfa7bc92ceb60579d68c053f98dff9"}, + {file = "debugpy-1.8.12-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:36f4829839ef0afdfdd208bb54f4c3d0eea86106d719811681a8627ae2e53dd5"}, + {file = "debugpy-1.8.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a28ed481d530e3138553be60991d2d61103ce6da254e51547b79549675f539b7"}, + {file = "debugpy-1.8.12-cp311-cp311-win32.whl", hash = "sha256:4ad9a94d8f5c9b954e0e3b137cc64ef3f579d0df3c3698fe9c3734ee397e4abb"}, + {file = "debugpy-1.8.12-cp311-cp311-win_amd64.whl", hash = "sha256:4703575b78dd697b294f8c65588dc86874ed787b7348c65da70cfc885efdf1e1"}, + {file = "debugpy-1.8.12-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:7e94b643b19e8feb5215fa508aee531387494bf668b2eca27fa769ea11d9f498"}, + {file = "debugpy-1.8.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:086b32e233e89a2740c1615c2f775c34ae951508b28b308681dbbb87bba97d06"}, + {file = "debugpy-1.8.12-cp312-cp312-win32.whl", hash = "sha256:2ae5df899732a6051b49ea2632a9ea67f929604fd2b036613a9f12bc3163b92d"}, + {file = "debugpy-1.8.12-cp312-cp312-win_amd64.whl", hash = "sha256:39dfbb6fa09f12fae32639e3286112fc35ae976114f1f3d37375f3130a820969"}, + {file = "debugpy-1.8.12-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:696d8ae4dff4cbd06bf6b10d671e088b66669f110c7c4e18a44c43cf75ce966f"}, + {file = "debugpy-1.8.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:898fba72b81a654e74412a67c7e0a81e89723cfe2a3ea6fcd3feaa3395138ca9"}, + {file = "debugpy-1.8.12-cp313-cp313-win32.whl", hash = "sha256:22a11c493c70413a01ed03f01c3c3a2fc4478fc6ee186e340487b2edcd6f4180"}, + {file = "debugpy-1.8.12-cp313-cp313-win_amd64.whl", hash = "sha256:fdb3c6d342825ea10b90e43d7f20f01535a72b3a1997850c0c3cefa5c27a4a2c"}, + {file = "debugpy-1.8.12-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:b0232cd42506d0c94f9328aaf0d1d0785f90f87ae72d9759df7e5051be039738"}, + {file = "debugpy-1.8.12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af40506a59450f1315168d47a970db1a65aaab5df3833ac389d2899a5d63b3f"}, + {file = "debugpy-1.8.12-cp38-cp38-win32.whl", hash = "sha256:5cc45235fefac57f52680902b7d197fb2f3650112379a6fa9aa1b1c1d3ed3f02"}, + {file = "debugpy-1.8.12-cp38-cp38-win_amd64.whl", hash = "sha256:557cc55b51ab2f3371e238804ffc8510b6ef087673303890f57a24195d096e61"}, + {file = "debugpy-1.8.12-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:b5c6c967d02fee30e157ab5227706f965d5c37679c687b1e7bbc5d9e7128bd41"}, + {file = "debugpy-1.8.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a77f422f31f170c4b7e9ca58eae2a6c8e04da54121900651dfa8e66c29901a"}, + {file = "debugpy-1.8.12-cp39-cp39-win32.whl", hash = "sha256:a4042edef80364239f5b7b5764e55fd3ffd40c32cf6753da9bda4ff0ac466018"}, + {file = "debugpy-1.8.12-cp39-cp39-win_amd64.whl", hash = "sha256:f30b03b0f27608a0b26c75f0bb8a880c752c0e0b01090551b9d87c7d783e2069"}, + {file = "debugpy-1.8.12-py2.py3-none-any.whl", hash = "sha256:274b6a2040349b5c9864e475284bce5bb062e63dce368a394b8cc865ae3b00c6"}, + {file = "debugpy-1.8.12.tar.gz", hash = "sha256:646530b04f45c830ceae8e491ca1c9320a2d2f0efea3141487c82130aba70dce"}, +] + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.5" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] + +[[package]] +name = "deprecated" +version = "1.2.18" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"}, + {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] + +[[package]] +name = "dill" +version = "0.3.9" +description = "serialize all of Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"}, + {file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"}, +] + +[package.extras] +graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +description = "JSON decoder for Python that can extract data from the muck" +optional = false +python-versions = "*" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53"}, + {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, +] + +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +description = "DNS toolkit" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, + {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=43)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=1.0.0)"] +idna = ["idna (>=3.7)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "ecdsa" +version = "0.19.0" +description = "ECDSA cryptographic signature library (pure python)" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"}, + {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "eval-type-backport" +version = "0.2.2" +description = "Like `typing._eval_type`, but lets older Python versions use newer typing features." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version < \"3.10\"" +files = [ + {file = "eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a"}, + {file = "eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "executing" +version = "2.2.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"}, + {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastapi" +version = "0.115.7" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi-0.115.7-py3-none-any.whl", hash = "sha256:eb6a8c8bf7f26009e8147111ff15b5177a0e19bb4a45bc3486ab14804539d21e"}, + {file = "fastapi-0.115.7.tar.gz", hash = "sha256:0f106da6c01d88a6786b3248fb4d7a940d071f6f488488898ad5d354b25ed015"}, +] + +[package.dependencies] +email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +fastapi-cli = {version = ">=0.0.5", extras = ["standard"], optional = true, markers = "extra == \"all\""} +httpx = {version = ">=0.23.0", optional = true, markers = "extra == \"all\""} +itsdangerous = {version = ">=1.1.0", optional = true, markers = "extra == \"all\""} +jinja2 = {version = ">=3.1.5", optional = true, markers = "extra == \"all\""} +orjson = {version = ">=3.2.1", optional = true, markers = "extra == \"all\""} +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +pydantic-extra-types = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +pydantic-settings = {version = ">=2.0.0", optional = true, markers = "extra == \"all\""} +python-multipart = {version = ">=0.0.18", optional = true, markers = "extra == \"all\""} +pyyaml = {version = ">=5.3.1", optional = true, markers = "extra == \"all\""} +starlette = ">=0.40.0,<0.46.0" +typing-extensions = ">=4.8.0" +ujson = {version = ">=4.0.1,<4.0.2 || >4.0.2,<4.1.0 || >4.1.0,<4.2.0 || >4.2.0,<4.3.0 || >4.3.0,<5.0.0 || >5.0.0,<5.1.0 || >5.1.0", optional = true, markers = "extra == \"all\""} +uvicorn = {version = ">=0.12.0", extras = ["standard"], optional = true, markers = "extra == \"all\""} + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4"}, + {file = "fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e"}, +] + +[package.dependencies] +rich-toolkit = ">=0.11.1" +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "filelock" +version = "3.17.0" +description = "A platform independent file lock." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, + {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] +typing = ["typing-extensions (>=4.12.2)"] + +[[package]] +name = "filetype" +version = "1.2.0" +description = "Infer file type and MIME type of any file/buffer. No external dependencies." +optional = false +python-versions = "*" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, + {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, +] + +[[package]] +name = "fsspec" +version = "2024.12.0" +description = "File-system specification" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"}, + {file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"}, +] + +[package.extras] +abfs = ["adlfs"] +adl = ["adlfs"] +arrow = ["pyarrow (>=1)"] +dask = ["dask", "distributed"] +dev = ["pre-commit", "ruff"] +doc = ["numpydoc", "sphinx", "sphinx-design", "sphinx-rtd-theme", "yarl"] +dropbox = ["dropbox", "dropboxdrivefs", "requests"] +full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "dask", "distributed", "dropbox", "dropboxdrivefs", "fusepy", "gcsfs", "libarchive-c", "ocifs", "panel", "paramiko", "pyarrow (>=1)", "pygit2", "requests", "s3fs", "smbprotocol", "tqdm"] +fuse = ["fusepy"] +gcs = ["gcsfs"] +git = ["pygit2"] +github = ["requests"] +gs = ["gcsfs"] +gui = ["panel"] +hdfs = ["pyarrow (>=1)"] +http = ["aiohttp (!=4.0.0a0,!=4.0.0a1)"] +libarchive = ["libarchive-c"] +oci = ["ocifs"] +s3 = ["s3fs"] +sftp = ["paramiko"] +smb = ["smbprotocol"] +ssh = ["paramiko"] +test = ["aiohttp (!=4.0.0a0,!=4.0.0a1)", "numpy", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "requests"] +test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,test]", "moto[server] (>4,<5)", "pytest-timeout", "xarray"] +test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"] +tqdm = ["tqdm"] + +[[package]] +name = "greenlet" +version = "3.1.1" +description = "Lightweight in-process concurrent programming" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "(python_version <= \"3.11\" or python_version >= \"3.12\") and python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")" +files = [ + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, +] + +[package.extras] +docs = ["Sphinx", "furo"] +test = ["objgraph", "psutil"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, + {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<1.0)"] + +[[package]] +name = "httptools" +version = "0.6.4" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httptools-0.6.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3c73ce323711a6ffb0d247dcd5a550b8babf0f757e86a52558fe5b86d6fefcc0"}, + {file = "httptools-0.6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:345c288418f0944a6fe67be8e6afa9262b18c7626c3ef3c28adc5eabc06a68da"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deee0e3343f98ee8047e9f4c5bc7cedbf69f5734454a94c38ee829fb2d5fa3c1"}, + {file = "httptools-0.6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca80b7485c76f768a3bc83ea58373f8db7b015551117375e4918e2aa77ea9b50"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:90d96a385fa941283ebd231464045187a31ad932ebfa541be8edf5b3c2328959"}, + {file = "httptools-0.6.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:59e724f8b332319e2875efd360e61ac07f33b492889284a3e05e6d13746876f4"}, + {file = "httptools-0.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:c26f313951f6e26147833fc923f78f95604bbec812a43e5ee37f26dc9e5a686c"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069"}, + {file = "httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975"}, + {file = "httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721"}, + {file = "httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988"}, + {file = "httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2"}, + {file = "httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1"}, + {file = "httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81"}, + {file = "httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f"}, + {file = "httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660"}, + {file = "httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3"}, + {file = "httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5"}, + {file = "httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0"}, + {file = "httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d3f0d369e7ffbe59c4b6116a44d6a8eb4783aae027f2c0b366cf0aa964185dba"}, + {file = "httptools-0.6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:94978a49b8f4569ad607cd4946b759d90b285e39c0d4640c6b36ca7a3ddf2efc"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc6a8e399e15ea525305a2ddba998b0af5caa2566bcd79dcbe8948181eeaff"}, + {file = "httptools-0.6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9ba8dcf59de5181f6be44a77458e45a578fc99c31510b8c65b7d5acc3cf490"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc411e1c0a7dcd2f902c7c48cf079947a7e65b5485dea9decb82b9105ca71a43"}, + {file = "httptools-0.6.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d54efd20338ac52ba31e7da78e4a72570cf729fac82bc31ff9199bedf1dc7440"}, + {file = "httptools-0.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:df959752a0c2748a65ab5387d08287abf6779ae9165916fe053e68ae1fbdc47f"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:85797e37e8eeaa5439d33e556662cc370e474445d5fab24dcadc65a8ffb04003"}, + {file = "httptools-0.6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:db353d22843cf1028f43c3651581e4bb49374d85692a85f95f7b9a130e1b2cab"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ffd262a73d7c28424252381a5b854c19d9de5f56f075445d33919a637e3547"}, + {file = "httptools-0.6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:703c346571fa50d2e9856a37d7cd9435a25e7fd15e236c397bf224afaa355fe9"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aafe0f1918ed07b67c1e838f950b1c1fabc683030477e60b335649b8020e1076"}, + {file = "httptools-0.6.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e563e54979e97b6d13f1bbc05a96109923e76b901f786a5eae36e99c01237bd"}, + {file = "httptools-0.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:b799de31416ecc589ad79dd85a0b2657a8fe39327944998dea368c1d4c9e55e6"}, + {file = "httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c"}, +] + +[package.extras] +test = ["Cython (>=0.29.24)"] + +[[package]] +name = "httpx" +version = "0.28.1" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, + {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "identify" +version = "2.6.6" +description = "File identification library for Python" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "identify-2.6.6-py2.py3-none-any.whl", hash = "sha256:cbd1810bce79f8b671ecb20f53ee0ae8e86ae84b557de31d89709dc2a48ba881"}, + {file = "identify-2.6.6.tar.gz", hash = "sha256:7bec12768ed44ea4761efb47806f0a41f86e7c0a5fdf5950d4648c90eca7e251"}, +] + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "importlib-metadata" +version = "8.6.1" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version < \"3.10\"" +files = [ + {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"}, + {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"}, +] + +[package.dependencies] +zipp = ">=3.20" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +perf = ["ipython"] +test = ["flufl.flake8", "importlib_resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.10.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ipython-8.10.0-py3-none-any.whl", hash = "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345"}, + {file = "ipython-8.10.0.tar.gz", hash = "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=3.0.30,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "ipywidgets" +version = "8.1.5" +description = "Jupyter interactive widgets" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ipywidgets-8.1.5-py3-none-any.whl", hash = "sha256:3290f526f87ae6e77655555baba4f36681c555b8bdbbff430b70e52c34c86245"}, + {file = "ipywidgets-8.1.5.tar.gz", hash = "sha256:870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17"}, +] + +[package.dependencies] +comm = ">=0.1.3" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0.12,<3.1.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0.12,<4.1.0" + +[package.extras] +test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "isort" +version = "5.13.2" +description = "A Python utility / library to sort Python imports." +optional = false +python-versions = ">=3.8.0" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, +] + +[package.extras] +colors = ["colorama (>=0.4.6)"] + +[[package]] +name = "itsdangerous" +version = "2.2.0" +description = "Safely pass data to untrusted environments and back." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, +] + +[[package]] +name = "jedi" +version = "0.19.2" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, +] + +[package.dependencies] +parso = ">=0.8.4,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.5" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jiter" +version = "0.8.2" +description = "Fast iterable JSON parser." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, + {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c826a221851a8dc028eb6d7d6429ba03184fa3c7e83ae01cd6d3bd1d4bd17d"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d35c864c2dff13dfd79fb070fc4fc6235d7b9b359efe340e1261deb21b9fcb66"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f557c55bc2b7676e74d39d19bcb8775ca295c7a028246175d6a8b431e70835e5"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:580ccf358539153db147e40751a0b41688a5ceb275e6f3e93d91c9467f42b2e3"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af102d3372e917cffce49b521e4c32c497515119dc7bd8a75665e90a718bbf08"}, + {file = "jiter-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cadcc978f82397d515bb2683fc0d50103acff2a180552654bb92d6045dec2c49"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ba5bdf56969cad2019d4e8ffd3f879b5fdc792624129741d3d83fc832fef8c7d"}, + {file = "jiter-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3b94a33a241bee9e34b8481cdcaa3d5c2116f575e0226e421bed3f7a6ea71cff"}, + {file = "jiter-0.8.2-cp310-cp310-win32.whl", hash = "sha256:6e5337bf454abddd91bd048ce0dca5134056fc99ca0205258766db35d0a2ea43"}, + {file = "jiter-0.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a9220497ca0cb1fe94e3f334f65b9b5102a0b8147646118f020d8ce1de70105"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2dd61c5afc88a4fda7d8b2cf03ae5947c6ac7516d32b7a15bf4b49569a5c076b"}, + {file = "jiter-0.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a6c710d657c8d1d2adbbb5c0b0c6bfcec28fd35bd6b5f016395f9ac43e878a15"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9584de0cd306072635fe4b89742bf26feae858a0683b399ad0c2509011b9dc0"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5a90a923338531b7970abb063cfc087eebae6ef8ec8139762007188f6bc69a9f"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21974d246ed0181558087cd9f76e84e8321091ebfb3a93d4c341479a736f099"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32475a42b2ea7b344069dc1e81445cfc00b9d0e3ca837f0523072432332e9f74"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b9931fd36ee513c26b5bf08c940b0ac875de175341cbdd4fa3be109f0492586"}, + {file = "jiter-0.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0820f4a3a59ddced7fce696d86a096d5cc48d32a4183483a17671a61edfddc"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8ffc86ae5e3e6a93765d49d1ab47b6075a9c978a2b3b80f0f32628f39caa0c88"}, + {file = "jiter-0.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5127dc1abd809431172bc3fbe8168d6b90556a30bb10acd5ded41c3cfd6f43b6"}, + {file = "jiter-0.8.2-cp311-cp311-win32.whl", hash = "sha256:66227a2c7b575720c1871c8800d3a0122bb8ee94edb43a5685aa9aceb2782d44"}, + {file = "jiter-0.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:cde031d8413842a1e7501e9129b8e676e62a657f8ec8166e18a70d94d4682855"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e6ec2be506e7d6f9527dae9ff4b7f54e68ea44a0ef6b098256ddf895218a2f8f"}, + {file = "jiter-0.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76e324da7b5da060287c54f2fabd3db5f76468006c811831f051942bf68c9d44"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:180a8aea058f7535d1c84183c0362c710f4750bef66630c05f40c93c2b152a0f"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025337859077b41548bdcbabe38698bcd93cfe10b06ff66617a48ff92c9aec60"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecff0dc14f409599bbcafa7e470c00b80f17abc14d1405d38ab02e4b42e55b57"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffd9fee7d0775ebaba131f7ca2e2d83839a62ad65e8e02fe2bd8fc975cedeb9e"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14601dcac4889e0a1c75ccf6a0e4baf70dbc75041e51bcf8d0e9274519df6887"}, + {file = "jiter-0.8.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92249669925bc1c54fcd2ec73f70f2c1d6a817928480ee1c65af5f6b81cdf12d"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e725edd0929fa79f8349ab4ec7f81c714df51dc4e991539a578e5018fa4a7152"}, + {file = "jiter-0.8.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bf55846c7b7a680eebaf9c3c48d630e1bf51bdf76c68a5f654b8524335b0ad29"}, + {file = "jiter-0.8.2-cp312-cp312-win32.whl", hash = "sha256:7efe4853ecd3d6110301665a5178b9856be7e2a9485f49d91aa4d737ad2ae49e"}, + {file = "jiter-0.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:83c0efd80b29695058d0fd2fa8a556490dbce9804eac3e281f373bbc99045f6c"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ca1f08b8e43dc3bd0594c992fb1fd2f7ce87f7bf0d44358198d6da8034afdf84"}, + {file = "jiter-0.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5672a86d55416ccd214c778efccf3266b84f87b89063b582167d803246354be4"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58dc9bc9767a1101f4e5e22db1b652161a225874d66f0e5cb8e2c7d1c438b587"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b2998606d6dadbb5ccda959a33d6a5e853252d921fec1792fc902351bb4e2c"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ab9a87f3784eb0e098f84a32670cfe4a79cb6512fd8f42ae3d0709f06405d18"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:79aec8172b9e3c6d05fd4b219d5de1ac616bd8da934107325a6c0d0e866a21b6"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:711e408732d4e9a0208008e5892c2966b485c783cd2d9a681f3eb147cf36c7ef"}, + {file = "jiter-0.8.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:653cf462db4e8c41995e33d865965e79641ef45369d8a11f54cd30888b7e6ff1"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9c63eaef32b7bebac8ebebf4dabebdbc6769a09c127294db6babee38e9f405b9"}, + {file = "jiter-0.8.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:eb21aaa9a200d0a80dacc7a81038d2e476ffe473ffdd9c91eb745d623561de05"}, + {file = "jiter-0.8.2-cp313-cp313-win32.whl", hash = "sha256:789361ed945d8d42850f919342a8665d2dc79e7e44ca1c97cc786966a21f627a"}, + {file = "jiter-0.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:ab7f43235d71e03b941c1630f4b6e3055d46b6cb8728a17663eaac9d8e83a865"}, + {file = "jiter-0.8.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b426f72cd77da3fec300ed3bc990895e2dd6b49e3bfe6c438592a3ba660e41ca"}, + {file = "jiter-0.8.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2dd880785088ff2ad21ffee205e58a8c1ddabc63612444ae41e5e4b321b39c0"}, + {file = "jiter-0.8.2-cp313-cp313t-win_amd64.whl", hash = "sha256:3ac9f578c46f22405ff7f8b1f5848fb753cc4b8377fbec8470a7dc3997ca7566"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9e1fa156ee9454642adb7e7234a383884452532bc9d53d5af2d18d98ada1d79c"}, + {file = "jiter-0.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cf5dfa9956d96ff2efb0f8e9c7d055904012c952539a774305aaaf3abdf3d6c"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e52bf98c7e727dd44f7c4acb980cb988448faeafed8433c867888268899b298b"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a2ecaa3c23e7a7cf86d00eda3390c232f4d533cd9ddea4b04f5d0644faf642c5"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:08d4c92bf480e19fc3f2717c9ce2aa31dceaa9163839a311424b6862252c943e"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99d9a1eded738299ba8e106c6779ce5c3893cffa0e32e4485d680588adae6db8"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20be8b7f606df096e08b0b1b4a3c6f0515e8dac296881fe7461dfa0fb5ec817"}, + {file = "jiter-0.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d33f94615fcaf872f7fd8cd98ac3b429e435c77619777e8a449d9d27e01134d1"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:317b25e98a35ffec5c67efe56a4e9970852632c810d35b34ecdd70cc0e47b3b6"}, + {file = "jiter-0.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fc9043259ee430ecd71d178fccabd8c332a3bf1e81e50cae43cc2b28d19e4cb7"}, + {file = "jiter-0.8.2-cp38-cp38-win32.whl", hash = "sha256:fc5adda618205bd4678b146612ce44c3cbfdee9697951f2c0ffdef1f26d72b63"}, + {file = "jiter-0.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cd646c827b4f85ef4a78e4e58f4f5854fae0caf3db91b59f0d73731448a970c6"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e41e75344acef3fc59ba4765df29f107f309ca9e8eace5baacabd9217e52a5ee"}, + {file = "jiter-0.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f22b16b35d5c1df9dfd58843ab2cd25e6bf15191f5a236bed177afade507bfc"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7200b8f7619d36aa51c803fd52020a2dfbea36ffec1b5e22cab11fd34d95a6d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:70bf4c43652cc294040dbb62256c83c8718370c8b93dd93d934b9a7bf6c4f53c"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f9d471356dc16f84ed48768b8ee79f29514295c7295cb41e1133ec0b2b8d637d"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:859e8eb3507894093d01929e12e267f83b1d5f6221099d3ec976f0c995cb6bd9"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaa58399c01db555346647a907b4ef6d4f584b123943be6ed5588c3f2359c9f4"}, + {file = "jiter-0.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8f2d5ed877f089862f4c7aacf3a542627c1496f972a34d0474ce85ee7d939c27"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:03c9df035d4f8d647f8c210ddc2ae0728387275340668fb30d2421e17d9a0841"}, + {file = "jiter-0.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8bd2a824d08d8977bb2794ea2682f898ad3d8837932e3a74937e93d62ecbb637"}, + {file = "jiter-0.8.2-cp39-cp39-win32.whl", hash = "sha256:ca29b6371ebc40e496995c94b988a101b9fbbed48a51190a4461fcb0a68b4a36"}, + {file = "jiter-0.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:1c0dfbd1be3cbefc7510102370d86e35d1d53e5a93d48519688b1bf0f761160a"}, + {file = "jiter-0.8.2.tar.gz", hash = "sha256:cd73d3e740666d0e639f678adb176fad25c1bcbdae88d8d7b857e1783bb4212d"}, +] + +[[package]] +name = "joblib" +version = "1.4.2" +description = "Lightweight pipelining with Python functions" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, +] + +[[package]] +name = "json5" +version = "0.10.0" +description = "A Python implementation of the JSON5 data format." +optional = false +python-versions = ">=3.8.0" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, +] + +[package.extras] +dev = ["build (==1.2.2.post1)", "coverage (==7.5.3)", "mypy (==1.13.0)", "pip (==24.3.1)", "pylint (==3.2.3)", "ruff (==0.7.3)", "twine (==5.1.1)", "uv (==0.5.1)"] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +rpds-py = ">=0.7.1" +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=24.6.0", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, + {file = "jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter" +version = "1.1.1" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter-1.1.1-py2.py3-none-any.whl", hash = "sha256:7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83"}, + {file = "jupyter-1.1.1.tar.gz", hash = "sha256:d55467bceabdea49d7e3624af7e33d59c37fff53ed3a350e1ac957bed731de7a"}, +] + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +jupyterlab = "*" +nbconvert = "*" +notebook = "*" + +[[package]] +name = "jupyter-client" +version = "8.6.3" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.6.3" +description = "Jupyter terminal console" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter_console-6.6.3-py3-none-any.whl", hash = "sha256:309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485"}, + {file = "jupyter_console-6.6.3.tar.gz", hash = "sha256:566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539"}, +] + +[package.dependencies] +ipykernel = ">=6.14" +ipython = "*" +jupyter-client = ">=7.0.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +prompt-toolkit = ">=3.0.30" +pygments = "*" +pyzmq = ">=17" +traitlets = ">=5.4" + +[package.extras] +test = ["flaky", "pexpect", "pytest"] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.11.0" +description = "Jupyter Event System library" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter_events-0.11.0-py3-none-any.whl", hash = "sha256:36399b41ce1ca45fe8b8271067d6a140ffa54cec4028e95491c93b78a855cacf"}, + {file = "jupyter_events-0.11.0.tar.gz", hash = "sha256:c0bc56a37aac29c1fbc3bcfbddb8c8c49533f9cf11f1c4e6adadba936574ab90"}, +] + +[package.dependencies] +jsonschema = {version = ">=4.18.0", extras = ["format-nongpl"]} +python-json-logger = ">=2.0.4" +pyyaml = ">=5.3" +referencing = "*" +rfc3339-validator = "*" +rfc3986-validator = ">=0.1.1" +traitlets = ">=5.3" + +[package.extras] +cli = ["click", "rich"] +docs = ["jupyterlite-sphinx", "myst-parser", "pydata-sphinx-theme (>=0.16)", "sphinx (>=8)", "sphinxcontrib-spelling"] +test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "rich"] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001"}, + {file = "jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-server = ">=1.1.2" + +[[package]] +name = "jupyter-server" +version = "2.15.0" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3"}, + {file = "jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084"}, +] + +[package.dependencies] +anyio = ">=3.1.0" +argon2-cffi = ">=21.1" +jinja2 = ">=3.0.3" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-events = ">=0.11.0" +jupyter-server-terminals = ">=0.4.4" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +overrides = ">=5.0" +packaging = ">=22.0" +prometheus-client = ">=0.9" +pywinpty = {version = ">=2.0.1", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = ">=1.8.2" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = ">=1.7" + +[package.extras] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +description = "A Jupyter Server Extension Providing Terminals." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa"}, + {file = "jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269"}, +] + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<4.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxcontrib-spelling", "sphinxemoji", "tornado"] +test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab" +version = "4.3.5" +description = "JupyterLab computational environment" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyterlab-4.3.5-py3-none-any.whl", hash = "sha256:571bbdee20e4c5321ab5195bc41cf92a75a5cff886be5e57ce78dfa37a5e9fdb"}, + {file = "jupyterlab-4.3.5.tar.gz", hash = "sha256:c779bf72ced007d7d29d5bcef128e7fdda96ea69299e19b04a43635a7d641f9d"}, +] + +[package.dependencies] +async-lru = ">=1.0.0" +httpx = ">=0.25.0" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +ipykernel = ">=6.5.0" +jinja2 = ">=3.0.3" +jupyter-core = "*" +jupyter-lsp = ">=2.0.0" +jupyter-server = ">=2.4.0,<3" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2" +packaging = "*" +setuptools = ">=40.8.0" +tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} +tornado = ">=6.2.0" +traitlets = "*" + +[package.extras] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.6.9)"] +docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<8.1.0)", "sphinx-copybutton"] +docs-screenshots = ["altair (==5.4.1)", "ipython (==8.16.1)", "ipywidgets (==8.1.5)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.2.post3)", "matplotlib (==3.9.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.3)", "scipy (==1.14.1)", "vega-datasets (==0.9.0)"] +test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] +upgrade-extension = ["copier (>=9,<10)", "jinja2-time (<0.3)", "pydantic (<3.0)", "pyyaml-include (<3.0)", "tomli-w (<2.0)"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +description = "Pygments theme using JupyterLab CSS variables" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780"}, + {file = "jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d"}, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +description = "A set of server components for JupyterLab and JupyterLab like applications." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4"}, + {file = "jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4"}, +] + +[package.dependencies] +babel = ">=2.10" +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0.3" +json5 = ">=0.9.0" +jsonschema = ">=4.18.0" +jupyter-server = ">=1.21,<3" +packaging = ">=21.3" +requests = ">=2.31" + +[package.extras] +docs = ["autodoc-traits", "jinja2 (<3.2.0)", "mistune (<4)", "myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-copybutton", "sphinxcontrib-openapi (>0.8)"] +openapi = ["openapi-core (>=0.18.0,<0.19.0)", "ruamel-yaml"] +test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-validator (>=0.6.0,<0.8.0)", "pytest (>=7.0,<8)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter[server] (>=0.6.2)", "pytest-timeout", "requests-mock", "ruamel-yaml", "sphinxcontrib-spelling", "strict-rfc3339", "werkzeug"] + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.13" +description = "Jupyter interactive widgets for JupyterLab" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "jupyterlab_widgets-3.0.13-py3-none-any.whl", hash = "sha256:e3cda2c233ce144192f1e29914ad522b2f4c40e77214b0cc97377ca3d323db54"}, + {file = "jupyterlab_widgets-3.0.13.tar.gz", hash = "sha256:a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed"}, +] + +[[package]] +name = "lazy-object-proxy" +version = "1.10.0" +description = "A fast and thorough lazy object proxy." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "lazy-object-proxy-1.10.0.tar.gz", hash = "sha256:78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:855e068b0358ab916454464a884779c7ffa312b8925c6f7401e952dcf3b89977"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab7004cf2e59f7c2e4345604a3e6ea0d92ac44e1c2375527d56492014e690c3"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e2adb09778797da09d2b5ebdbceebf7dd32e2c96f79da9052b2e87b6ea495895"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1f711e2c6dcd4edd372cf5dec5c5a30d23bba06ee012093267b3376c079ec83"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win32.whl", hash = "sha256:76a095cfe6045c7d0ca77db9934e8f7b71b14645f0094ffcd842349ada5c5fb9"}, + {file = "lazy_object_proxy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:b4f87d4ed9064b2628da63830986c3d2dca7501e6018347798313fcf028e2fd4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fec03caabbc6b59ea4a638bee5fce7117be8e99a4103d9d5ad77f15d6f81020c"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02c83f957782cbbe8136bee26416686a6ae998c7b6191711a04da776dc9e47d4"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009e6bb1f1935a62889ddc8541514b6a9e1fcf302667dcb049a0be5c8f613e56"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75fc59fc450050b1b3c203c35020bc41bd2695ed692a392924c6ce180c6f1dc9"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:782e2c9b2aab1708ffb07d4bf377d12901d7a1d99e5e410d648d892f8967ab1f"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win32.whl", hash = "sha256:edb45bb8278574710e68a6b021599a10ce730d156e5b254941754a9cc0b17d03"}, + {file = "lazy_object_proxy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:e271058822765ad5e3bca7f05f2ace0de58a3f4e62045a8c90a0dfd2f8ad8cc6"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e98c8af98d5707dcdecc9ab0863c0ea6e88545d42ca7c3feffb6b4d1e370c7ba"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:952c81d415b9b80ea261d2372d2a4a2332a3890c2b83e0535f263ddfe43f0d43"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80b39d3a151309efc8cc48675918891b865bdf742a8616a337cb0090791a0de9"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e221060b701e2aa2ea991542900dd13907a5c90fa80e199dbf5a03359019e7a3"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:92f09ff65ecff3108e56526f9e2481b8116c0b9e1425325e13245abfd79bdb1b"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win32.whl", hash = "sha256:3ad54b9ddbe20ae9f7c1b29e52f123120772b06dbb18ec6be9101369d63a4074"}, + {file = "lazy_object_proxy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:127a789c75151db6af398b8972178afe6bda7d6f68730c057fbbc2e96b08d282"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4ed0518a14dd26092614412936920ad081a424bdcb54cc13349a8e2c6d106a"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad9e6ed739285919aa9661a5bbed0aaf410aa60231373c5579c6b4801bd883c"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc0a92c02fa1ca1e84fc60fa258458e5bf89d90a1ddaeb8ed9cc3147f417255"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0aefc7591920bbd360d57ea03c995cebc204b424524a5bd78406f6e1b8b2a5d8"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5faf03a7d8942bb4476e3b62fd0f4cf94eaf4618e304a19865abf89a35c0bbee"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win32.whl", hash = "sha256:e333e2324307a7b5d86adfa835bb500ee70bfcd1447384a822e96495796b0ca4"}, + {file = "lazy_object_proxy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:cb73507defd385b7705c599a94474b1d5222a508e502553ef94114a143ec6696"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:366c32fe5355ef5fc8a232c5436f4cc66e9d3e8967c01fb2e6302fd6627e3d94"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2297f08f08a2bb0d32a4265e98a006643cd7233fb7983032bd61ac7a02956b3b"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18dd842b49456aaa9a7cf535b04ca4571a302ff72ed8740d06b5adcd41fe0757"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:217138197c170a2a74ca0e05bddcd5f1796c735c37d0eee33e43259b192aa424"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a3a87cf1e133e5b1994144c12ca4aa3d9698517fe1e2ca82977781b16955658"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win32.whl", hash = "sha256:30b339b2a743c5288405aa79a69e706a06e02958eab31859f7f3c04980853b70"}, + {file = "lazy_object_proxy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:a899b10e17743683b293a729d3a11f2f399e8a90c73b089e29f5d0fe3509f0dd"}, + {file = "lazy_object_proxy-1.10.0-pp310.pp311.pp312.pp38.pp39-none-any.whl", hash = "sha256:80fa48bd89c8f2f456fc0765c11c23bf5af827febacd2f523ca5bc1893fcc09d"}, +] + +[[package]] +name = "llama-index-core" +version = "0.12.14" +description = "Interface between LLMs and your data" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, +] + +[package.dependencies] +aiohttp = ">=3.8.6,<4.0.0" +dataclasses-json = "*" +deprecated = ">=1.2.9.3" +dirtyjson = ">=1.0.8,<2.0.0" +eval-type-backport = {version = ">=0.2.0,<0.3.0", markers = "python_version < \"3.10\""} +filetype = ">=1.2.0,<2.0.0" +fsspec = ">=2023.5.0" +httpx = "*" +nest-asyncio = ">=1.5.8,<2.0.0" +networkx = ">=3.0" +nltk = ">3.8.1" +numpy = "*" +pillow = ">=9.0.0" +pydantic = ">=2.8.0" +PyYAML = ">=6.0.1" +requests = ">=2.31.0" +SQLAlchemy = {version = ">=1.4.49", extras = ["asyncio"]} +tenacity = ">=8.2.0,<8.4.0 || >8.4.0,<10.0.0" +tiktoken = ">=0.3.3" +tqdm = ">=4.66.1,<5.0.0" +typing-extensions = ">=4.5.0" +typing-inspect = ">=0.8.0" +wrapt = "*" + +[[package]] +name = "llama-index-embeddings-openai" +version = "0.3.1" +description = "llama-index embeddings openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_embeddings_openai-0.3.1-py3-none-any.whl", hash = "sha256:f15a3d13da9b6b21b8bd51d337197879a453d1605e625a1c6d45e741756c0290"}, + {file = "llama_index_embeddings_openai-0.3.1.tar.gz", hash = "sha256:1368aad3ce24cbaed23d5ad251343cef1eb7b4a06d6563d6606d59cb347fef20"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.0,<0.13.0" +openai = ">=1.1.0" + +[[package]] +name = "llama-index-llms-openai" +version = "0.3.14" +description = "llama-index llms openai integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, +] + +[package.dependencies] +llama-index-core = ">=0.12.4,<0.13.0" +openai = ">=1.58.1,<2.0.0" + +[[package]] +name = "llama-index-readers-file" +version = "0.4.4" +description = "llama-index readers file integration" +optional = false +python-versions = "<4.0,>=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.12.3,<5.0.0" +llama-index-core = ">=0.12.0,<0.13.0" +pandas = "*" +pypdf = ">=5.1.0,<6.0.0" +striprtf = ">=0.0.26,<0.0.27" + +[package.extras] +pymupdf = ["pymupdf (>=1.23.21,<2.0.0)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.2" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50"}, + {file = "MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"}, + {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30"}, + {file = "MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1"}, + {file = "MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6"}, + {file = "MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f"}, + {file = "MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a"}, + {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"}, +] + +[[package]] +name = "marshmallow" +version = "3.26.0" +description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, +] + +[package.dependencies] +packaging = ">=17.0" + +[package.extras] +dev = ["marshmallow[tests]", "pre-commit (>=3.5,<5.0)", "tox"] +docs = ["autodocsumm (==0.2.14)", "furo (==2024.8.6)", "sphinx (==8.1.3)", "sphinx-copybutton (==0.5.2)", "sphinx-issues (==5.0.0)", "sphinxext-opengraph (==0.9.1)"] +tests = ["pytest", "simplejson"] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mistune" +version = "3.1.1" +description = "A sane and fast Markdown parser with useful plugins and renderers" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mistune-3.1.1-py3-none-any.whl", hash = "sha256:02106ac2aa4f66e769debbfa028509a275069dcffce0dfa578edd7b991ee700a"}, + {file = "mistune-3.1.1.tar.gz", hash = "sha256:e0740d635f515119f7d1feb6f9b192ee60f0cc649f80a8f944f905706a21654c"}, +] + +[package.dependencies] +typing-extensions = {version = "*", markers = "python_version < \"3.11\""} + +[[package]] +name = "multidict" +version = "6.1.0" +description = "multidict implementation" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"}, + {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"}, + {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"}, + {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"}, + {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"}, + {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"}, + {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"}, + {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"}, + {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"}, + {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"}, + {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"}, + {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"}, + {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"}, + {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"}, + {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"}, + {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"}, + {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"}, + {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"}, + {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"}, + {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"}, + {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"}, + {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"}, + {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"}, + {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"}, + {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"}, + {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"}, + {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"}, + {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"}, + {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"}, + {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"}, + {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"}, + {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"}, + {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "mypy" +version = "0.991" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mypy-0.991-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7d17e0a9707d0772f4a7b878f04b4fd11f6f5bcb9b3813975a9b13c9332153ab"}, + {file = "mypy-0.991-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0714258640194d75677e86c786e80ccf294972cc76885d3ebbb560f11db0003d"}, + {file = "mypy-0.991-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8f3be99e8a8bd403caa8c03be619544bc2c77a7093685dcf308c6b109426c6"}, + {file = "mypy-0.991-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9ec663ed6c8f15f4ae9d3c04c989b744436c16d26580eaa760ae9dd5d662eb"}, + {file = "mypy-0.991-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4307270436fd7694b41f913eb09210faff27ea4979ecbcd849e57d2da2f65305"}, + {file = "mypy-0.991-cp310-cp310-win_amd64.whl", hash = "sha256:901c2c269c616e6cb0998b33d4adbb4a6af0ac4ce5cd078afd7bc95830e62c1c"}, + {file = "mypy-0.991-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d13674f3fb73805ba0c45eb6c0c3053d218aa1f7abead6e446d474529aafc372"}, + {file = "mypy-0.991-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c8cd4fb70e8584ca1ed5805cbc7c017a3d1a29fb450621089ffed3e99d1857f"}, + {file = "mypy-0.991-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:209ee89fbb0deed518605edddd234af80506aec932ad28d73c08f1400ef80a33"}, + {file = "mypy-0.991-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37bd02ebf9d10e05b00d71302d2c2e6ca333e6c2a8584a98c00e038db8121f05"}, + {file = "mypy-0.991-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:26efb2fcc6b67e4d5a55561f39176821d2adf88f2745ddc72751b7890f3194ad"}, + {file = "mypy-0.991-cp311-cp311-win_amd64.whl", hash = "sha256:3a700330b567114b673cf8ee7388e949f843b356a73b5ab22dd7cff4742a5297"}, + {file = "mypy-0.991-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1f7d1a520373e2272b10796c3ff721ea1a0712288cafaa95931e66aa15798813"}, + {file = "mypy-0.991-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:641411733b127c3e0dab94c45af15fea99e4468f99ac88b39efb1ad677da5711"}, + {file = "mypy-0.991-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3d80e36b7d7a9259b740be6d8d906221789b0d836201af4234093cae89ced0cd"}, + {file = "mypy-0.991-cp37-cp37m-win_amd64.whl", hash = "sha256:e62ebaad93be3ad1a828a11e90f0e76f15449371ffeecca4a0a0b9adc99abcef"}, + {file = "mypy-0.991-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b86ce2c1866a748c0f6faca5232059f881cda6dda2a893b9a8373353cfe3715a"}, + {file = "mypy-0.991-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac6e503823143464538efda0e8e356d871557ef60ccd38f8824a4257acc18d93"}, + {file = "mypy-0.991-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cca5adf694af539aeaa6ac633a7afe9bbd760df9d31be55ab780b77ab5ae8bf"}, + {file = "mypy-0.991-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12c56bf73cdab116df96e4ff39610b92a348cc99a1307e1da3c3768bbb5b135"}, + {file = "mypy-0.991-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:652b651d42f155033a1967739788c436491b577b6a44e4c39fb340d0ee7f0d70"}, + {file = "mypy-0.991-cp38-cp38-win_amd64.whl", hash = "sha256:4175593dc25d9da12f7de8de873a33f9b2b8bdb4e827a7cae952e5b1a342e243"}, + {file = "mypy-0.991-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98e781cd35c0acf33eb0295e8b9c55cdbef64fcb35f6d3aa2186f289bed6e80d"}, + {file = "mypy-0.991-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6d7464bac72a85cb3491c7e92b5b62f3dcccb8af26826257760a552a5e244aa5"}, + {file = "mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c9166b3f81a10cdf9b49f2d594b21b31adadb3d5e9db9b834866c3258b695be3"}, + {file = "mypy-0.991-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8472f736a5bfb159a5e36740847808f6f5b659960115ff29c7cecec1741c648"}, + {file = "mypy-0.991-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e80e758243b97b618cdf22004beb09e8a2de1af481382e4d84bc52152d1c476"}, + {file = "mypy-0.991-cp39-cp39-win_amd64.whl", hash = "sha256:74e259b5c19f70d35fcc1ad3d56499065c601dfe94ff67ae48b85596b9ec1461"}, + {file = "mypy-0.991-py3-none-any.whl", hash = "sha256:de32edc9b0a7e67c2775e574cb061a537660e51210fbf6006b0b36ea695ae9bb"}, + {file = "mypy-0.991.tar.gz", hash = "sha256:3c0165ba8f354a6d9881809ef29f1a9318a236a6d81c690094c5df32107bde06"}, +] + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +python2 = ["typed-ast (>=1.4.0,<2)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nbclient" +version = "0.10.2" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +optional = false +python-versions = ">=3.9.0" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d"}, + {file = "nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193"}, +] + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +nbformat = ">=5.1" +traitlets = ">=5.4" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "mock", "moto", "myst-parser", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "sphinx (>=1.7)", "sphinx-book-theme", "sphinxcontrib-spelling", "testpath", "xmltodict"] +test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>=7.1.0)", "pytest (>=7.0,<8)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.16.6" +description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b"}, + {file = "nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582"}, +] + +[package.dependencies] +beautifulsoup4 = "*" +bleach = {version = "!=5.0.0", extras = ["css"]} +defusedxml = "*" +importlib-metadata = {version = ">=3.6", markers = "python_version < \"3.10\""} +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<4" +nbclient = ">=0.5.0" +nbformat = ">=5.7" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +traitlets = ">=5.1" + +[package.extras] +all = ["flaky", "ipykernel", "ipython", "ipywidgets (>=7.5)", "myst-parser", "nbsphinx (>=0.2.12)", "playwright", "pydata-sphinx-theme", "pyqtwebengine (>=5.15)", "pytest (>=7)", "sphinx (==5.0.2)", "sphinxcontrib-spelling", "tornado (>=6.1)"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)", "sphinxcontrib-spelling"] +qtpdf = ["pyqtwebengine (>=5.15)"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["flaky", "ipykernel", "ipywidgets (>=7.5)", "pytest (>=7)"] +webpdf = ["playwright"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + +[[package]] +name = "networkx" +version = "3.2.1" +description = "Python package for creating and manipulating graphs and networks" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, + {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, +] + +[package.extras] +default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] +developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] +doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] +extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] +test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] + +[[package]] +name = "nltk" +version = "3.9.1" +description = "Natural Language Toolkit" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1"}, + {file = "nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868"}, +] + +[package.dependencies] +click = "*" +joblib = "*" +regex = ">=2021.8.3" +tqdm = "*" + +[package.extras] +all = ["matplotlib", "numpy", "pyparsing", "python-crfsuite", "requests", "scikit-learn", "scipy", "twython"] +corenlp = ["requests"] +machine-learning = ["numpy", "python-crfsuite", "scikit-learn", "scipy"] +plot = ["matplotlib"] +tgrep = ["pyparsing"] +twitter = ["twython"] + +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + +[[package]] +name = "notebook" +version = "7.3.2" +description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "notebook-7.3.2-py3-none-any.whl", hash = "sha256:e5f85fc59b69d3618d73cf27544418193ff8e8058d5bf61d315ce4f473556288"}, + {file = "notebook-7.3.2.tar.gz", hash = "sha256:705e83a1785f45b383bf3ee13cb76680b92d24f56fb0c7d2136fe1d850cd3ca8"}, +] + +[package.dependencies] +jupyter-server = ">=2.4.0,<3" +jupyterlab = ">=4.3.4,<4.4" +jupyterlab-server = ">=2.27.1,<3" +notebook-shim = ">=0.2,<0.3" +tornado = ">=6.2.0" + +[package.extras] +dev = ["hatch", "pre-commit"] +docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +description = "A shim layer for notebook traits and config" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef"}, + {file = "notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb"}, +] + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "openai" +version = "1.60.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "openai-1.60.2-py3-none-any.whl", hash = "sha256:993bd11b96900b9098179c728026f016b4982ded7ee30dfcf4555eab1171fff9"}, + {file = "openai-1.60.2.tar.gz", hash = "sha256:a8f843e10f2855713007f491d96afb2694b11b5e02cb97c7d01a0be60bc5bb51"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +jiter = ">=0.4.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.11,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] +realtime = ["websockets (>=13,<15)"] + +[[package]] +name = "orjson" +version = "3.10.15" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c2c79fa308e6edb0ffab0a31fd75a7841bf2a79a20ef08a3c6e3b26814c8ca8"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cb85490aa6bf98abd20607ab5c8324c0acb48d6da7863a51be48505646c814"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763dadac05e4e9d2bc14938a45a2d0560549561287d41c465d3c58aec818b164"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a330b9b4734f09a623f74a7490db713695e13b67c959713b78369f26b3dee6bf"}, + {file = "orjson-3.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a61a4622b7ff861f019974f73d8165be1bd9a0855e1cad18ee167acacabeb061"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd271247691574416b3228db667b84775c497b245fa275c6ab90dc1ffbbd2b3"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4759b109c37f635aa5c5cc93a1b26927bfde24b254bcc0e1149a9fada253d2d"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9e992fd5cfb8b9f00bfad2fd7a05a4299db2bbe92e6440d9dd2fab27655b3182"}, + {file = "orjson-3.10.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f95fb363d79366af56c3f26b71df40b9a583b07bbaaf5b317407c4d58497852e"}, + {file = "orjson-3.10.15-cp310-cp310-win32.whl", hash = "sha256:f9875f5fea7492da8ec2444839dcc439b0ef298978f311103d0b7dfd775898ab"}, + {file = "orjson-3.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:17085a6aa91e1cd70ca8533989a18b5433e15d29c574582f76f821737c8d5806"}, + {file = "orjson-3.10.15-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c4cc83960ab79a4031f3119cc4b1a1c627a3dc09df125b27c4201dff2af7eaa6"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddbeef2481d895ab8be5185f2432c334d6dec1f5d1933a9c83014d188e102cef"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9e590a0477b23ecd5b0ac865b1b907b01b3c5535f5e8a8f6ab0e503efb896334"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a6be38bd103d2fd9bdfa31c2720b23b5d47c6796bcb1d1b598e3924441b4298d"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ff4f6edb1578960ed628a3b998fa54d78d9bb3e2eb2cfc5c2a09732431c678d0"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0482b21d0462eddd67e7fce10b89e0b6ac56570424662b685a0d6fccf581e13"}, + {file = "orjson-3.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb5cc3527036ae3d98b65e37b7986a918955f85332c1ee07f9d3f82f3a6899b5"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d569c1c462912acdd119ccbf719cf7102ea2c67dd03b99edcb1a3048651ac96b"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1e6d33efab6b71d67f22bf2962895d3dc6f82a6273a965fab762e64fa90dc399"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c33be3795e299f565681d69852ac8c1bc5c84863c0b0030b2b3468843be90388"}, + {file = "orjson-3.10.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:eea80037b9fae5339b214f59308ef0589fc06dc870578b7cce6d71eb2096764c"}, + {file = "orjson-3.10.15-cp311-cp311-win32.whl", hash = "sha256:d5ac11b659fd798228a7adba3e37c010e0152b78b1982897020a8e019a94882e"}, + {file = "orjson-3.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:cf45e0214c593660339ef63e875f32ddd5aa3b4adc15e662cdb80dc49e194f8e"}, + {file = "orjson-3.10.15-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9d11c0714fc85bfcf36ada1179400862da3288fc785c30e8297844c867d7505a"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dba5a1e85d554e3897fa9fe6fbcff2ed32d55008973ec9a2b992bd9a65d2352d"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7723ad949a0ea502df656948ddd8b392780a5beaa4c3b5f97e525191b102fff0"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fd9bc64421e9fe9bd88039e7ce8e58d4fead67ca88e3a4014b143cec7684fd4"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dadba0e7b6594216c214ef7894c4bd5f08d7c0135f4dd0145600be4fbcc16767"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48f59114fe318f33bbaee8ebeda696d8ccc94c9e90bc27dbe72153094e26f41"}, + {file = "orjson-3.10.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:035fb83585e0f15e076759b6fedaf0abb460d1765b6a36f48018a52858443514"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d13b7fe322d75bf84464b075eafd8e7dd9eae05649aa2a5354cfa32f43c59f17"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7066b74f9f259849629e0d04db6609db4cf5b973248f455ba5d3bd58a4daaa5b"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88dc3f65a026bd3175eb157fea994fca6ac7c4c8579fc5a86fc2114ad05705b7"}, + {file = "orjson-3.10.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b342567e5465bd99faa559507fe45e33fc76b9fb868a63f1642c6bc0735ad02a"}, + {file = "orjson-3.10.15-cp312-cp312-win32.whl", hash = "sha256:0a4f27ea5617828e6b58922fdbec67b0aa4bb844e2d363b9244c47fa2180e665"}, + {file = "orjson-3.10.15-cp312-cp312-win_amd64.whl", hash = "sha256:ef5b87e7aa9545ddadd2309efe6824bd3dd64ac101c15dae0f2f597911d46eaa"}, + {file = "orjson-3.10.15-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bae0e6ec2b7ba6895198cd981b7cca95d1487d0147c8ed751e5632ad16f031a6"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f93ce145b2db1252dd86af37d4165b6faa83072b46e3995ecc95d4b2301b725a"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c203f6f969210128af3acae0ef9ea6aab9782939f45f6fe02d05958fe761ef9"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8918719572d662e18b8af66aef699d8c21072e54b6c82a3f8f6404c1f5ccd5e0"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f71eae9651465dff70aa80db92586ad5b92df46a9373ee55252109bb6b703307"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e117eb299a35f2634e25ed120c37c641398826c2f5a3d3cc39f5993b96171b9e"}, + {file = "orjson-3.10.15-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:13242f12d295e83c2955756a574ddd6741c81e5b99f2bef8ed8d53e47a01e4b7"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7946922ada8f3e0b7b958cc3eb22cfcf6c0df83d1fe5521b4a100103e3fa84c8"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b7155eb1623347f0f22c38c9abdd738b287e39b9982e1da227503387b81b34ca"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:208beedfa807c922da4e81061dafa9c8489c6328934ca2a562efa707e049e561"}, + {file = "orjson-3.10.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eca81f83b1b8c07449e1d6ff7074e82e3fd6777e588f1a6632127f286a968825"}, + {file = "orjson-3.10.15-cp313-cp313-win32.whl", hash = "sha256:c03cd6eea1bd3b949d0d007c8d57049aa2b39bd49f58b4b2af571a5d3833d890"}, + {file = "orjson-3.10.15-cp313-cp313-win_amd64.whl", hash = "sha256:fd56a26a04f6ba5fb2045b0acc487a63162a958ed837648c5781e1fe3316cfbf"}, + {file = "orjson-3.10.15-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:5e8afd6200e12771467a1a44e5ad780614b86abb4b11862ec54861a82d677746"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da9a18c500f19273e9e104cca8c1f0b40a6470bcccfc33afcc088045d0bf5ea6"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb00b7bfbdf5d34a13180e4805d76b4567025da19a197645ca746fc2fb536586"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33aedc3d903378e257047fee506f11e0833146ca3e57a1a1fb0ddb789876c1e1"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd0099ae6aed5eb1fc84c9eb72b95505a3df4267e6962eb93cdd5af03be71c98"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c864a80a2d467d7786274fce0e4f93ef2a7ca4ff31f7fc5634225aaa4e9e98c"}, + {file = "orjson-3.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c25774c9e88a3e0013d7d1a6c8056926b607a61edd423b50eb5c88fd7f2823ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e78c211d0074e783d824ce7bb85bf459f93a233eb67a5b5003498232ddfb0e8a"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:43e17289ffdbbac8f39243916c893d2ae41a2ea1a9cbb060a56a4d75286351ae"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:781d54657063f361e89714293c095f506c533582ee40a426cb6489c48a637b81"}, + {file = "orjson-3.10.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6875210307d36c94873f553786a808af2788e362bd0cf4c8e66d976791e7b528"}, + {file = "orjson-3.10.15-cp38-cp38-win32.whl", hash = "sha256:305b38b2b8f8083cc3d618927d7f424349afce5975b316d33075ef0f73576b60"}, + {file = "orjson-3.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:5dd9ef1639878cc3efffed349543cbf9372bdbd79f478615a1c633fe4e4180d1"}, + {file = "orjson-3.10.15-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ffe19f3e8d68111e8644d4f4e267a069ca427926855582ff01fc012496d19969"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d433bf32a363823863a96561a555227c18a522a8217a6f9400f00ddc70139ae2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da03392674f59a95d03fa5fb9fe3a160b0511ad84b7a3914699ea5a1b3a38da2"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a63bb41559b05360ded9132032239e47983a39b151af1201f07ec9370715c82"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3766ac4702f8f795ff3fa067968e806b4344af257011858cc3d6d8721588b53f"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a1c73dcc8fadbd7c55802d9aa093b36878d34a3b3222c41052ce6b0fc65f8e8"}, + {file = "orjson-3.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b299383825eafe642cbab34be762ccff9fd3408d72726a6b2a4506d410a71ab3"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:abc7abecdbf67a173ef1316036ebbf54ce400ef2300b4e26a7b843bd446c2480"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3614ea508d522a621384c1d6639016a5a2e4f027f3e4a1c93a51867615d28829"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:295c70f9dc154307777ba30fe29ff15c1bcc9dfc5c48632f37d20a607e9ba85a"}, + {file = "orjson-3.10.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:63309e3ff924c62404923c80b9e2048c1f74ba4b615e7584584389ada50ed428"}, + {file = "orjson-3.10.15-cp39-cp39-win32.whl", hash = "sha256:a2f708c62d026fb5340788ba94a55c23df4e1869fec74be455e0b2f5363b8507"}, + {file = "orjson-3.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:efcf6c735c3d22ef60c4aa27a5238f1a477df85e9b15f2142f9d669beb2d13fd"}, + {file = "orjson-3.10.15.tar.gz", hash = "sha256:05ca7fe452a2e9d8d9d706a2984c95b9c2ebc5db417ce0b7a49b91d50642a23e"}, +] + +[[package]] +name = "overrides" +version = "7.7.0" +description = "A decorator to automatically detect mismatch when overriding a method." +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, +] + +[[package]] +name = "packaging" +version = "24.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, + {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +description = "Utilities for writing pandoc filters in python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc"}, + {file = "pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e"}, +] + +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + +[[package]] +name = "pathspec" +version = "0.12.1" +description = "Utility library for gitignore style pattern matching of file paths." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +groups = ["dev"] +markers = "(python_version <= \"3.11\" or python_version >= \"3.12\") and sys_platform != \"win32\"" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] + +[[package]] +name = "pillow" +version = "11.1.0" +description = "Python Imaging Library (Fork)" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"}, + {file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07"}, + {file = "pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e"}, + {file = "pillow-11.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269"}, + {file = "pillow-11.1.0-cp310-cp310-win32.whl", hash = "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49"}, + {file = "pillow-11.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a"}, + {file = "pillow-11.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457"}, + {file = "pillow-11.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6"}, + {file = "pillow-11.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2"}, + {file = "pillow-11.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96"}, + {file = "pillow-11.1.0-cp311-cp311-win32.whl", hash = "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f"}, + {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"}, + {file = "pillow-11.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a"}, + {file = "pillow-11.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1"}, + {file = "pillow-11.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91"}, + {file = "pillow-11.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c"}, + {file = "pillow-11.1.0-cp312-cp312-win32.whl", hash = "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6"}, + {file = "pillow-11.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf"}, + {file = "pillow-11.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc"}, + {file = "pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5"}, + {file = "pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352"}, + {file = "pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3"}, + {file = "pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9"}, + {file = "pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c"}, + {file = "pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861"}, + {file = "pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c"}, + {file = "pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547"}, + {file = "pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab"}, + {file = "pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9"}, + {file = "pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe"}, + {file = "pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6"}, + {file = "pillow-11.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade"}, + {file = "pillow-11.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196"}, + {file = "pillow-11.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8"}, + {file = "pillow-11.1.0-cp39-cp39-win32.whl", hash = "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5"}, + {file = "pillow-11.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f"}, + {file = "pillow-11.1.0-cp39-cp39-win_arm64.whl", hash = "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73"}, + {file = "pillow-11.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0"}, + {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"}, +] + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +fpx = ["olefile"] +mic = ["olefile"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +typing = ["typing-extensions"] +xmp = ["defusedxml"] + +[[package]] +name = "platformdirs" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "3.2.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pre_commit-3.2.0-py2.py3-none-any.whl", hash = "sha256:f712d3688102e13c8e66b7d7dbd8934a6dda157e58635d89f7d6fecdca39ce8a"}, + {file = "pre_commit-3.2.0.tar.gz", hash = "sha256:818f0d998059934d0f81bb3667e3ccdc32da6ed7ccaac33e43dc231561ddaaa9"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + +[[package]] +name = "prometheus-client" +version = "0.21.1" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301"}, + {file = "prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb"}, +] + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.50" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.8.0" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, + {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, +] + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "propcache" +version = "0.2.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"}, + {file = "propcache-0.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6445804cf4ec763dc70de65a3b0d9954e868609e83850a47ca4f0cb64bd79fea"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9479aa06a793c5aeba49ce5c5692ffb51fcd9a7016e017d555d5e2b0045d212"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9631c5e8b5b3a0fda99cb0d29c18133bca1e18aea9effe55adb3da1adef80d3"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3156628250f46a0895f1f36e1d4fbe062a1af8718ec3ebeb746f1d23f0c5dc4d"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b6fb63ae352e13748289f04f37868099e69dba4c2b3e271c46061e82c745634"}, + {file = "propcache-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:887d9b0a65404929641a9fabb6452b07fe4572b269d901d622d8a34a4e9043b2"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a96dc1fa45bd8c407a0af03b2d5218392729e1822b0c32e62c5bf7eeb5fb3958"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a7e65eb5c003a303b94aa2c3852ef130230ec79e349632d030e9571b87c4698c"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:999779addc413181912e984b942fbcc951be1f5b3663cd80b2687758f434c583"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:19a0f89a7bb9d8048d9c4370c9c543c396e894c76be5525f5e1ad287f1750ddf"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:1ac2f5fe02fa75f56e1ad473f1175e11f475606ec9bd0be2e78e4734ad575034"}, + {file = "propcache-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:574faa3b79e8ebac7cb1d7930f51184ba1ccf69adfdec53a12f319a06030a68b"}, + {file = "propcache-0.2.1-cp310-cp310-win32.whl", hash = "sha256:03ff9d3f665769b2a85e6157ac8b439644f2d7fd17615a82fa55739bc97863f4"}, + {file = "propcache-0.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2d3af2e79991102678f53e0dbf4c35de99b6b8b58f29a27ca0325816364caaba"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717"}, + {file = "propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af"}, + {file = "propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca"}, + {file = "propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e"}, + {file = "propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034"}, + {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0"}, + {file = "propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24"}, + {file = "propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6"}, + {file = "propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518"}, + {file = "propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246"}, + {file = "propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9"}, + {file = "propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052"}, + {file = "propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f"}, + {file = "propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30"}, + {file = "propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6"}, + {file = "propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a9a8c34fb7bb609419a211e59da8887eeca40d300b5ea8e56af98f6fbbb1541"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ae1aa1cd222c6d205853b3013c69cd04515f9d6ab6de4b0603e2e1c33221303e"}, + {file = "propcache-0.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:accb6150ce61c9c4b7738d45550806aa2b71c7668c6942f17b0ac182b6142fd4"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eee736daafa7af6d0a2dc15cc75e05c64f37fc37bafef2e00d77c14171c2097"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7a31fc1e1bd362874863fdeed71aed92d348f5336fd84f2197ba40c59f061bd"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba4cfa1052819d16699e1d55d18c92b6e094d4517c41dd231a8b9f87b6fa681"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f089118d584e859c62b3da0892b88a83d611c2033ac410e929cb6754eec0ed16"}, + {file = "propcache-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:781e65134efaf88feb447e8c97a51772aa75e48b794352f94cb7ea717dedda0d"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31f5af773530fd3c658b32b6bdc2d0838543de70eb9a2156c03e410f7b0d3aae"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:a7a078f5d37bee6690959c813977da5291b24286e7b962e62a94cec31aa5188b"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:cea7daf9fc7ae6687cf1e2c049752f19f146fdc37c2cc376e7d0032cf4f25347"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:8b3489ff1ed1e8315674d0775dc7d2195fb13ca17b3808721b54dbe9fd020faf"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9403db39be1393618dd80c746cb22ccda168efce239c73af13c3763ef56ffc04"}, + {file = "propcache-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5d97151bc92d2b2578ff7ce779cdb9174337390a535953cbb9452fb65164c587"}, + {file = "propcache-0.2.1-cp39-cp39-win32.whl", hash = "sha256:9caac6b54914bdf41bcc91e7eb9147d331d29235a7c967c150ef5df6464fd1bb"}, + {file = "propcache-0.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:92fc4500fcb33899b05ba73276dfb684a20d31caa567b7cb5252d48f896a91b1"}, + {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"}, + {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"}, +] + +[[package]] +name = "psutil" +version = "6.1.1" +description = "Cross-platform lib for process and system monitoring in Python." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "psutil-6.1.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9ccc4316f24409159897799b83004cb1e24f9819b0dcf9c0b68bdcb6cefee6a8"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ca9609c77ea3b8481ab005da74ed894035936223422dc591d6772b147421f777"}, + {file = "psutil-6.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8df0178ba8a9e5bc84fed9cfa61d54601b371fbec5c8eebad27575f1e105c0d4"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:1924e659d6c19c647e763e78670a05dbb7feaf44a0e9c94bf9e14dfc6ba50468"}, + {file = "psutil-6.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:018aeae2af92d943fdf1da6b58665124897cfc94faa2ca92098838f83e1b1bca"}, + {file = "psutil-6.1.1-cp27-none-win32.whl", hash = "sha256:6d4281f5bbca041e2292be3380ec56a9413b790579b8e593b1784499d0005dac"}, + {file = "psutil-6.1.1-cp27-none-win_amd64.whl", hash = "sha256:c777eb75bb33c47377c9af68f30e9f11bc78e0f07fbf907be4a5d70b2fe5f030"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8"}, + {file = "psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160"}, + {file = "psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3"}, + {file = "psutil-6.1.1-cp36-cp36m-win32.whl", hash = "sha256:384636b1a64b47814437d1173be1427a7c83681b17a450bfc309a1953e329603"}, + {file = "psutil-6.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8be07491f6ebe1a693f17d4f11e69d0dc1811fa082736500f649f79df7735303"}, + {file = "psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53"}, + {file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"}, + {file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"}, +] + +[package.extras] +dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest-cov", "requests", "rstcheck", "ruff", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "(sys_platform != \"win32\" or os_name != \"nt\") and (python_version <= \"3.11\" or python_version >= \"3.12\")" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pyasn1" +version = "0.6.1" +description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, + {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, +] + +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] +markers = {main = "(python_version <= \"3.11\" or python_version >= \"3.12\") and platform_python_implementation != \"PyPy\"", dev = "python_version <= \"3.11\" or python_version >= \"3.12\""} + +[[package]] +name = "pydantic" +version = "2.10.6" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.27.2" +typing-extensions = ">=4.12.2" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata"] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"}, + {file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"}, + {file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"}, + {file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"}, + {file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"}, + {file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"}, + {file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"}, + {file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"}, + {file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"}, + {file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"}, + {file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"}, + {file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"}, + {file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"}, + {file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"}, + {file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"}, + {file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"}, + {file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"}, + {file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"}, + {file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"}, + {file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"}, + {file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"}, + {file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"}, + {file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"}, + {file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"}, + {file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"}, + {file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pydantic-extra-types" +version = "2.10.2" +description = "Extra Pydantic types." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_extra_types-2.10.2-py3-none-any.whl", hash = "sha256:9eccd55a2b7935cea25f0a67f6ff763d55d80c41d86b887d88915412ccf5b7fa"}, + {file = "pydantic_extra_types-2.10.2.tar.gz", hash = "sha256:934d59ab7a02ff788759c3a97bc896f5cfdc91e62e4f88ea4669067a73f14b98"}, +] + +[package.dependencies] +pydantic = ">=2.5.2" +typing-extensions = "*" + +[package.extras] +all = ["pendulum (>=3.0.0,<4.0.0)", "phonenumbers (>=8,<9)", "pycountry (>=23)", "python-ulid (>=1,<2)", "python-ulid (>=1,<4)", "pytz (>=2024.1)", "semver (>=3.0.2)", "semver (>=3.0.2,<3.1.0)", "tzdata (>=2024.1)"] +pendulum = ["pendulum (>=3.0.0,<4.0.0)"] +phonenumbers = ["phonenumbers (>=8,<9)"] +pycountry = ["pycountry (>=23)"] +python-ulid = ["python-ulid (>=1,<2)", "python-ulid (>=1,<4)"] +semver = ["semver (>=3.0.2)"] + +[[package]] +name = "pydantic-settings" +version = "2.7.1" +description = "Settings management using Pydantic" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"}, + {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"}, +] + +[package.dependencies] +pydantic = ">=2.7.0" +python-dotenv = ">=0.21.0" + +[package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +toml = ["tomli (>=2.0.1)"] +yaml = ["pyyaml (>=6.0.1)"] + +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.dependencies] +cryptography = {version = ">=3.4.0", optional = true, markers = "extra == \"crypto\""} + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "pylint" +version = "2.15.10" +description = "python code static checker" +optional = false +python-versions = ">=3.7.2" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pylint-2.15.10-py3-none-any.whl", hash = "sha256:9df0d07e8948a1c3ffa3b6e2d7e6e63d9fb457c5da5b961ed63106594780cc7e"}, + {file = "pylint-2.15.10.tar.gz", hash = "sha256:b3dc5ef7d33858f297ac0d06cc73862f01e4f2e74025ec3eff347ce0bc60baf5"}, +] + +[package.dependencies] +astroid = ">=2.12.13,<=2.14.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pypdf" +version = "5.2.0" +description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pypdf-5.2.0-py3-none-any.whl", hash = "sha256:d107962ec45e65e3bd10c1d9242bdbbedaa38193c9e3a6617bd6d996e5747b19"}, + {file = "pypdf-5.2.0.tar.gz", hash = "sha256:7c38e68420f038f2c4998fd9d6717b6db4f6cef1642e9cf384d519c9cf094663"}, +] + +[package.dependencies] +typing_extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +crypto = ["cryptography"] +cryptodome = ["PyCryptodome"] +dev = ["black", "flit", "pip-tools", "pre-commit (<2.18.0)", "pytest-cov", "pytest-socket", "pytest-timeout", "pytest-xdist", "wheel"] +docs = ["myst_parser", "sphinx", "sphinx_rtd_theme"] +full = ["Pillow (>=8.0.0)", "cryptography"] +image = ["Pillow (>=8.0.0)"] + +[[package]] +name = "pytest" +version = "7.2.1" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, + {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, +] + +[package.dependencies] +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "pytest-mock" +version = "3.11.1" +description = "Thin-wrapper around the mock package for easier use with pytest" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pytest-mock-3.11.1.tar.gz", hash = "sha256:7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f"}, + {file = "pytest_mock-3.11.1-py3-none-any.whl", hash = "sha256:21c279fff83d70763b05f8874cc9cfb3fcacd6d354247a976f9529d19f9acf39"}, +] + +[package.dependencies] +pytest = ">=5.0" + +[package.extras] +dev = ["pre-commit", "pytest-asyncio", "tox"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +optional = false +python-versions = "*" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + +[[package]] +name = "python-json-logger" +version = "3.2.1" +description = "JSON Log Formatter for the Python Logging Package" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"}, + {file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"}, +] + +[package.dependencies] +typing_extensions = {version = "*", markers = "python_version < \"3.10\""} + +[package.extras] +dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2024.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"}, + {file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"}, +] + +[[package]] +name = "pywin32" +version = "308" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\" and (python_version <= \"3.11\" or python_version >= \"3.12\")" +files = [ + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, +] + +[[package]] +name = "pywinpty" +version = "2.0.14" +description = "Pseudo terminal support for Windows from Python." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "(python_version <= \"3.11\" or python_version >= \"3.12\") and os_name == \"nt\"" +files = [ + {file = "pywinpty-2.0.14-cp310-none-win_amd64.whl", hash = "sha256:0b149c2918c7974f575ba79f5a4aad58bd859a52fa9eb1296cc22aa412aa411f"}, + {file = "pywinpty-2.0.14-cp311-none-win_amd64.whl", hash = "sha256:cf2a43ac7065b3e0dc8510f8c1f13a75fb8fde805efa3b8cff7599a1ef497bc7"}, + {file = "pywinpty-2.0.14-cp312-none-win_amd64.whl", hash = "sha256:55dad362ef3e9408ade68fd173e4f9032b3ce08f68cfe7eacb2c263ea1179737"}, + {file = "pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819"}, + {file = "pywinpty-2.0.14-cp39-none-win_amd64.whl", hash = "sha256:5725fd56f73c0531ec218663bd8c8ff5acc43c78962fab28564871b5fce053fd"}, + {file = "pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, + {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, + {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, + {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, + {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, + {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, + {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, + {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, + {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, + {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, + {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, + {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, + {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, + {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, + {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, + {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, + {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, + {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, + {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, + {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, + {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, + {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, + {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, + {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, + {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, + {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, + {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, + {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, + {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, + {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, + {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, + {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, +] + +[[package]] +name = "pyzmq" +version = "26.2.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"}, + {file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"}, + {file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"}, + {file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"}, + {file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"}, + {file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"}, + {file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"}, + {file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"}, + {file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"}, + {file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"}, + {file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"}, + {file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"}, + {file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"}, + {file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"}, + {file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"}, + {file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"}, + {file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"}, + {file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"}, + {file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"}, + {file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"}, + {file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"}, + {file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"}, + {file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"}, + {file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"}, + {file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"}, + {file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"}, + {file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"}, + {file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"}, + {file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"}, + {file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"}, + {file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"}, + {file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"}, + {file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"}, + {file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"}, + {file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"}, + {file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"}, + {file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"}, + {file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"}, + {file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"}, + {file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"}, + {file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"}, + {file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"}, + {file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "referencing" +version = "0.36.2" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" +typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} + +[[package]] +name = "regex" +version = "2024.11.6" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, + {file = "regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c"}, + {file = "regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008"}, + {file = "regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62"}, + {file = "regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e"}, + {file = "regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7"}, + {file = "regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0"}, + {file = "regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d"}, + {file = "regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45"}, + {file = "regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9"}, + {file = "regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9"}, + {file = "regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e"}, + {file = "regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51"}, + {file = "regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad"}, + {file = "regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54"}, + {file = "regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4"}, + {file = "regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c"}, + {file = "regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4"}, + {file = "regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d"}, + {file = "regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff"}, + {file = "regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3"}, + {file = "regex-2024.11.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f"}, + {file = "regex-2024.11.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc"}, + {file = "regex-2024.11.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f"}, + {file = "regex-2024.11.6-cp38-cp38-win32.whl", hash = "sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4"}, + {file = "regex-2024.11.6-cp38-cp38-win_amd64.whl", hash = "sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e"}, + {file = "regex-2024.11.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48"}, + {file = "regex-2024.11.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f"}, + {file = "regex-2024.11.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b"}, + {file = "regex-2024.11.6-cp39-cp39-win32.whl", hash = "sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57"}, + {file = "regex-2024.11.6-cp39-cp39-win_amd64.whl", hash = "sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983"}, + {file = "regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] + +[[package]] +name = "rich" +version = "13.9.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"}, + {file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.11\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "rich-toolkit" +version = "0.13.2" +description = "Rich toolkit for building command-line applications" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rich_toolkit-0.13.2-py3-none-any.whl", hash = "sha256:f3f6c583e5283298a2f7dbd3c65aca18b7f818ad96174113ab5bec0b0e35ed61"}, + {file = "rich_toolkit-0.13.2.tar.gz", hash = "sha256:fea92557530de7c28f121cbed572ad93d9e0ddc60c3ca643f1b831f2f56b95d3"}, +] + +[package.dependencies] +click = ">=8.1.7" +rich = ">=13.7.1" +typing-extensions = ">=4.12.2" + +[[package]] +name = "rpds-py" +version = "0.22.3" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rpds_py-0.22.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6c7b99ca52c2c1752b544e310101b98a659b720b21db00e65edca34483259967"}, + {file = "rpds_py-0.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be2eb3f2495ba669d2a985f9b426c1797b7d48d6963899276d22f23e33d47e37"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70eb60b3ae9245ddea20f8a4190bd79c705a22f8028aaf8bbdebe4716c3fab24"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4041711832360a9b75cfb11b25a6a97c8fb49c07b8bd43d0d02b45d0b499a4ff"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64607d4cbf1b7e3c3c8a14948b99345eda0e161b852e122c6bb71aab6d1d798c"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e69b0a0e2537f26d73b4e43ad7bc8c8efb39621639b4434b76a3de50c6966e"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc27863442d388870c1809a87507727b799c8460573cfbb6dc0eeaef5a11b5ec"}, + {file = "rpds_py-0.22.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e79dd39f1e8c3504be0607e5fc6e86bb60fe3584bec8b782578c3b0fde8d932c"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e0fa2d4ec53dc51cf7d3bb22e0aa0143966119f42a0c3e4998293a3dd2856b09"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fda7cb070f442bf80b642cd56483b5548e43d366fe3f39b98e67cce780cded00"}, + {file = "rpds_py-0.22.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cff63a0272fcd259dcc3be1657b07c929c466b067ceb1c20060e8d10af56f5bf"}, + {file = "rpds_py-0.22.3-cp310-cp310-win32.whl", hash = "sha256:9bd7228827ec7bb817089e2eb301d907c0d9827a9e558f22f762bb690b131652"}, + {file = "rpds_py-0.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:9beeb01d8c190d7581a4d59522cd3d4b6887040dcfc744af99aa59fef3e041a8"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f"}, + {file = "rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1"}, + {file = "rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74"}, + {file = "rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a"}, + {file = "rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64"}, + {file = "rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e"}, + {file = "rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15"}, + {file = "rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61"}, + {file = "rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7"}, + {file = "rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627"}, + {file = "rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84"}, + {file = "rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518"}, + {file = "rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16"}, + {file = "rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f"}, + {file = "rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de"}, + {file = "rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3"}, + {file = "rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b"}, + {file = "rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730"}, + {file = "rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:378753b4a4de2a7b34063d6f95ae81bfa7b15f2c1a04a9518e8644e81807ebea"}, + {file = "rpds_py-0.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3445e07bf2e8ecfeef6ef67ac83de670358abf2996916039b16a218e3d95e97e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b2513ba235829860b13faa931f3b6846548021846ac808455301c23a101689d"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eaf16ae9ae519a0e237a0f528fd9f0197b9bb70f40263ee57ae53c2b8d48aeb3"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:583f6a1993ca3369e0f80ba99d796d8e6b1a3a2a442dd4e1a79e652116413091"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4617e1915a539a0d9a9567795023de41a87106522ff83fbfaf1f6baf8e85437e"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c150c7a61ed4a4f4955a96626574e9baf1adf772c2fb61ef6a5027e52803543"}, + {file = "rpds_py-0.22.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fa4331c200c2521512595253f5bb70858b90f750d39b8cbfd67465f8d1b596d"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:214b7a953d73b5e87f0ebece4a32a5bd83c60a3ecc9d4ec8f1dca968a2d91e99"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f47ad3d5f3258bd7058d2d506852217865afefe6153a36eb4b6928758041d831"}, + {file = "rpds_py-0.22.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f276b245347e6e36526cbd4a266a417796fc531ddf391e43574cf6466c492520"}, + {file = "rpds_py-0.22.3-cp39-cp39-win32.whl", hash = "sha256:bbb232860e3d03d544bc03ac57855cd82ddf19c7a07651a7c0fdb95e9efea8b9"}, + {file = "rpds_py-0.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:cfbc454a2880389dbb9b5b398e50d439e2e58669160f27b60e5eca11f68ae17c"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d48424e39c2611ee1b84ad0f44fb3b2b53d473e65de061e3f460fc0be5f1939d"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:24e8abb5878e250f2eb0d7859a8e561846f98910326d06c0d51381fed59357bd"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b232061ca880db21fa14defe219840ad9b74b6158adb52ddf0e87bead9e8493"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac0a03221cdb5058ce0167ecc92a8c89e8d0decdc9e99a2ec23380793c4dcb96"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb0c341fa71df5a4595f9501df4ac5abfb5a09580081dffbd1ddd4654e6e9123"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf9db5488121b596dbfc6718c76092fda77b703c1f7533a226a5a9f65248f8ad"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8db6b5b2d4491ad5b6bdc2bc7c017eec108acbf4e6785f42a9eb0ba234f4c9"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b3d504047aba448d70cf6fa22e06cb09f7cbd761939fdd47604f5e007675c24e"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e61b02c3f7a1e0b75e20c3978f7135fd13cb6cf551bf4a6d29b999a88830a338"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e35ba67d65d49080e8e5a1dd40101fccdd9798adb9b050ff670b7d74fa41c566"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:26fd7cac7dd51011a245f29a2cc6489c4608b5a8ce8d75661bb4a1066c52dfbe"}, + {file = "rpds_py-0.22.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:177c7c0fce2855833819c98e43c262007f42ce86651ffbb84f37883308cb0e7d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bb47271f60660803ad11f4c61b42242b8c1312a31c98c578f79ef9387bbde21c"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:70fb28128acbfd264eda9bf47015537ba3fe86e40d046eb2963d75024be4d055"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d61b4b7d0c2c9ac019c314e52d7cbda0ae31078aabd0f22e583af3e0d79723"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0e260eaf54380380ac3808aa4ebe2d8ca28b9087cf411649f96bad6900c728"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b25bc607423935079e05619d7de556c91fb6adeae9d5f80868dde3468657994b"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb6116dfb8d1925cbdb52595560584db42a7f664617a1f7d7f6e32f138cdf37d"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a63cbdd98acef6570c62b92a1e43266f9e8b21e699c363c0fef13bd530799c11"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b8f60e1b739a74bab7e01fcbe3dddd4657ec685caa04681df9d562ef15b625f"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2e8b55d8517a2fda8d95cb45d62a5a8bbf9dd0ad39c5b25c8833efea07b880ca"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:2de29005e11637e7a2361fa151f780ff8eb2543a0da1413bb951e9f14b699ef3"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:666ecce376999bf619756a24ce15bb14c5bfaf04bf00abc7e663ce17c3f34fe7"}, + {file = "rpds_py-0.22.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5246b14ca64a8675e0a7161f7af68fe3e910e6b90542b4bfb5439ba752191df6"}, + {file = "rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d"}, +] + +[[package]] +name = "rsa" +version = "4.9" +description = "Pure-Python RSA implementation" +optional = false +python-versions = ">=3.6,<4" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, + {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, +] + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "ruff" +version = "0.0.292" +description = "An extremely fast Python linter, written in Rust." +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ruff-0.0.292-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:02f29db018c9d474270c704e6c6b13b18ed0ecac82761e4fcf0faa3728430c96"}, + {file = "ruff-0.0.292-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:69654e564342f507edfa09ee6897883ca76e331d4bbc3676d8a8403838e9fade"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c3c91859a9b845c33778f11902e7b26440d64b9d5110edd4e4fa1726c41e0a4"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4476f1243af2d8c29da5f235c13dca52177117935e1f9393f9d90f9833f69e4"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be8eb50eaf8648070b8e58ece8e69c9322d34afe367eec4210fdee9a555e4ca7"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9889bac18a0c07018aac75ef6c1e6511d8411724d67cb879103b01758e110a81"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bdfabd4334684a4418b99b3118793f2c13bb67bf1540a769d7816410402a205"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7c77c53bfcd75dbcd4d1f42d6cabf2485d2e1ee0678da850f08e1ab13081a8"}, + {file = "ruff-0.0.292-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e087b24d0d849c5c81516ec740bf4fd48bf363cfb104545464e0fca749b6af9"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f160b5ec26be32362d0774964e218f3fcf0a7da299f7e220ef45ae9e3e67101a"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ac153eee6dd4444501c4bb92bff866491d4bfb01ce26dd2fff7ca472c8df9ad0"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_i686.whl", hash = "sha256:87616771e72820800b8faea82edd858324b29bb99a920d6aa3d3949dd3f88fb0"}, + {file = "ruff-0.0.292-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b76deb3bdbea2ef97db286cf953488745dd6424c122d275f05836c53f62d4016"}, + {file = "ruff-0.0.292-py3-none-win32.whl", hash = "sha256:e854b05408f7a8033a027e4b1c7f9889563dd2aca545d13d06711e5c39c3d003"}, + {file = "ruff-0.0.292-py3-none-win_amd64.whl", hash = "sha256:f27282bedfd04d4c3492e5c3398360c9d86a295be00eccc63914438b4ac8a83c"}, + {file = "ruff-0.0.292-py3-none-win_arm64.whl", hash = "sha256:7f67a69c8f12fbc8daf6ae6d36705037bde315abf8b82b6e1f4c9e74eb750f68"}, + {file = "ruff-0.0.292.tar.gz", hash = "sha256:1093449e37dd1e9b813798f6ad70932b57cf614e5c2b5c51005bf67d55db33ac"}, +] + +[[package]] +name = "send2trash" +version = "1.8.3" +description = "Send file to trash natively under Mac OS X, Windows and Linux" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9"}, + {file = "Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf"}, +] + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "75.8.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"}, + {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"] +core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "soupsieve" +version = "2.6" +description = "A modern CSS selector implementation for Beautiful Soup." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.37" +description = "Database Abstraction Library" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6f5d254a22394847245f411a2956976401e84da4288aa70cbcd5190744062c1"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41296bbcaa55ef5fdd32389a35c710133b097f7b2609d8218c0eabded43a1d84"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bedee60385c1c0411378cbd4dc486362f5ee88deceea50002772912d798bb00f"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6c67415258f9f3c69867ec02fea1bf6508153709ecbd731a982442a590f2b7e4"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win32.whl", hash = "sha256:650dcb70739957a492ad8acff65d099a9586b9b8920e3507ca61ec3ce650bb72"}, + {file = "SQLAlchemy-2.0.37-cp310-cp310-win_amd64.whl", hash = "sha256:93d1543cd8359040c02b6614421c8e10cd7a788c40047dbc507ed46c29ae5636"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:78361be6dc9073ed17ab380985d1e45e48a642313ab68ab6afa2457354ff692c"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b661b49d0cb0ab311a189b31e25576b7ac3e20783beb1e1817d72d9d02508bf5"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d57bafbab289e147d064ffbd5cca2d7b1394b63417c0636cea1f2e93d16eb9e8"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa2c0913f02341d25fb858e4fb2031e6b0813494cca1ba07d417674128ce11b"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9df21b8d9e5c136ea6cde1c50d2b1c29a2b5ff2b1d610165c23ff250e0704087"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db18ff6b8c0f1917f8b20f8eca35c28bbccb9f83afa94743e03d40203ed83de9"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win32.whl", hash = "sha256:46954173612617a99a64aee103bcd3f078901b9a8dcfc6ae80cbf34ba23df989"}, + {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2952748ecd67ed3b56773c185e85fc084f6bdcdec10e5032a7c25a6bc7d682ef"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3151822aa1db0eb5afd65ccfafebe0ef5cda3a7701a279c8d0bf17781a793bb4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaa8039b6d20137a4e02603aba37d12cd2dde7887500b8855356682fc33933f4"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cdba1f73b64530c47b27118b7053b8447e6d6f3c8104e3ac59f3d40c33aa9fd"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1b2690456528a87234a75d1a1644cdb330a6926f455403c8e4f6cad6921f9098"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf5ae8a9dcf657fd72144a7fd01f243236ea39e7344e579a121c4205aedf07bb"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win32.whl", hash = "sha256:ea308cec940905ba008291d93619d92edaf83232ec85fbd514dcb329f3192761"}, + {file = "SQLAlchemy-2.0.37-cp312-cp312-win_amd64.whl", hash = "sha256:635d8a21577341dfe4f7fa59ec394b346da12420b86624a69e466d446de16aff"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8c4096727193762e72ce9437e2a86a110cf081241919ce3fab8e89c02f6b6658"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e4fb5ac86d8fe8151966814f6720996430462e633d225497566b3996966b9bdb"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e56a139bfe136a22c438478a86f8204c1eb5eed36f4e15c4224e4b9db01cb3e4"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f95fc8e3f34b5f6b3effb49d10ac97c569ec8e32f985612d9b25dd12d0d2e94"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c505edd429abdfe3643fa3b2e83efb3445a34a9dc49d5f692dd087be966020e0"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:12b0f1ec623cccf058cf21cb544f0e74656618165b083d78145cafde156ea7b6"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win32.whl", hash = "sha256:293f9ade06b2e68dd03cfb14d49202fac47b7bb94bffcff174568c951fbc7af2"}, + {file = "SQLAlchemy-2.0.37-cp313-cp313-win_amd64.whl", hash = "sha256:d70f53a0646cc418ca4853da57cf3ddddbccb8c98406791f24426f2dd77fd0e2"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:44f569d0b1eb82301b92b72085583277316e7367e038d97c3a1a899d9a05e342"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2eae3423e538c10d93ae3e87788c6a84658c3ed6db62e6a61bb9495b0ad16bb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfff7be361048244c3aa0f60b5e63221c5e0f0e509f4e47b8910e22b57d10ae7"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:5bc3339db84c5fb9130ac0e2f20347ee77b5dd2596ba327ce0d399752f4fce39"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:84b9f23b0fa98a6a4b99d73989350a94e4a4ec476b9a7dfe9b79ba5939f5e80b"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win32.whl", hash = "sha256:51bc9cfef83e0ac84f86bf2b10eaccb27c5a3e66a1212bef676f5bee6ef33ebb"}, + {file = "SQLAlchemy-2.0.37-cp37-cp37m-win_amd64.whl", hash = "sha256:8e47f1af09444f87c67b4f1bb6231e12ba6d4d9f03050d7fc88df6d075231a49"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6b788f14c5bb91db7f468dcf76f8b64423660a05e57fe277d3f4fad7b9dcb7ce"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521ef85c04c33009166777c77e76c8a676e2d8528dc83a57836b63ca9c69dcd1"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75311559f5c9881a9808eadbeb20ed8d8ba3f7225bef3afed2000c2a9f4d49b9"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce918ada64c956b62ca2c2af59b125767097ec1dca89650a6221e887521bfd7"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9d087663b7e1feabea8c578d6887d59bb00388158e8bff3a76be11aa3f748ca2"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cf95a60b36997dad99692314c4713f141b61c5b0b4cc5c3426faad570b31ca01"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win32.whl", hash = "sha256:d75ead7dd4d255068ea0f21492ee67937bd7c90964c8f3c2bea83c7b7f81b95f"}, + {file = "SQLAlchemy-2.0.37-cp38-cp38-win_amd64.whl", hash = "sha256:74bbd1d0a9bacf34266a7907d43260c8d65d31d691bb2356f41b17c2dca5b1d0"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:648ec5acf95ad59255452ef759054f2176849662af4521db6cb245263ae4aa33"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:35bd2df269de082065d4b23ae08502a47255832cc3f17619a5cea92ce478b02b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f581d365af9373a738c49e0c51e8b18e08d8a6b1b15cc556773bcd8a192fa8b"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82df02816c14f8dc9f4d74aea4cb84a92f4b0620235daa76dde002409a3fbb5a"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:94b564e38b344d3e67d2e224f0aec6ba09a77e4582ced41e7bfd0f757d926ec9"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:955a2a765aa1bd81aafa69ffda179d4fe3e2a3ad462a736ae5b6f387f78bfeb8"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win32.whl", hash = "sha256:03f0528c53ca0b67094c4764523c1451ea15959bbf0a8a8a3096900014db0278"}, + {file = "SQLAlchemy-2.0.37-cp39-cp39-win_amd64.whl", hash = "sha256:4b12885dc85a2ab2b7d00995bac6d967bffa8594123b02ed21e8eb2205a7584b"}, + {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"}, + {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"}, +] + +[package.dependencies] +greenlet = [ + {version = "!=0.4.17", markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}, + {version = "!=0.4.17", optional = true, markers = "python_version < \"3.14\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") or extra == \"asyncio\""}, +] +typing-extensions = ">=4.6.0" + +[package.extras] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +asyncio = ["greenlet (!=0.4.17)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5,!=1.1.10)"] +mssql = ["pyodbc"] +mssql-pymssql = ["pymssql"] +mssql-pyodbc = ["pyodbc"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] +mysql-connector = ["mysql-connector-python"] +oracle = ["cx_oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] +postgresql = ["psycopg2 (>=2.7)"] +postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] +postgresql-psycopg2binary = ["psycopg2-binary"] +postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] +sqlcipher = ["sqlcipher3_binary"] + +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "starlette" +version = "0.45.3" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"}, + {file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "striprtf" +version = "0.0.26" +description = "A simple library to convert rtf to text" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "striprtf-0.0.26-py3-none-any.whl", hash = "sha256:8c8f9d32083cdc2e8bfb149455aa1cc5a4e0a035893bedc75db8b73becb3a1bb"}, + {file = "striprtf-0.0.26.tar.gz", hash = "sha256:fdb2bba7ac440072d1c41eab50d8d74ae88f60a8b6575c6e2c7805dc462093aa"}, +] + +[[package]] +name = "tenacity" +version = "9.0.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"}, + {file = "tenacity-9.0.0.tar.gz", hash = "sha256:807f37ca97d62aa361264d497b0e31e92b8027044942bfa756160d908320d73b"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "terminado" +version = "0.18.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0"}, + {file = "terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e"}, +] + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] +typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] + +[[package]] +name = "tiktoken" +version = "0.8.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"}, + {file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e13f37bc4ef2d012731e93e0fef21dc3b7aea5bb9009618de9a4026844e560"}, + {file = "tiktoken-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f13d13c981511331eac0d01a59b5df7c0d4060a8be1e378672822213da51e0a2"}, + {file = "tiktoken-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6b2ddbc79a22621ce8b1166afa9f9a888a664a579350dc7c09346a3b5de837d9"}, + {file = "tiktoken-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8c2d0e5ba6453a290b86cd65fc51fedf247e1ba170191715b049dac1f628005"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d622d8011e6d6f239297efa42a2657043aaed06c4f68833550cac9e9bc723ef1"}, + {file = "tiktoken-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2efaf6199717b4485031b4d6edb94075e4d79177a172f38dd934d911b588d54a"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5637e425ce1fc49cf716d88df3092048359a4b3bbb7da762840426e937ada06d"}, + {file = "tiktoken-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb0e352d1dbe15aba082883058b3cce9e48d33101bdaac1eccf66424feb5b47"}, + {file = "tiktoken-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56edfefe896c8f10aba372ab5706b9e3558e78db39dd497c940b47bf228bc419"}, + {file = "tiktoken-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:326624128590def898775b722ccc327e90b073714227175ea8febbc920ac0a99"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:881839cfeae051b3628d9823b2e56b5cc93a9e2efb435f4cf15f17dc45f21586"}, + {file = "tiktoken-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe9399bdc3f29d428f16a2f86c3c8ec20be3eac5f53693ce4980371c3245729b"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a58deb7075d5b69237a3ff4bb51a726670419db6ea62bdcd8bd80c78497d7ab"}, + {file = "tiktoken-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2908c0d043a7d03ebd80347266b0e58440bdef5564f84f4d29fb235b5df3b04"}, + {file = "tiktoken-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:294440d21a2a51e12d4238e68a5972095534fe9878be57d905c476017bff99fc"}, + {file = "tiktoken-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:d8f3192733ac4d77977432947d563d7e1b310b96497acd3c196c9bddb36ed9db"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:02be1666096aff7da6cbd7cdaa8e7917bfed3467cd64b38b1f112e96d3b06a24"}, + {file = "tiktoken-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94ff53c5c74b535b2cbf431d907fc13c678bbd009ee633a2aca269a04389f9a"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b231f5e8982c245ee3065cd84a4712d64692348bc609d84467c57b4b72dcbc5"}, + {file = "tiktoken-0.8.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4177faa809bd55f699e88c96d9bb4635d22e3f59d635ba6fd9ffedf7150b9953"}, + {file = "tiktoken-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5376b6f8dc4753cd81ead935c5f518fa0fbe7e133d9e25f648d8c4dabdd4bad7"}, + {file = "tiktoken-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:18228d624807d66c87acd8f25fc135665617cab220671eb65b50f5d70fa51f69"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e17807445f0cf1f25771c9d86496bd8b5c376f7419912519699f3cc4dc5c12e"}, + {file = "tiktoken-0.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:886f80bd339578bbdba6ed6d0567a0d5c6cfe198d9e587ba6c447654c65b8edc"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6adc8323016d7758d6de7313527f755b0fc6c72985b7d9291be5d96d73ecd1e1"}, + {file = "tiktoken-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b591fb2b30d6a72121a80be24ec7a0e9eb51c5500ddc7e4c2496516dd5e3816b"}, + {file = "tiktoken-0.8.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:845287b9798e476b4d762c3ebda5102be87ca26e5d2c9854002825d60cdb815d"}, + {file = "tiktoken-0.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:1473cfe584252dc3fa62adceb5b1c763c1874e04511b197da4e6de51d6ce5a02"}, + {file = "tiktoken-0.8.0.tar.gz", hash = "sha256:9ccbb2740f24542534369c5635cfd9b2b3c2490754a78ac8831d99f89f94eeb2"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[package]] +name = "tinycss2" +version = "1.4.0" +description = "A tiny CSS parser" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289"}, + {file = "tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7"}, +] + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["pytest", "ruff"] + +[[package]] +name = "tokenize-rt" +version = "6.1.0" +description = "A wrapper around the stdlib `tokenize` which roundtrips." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tokenize_rt-6.1.0-py2.py3-none-any.whl", hash = "sha256:d706141cdec4aa5f358945abe36b911b8cbdc844545da99e811250c0cee9b6fc"}, + {file = "tokenize_rt-6.1.0.tar.gz", hash = "sha256:e8ee836616c0877ab7c7b54776d2fefcc3bde714449a206762425ae114b53c86"}, +] + +[[package]] +name = "tomli" +version = "2.2.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version < \"3.11\"" +files = [ + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, +] + +[[package]] +name = "tomlkit" +version = "0.13.2" +description = "Style preserving TOML library" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, +] + +[[package]] +name = "tornado" +version = "6.4.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "tree-sitter" +version = "0.23.2" +description = "Python bindings to the Tree-sitter parsing library" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tree-sitter-0.23.2.tar.gz", hash = "sha256:66bae8dd47f1fed7bdef816115146d3a41c39b5c482d7bad36d9ba1def088450"}, + {file = "tree_sitter-0.23.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3a937f5d8727bc1c74c4bf2a9d1c25ace049e8628273016ad0d45914ae904e10"}, + {file = "tree_sitter-0.23.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2c7eae7fe2af215645a38660d2d57d257a4c461fe3ec827cca99a79478284e80"}, + {file = "tree_sitter-0.23.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a71d607595270b6870eaf778a1032d146b2aa79bfcfa60f57a82a7b7584a4c7"}, + {file = "tree_sitter-0.23.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fe9b9ea7a0aa23b52fd97354da95d1b2580065bc12a4ac868f9164a127211d6"}, + {file = "tree_sitter-0.23.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d74d00a8021719eae14d10d1b1e28649e15d8b958c01c2b2c3dad7a2ebc4dbae"}, + {file = "tree_sitter-0.23.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6de18d8d8a7f67ab71f472d1fcb01cc506e080cbb5e13d52929e4b6fdce6bbee"}, + {file = "tree_sitter-0.23.2-cp310-cp310-win_amd64.whl", hash = "sha256:12b60dca70d2282af942b650a6d781be487485454668c7c956338a367b98cdee"}, + {file = "tree_sitter-0.23.2-cp310-cp310-win_arm64.whl", hash = "sha256:3346a4dd0447a42aabb863443b0fd8c92b909baf40ed2344fae4b94b625d5955"}, + {file = "tree_sitter-0.23.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:91fda41d4f8824335cc43c64e2c37d8089c8c563bd3900a512d2852d075af719"}, + {file = "tree_sitter-0.23.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:92b2b489d5ce54b41f94c6f23fbaf592bd6e84dc2877048fd1cb060480fa53f7"}, + {file = "tree_sitter-0.23.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64859bd4aa1567d0d6016a811b2b49c59d4a4427d096e3d8c84b2521455f62b7"}, + {file = "tree_sitter-0.23.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:614590611636044e071d3a0b748046d52676dbda3bc9fa431216231e11dd98f7"}, + {file = "tree_sitter-0.23.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:08466953c78ae57be61057188fb88c89791b0a562856010228e0ccf60e2ac453"}, + {file = "tree_sitter-0.23.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8a33f03a562de91f7fd05eefcedd8994a06cd44c62f7aabace811ad82bc11cbd"}, + {file = "tree_sitter-0.23.2-cp311-cp311-win_amd64.whl", hash = "sha256:03b70296b569ef64f7b92b42ca5da9bf86d81bee2afd480bea35092687f51dae"}, + {file = "tree_sitter-0.23.2-cp311-cp311-win_arm64.whl", hash = "sha256:7cb4bb953ea7c0b50eeafc4454783e030357179d2a93c3dd5ebed2da5588ddd0"}, + {file = "tree_sitter-0.23.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a014498b6a9e6003fae8c6eb72f5927d62da9dcb72b28b3ce8cd15c6ff6a6572"}, + {file = "tree_sitter-0.23.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f8699b131d4bcbe3805c37e4ef3d159ee9a82a0e700587625623999ba0ea53"}, + {file = "tree_sitter-0.23.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4471577df285059c71686ecb208bc50fb472099b38dcc8e849b0e86652891e87"}, + {file = "tree_sitter-0.23.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f342c925290dd4e20ecd5787ef7ae8749981597ab364783a1eb73173efe65226"}, + {file = "tree_sitter-0.23.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a4e9e53d07dd076bede72e4f7d3a0173d7b9ad6576572dd86da008a740a9bb22"}, + {file = "tree_sitter-0.23.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8caebe65bc358759dac2500d8f8feed3aed939c4ade9a684a1783fe07bc7d5db"}, + {file = "tree_sitter-0.23.2-cp312-cp312-win_amd64.whl", hash = "sha256:fc5a72eb50d43485000dbbb309acb350467b7467e66dc747c6bb82ce63041582"}, + {file = "tree_sitter-0.23.2-cp312-cp312-win_arm64.whl", hash = "sha256:a0320eb6c7993359c5f7b371d22719ccd273f440d41cf1bd65dac5e9587f2046"}, + {file = "tree_sitter-0.23.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:eff630dddee7ba05accb439b17e559e15ce13f057297007c246237ceb6306332"}, + {file = "tree_sitter-0.23.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4780ba8f3894f2dea869fad2995c2aceab3fd5ab9e6a27c45475d2acd7f7e84e"}, + {file = "tree_sitter-0.23.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b609460b8e3e256361fb12e94fae5b728cb835b16f0f9d590b5aadbf9d109b"}, + {file = "tree_sitter-0.23.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d070d8eaeaeb36cf535f55e5578fddbfc3bf53c1980f58bf1a99d57466b3b5"}, + {file = "tree_sitter-0.23.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:878580b2ad5054c410ba3418edca4d34c81cc26706114d8f5b5541688bc2d785"}, + {file = "tree_sitter-0.23.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:29224bdc2a3b9af535b7725e249d3ee291b2e90708e82832e73acc175e40dc48"}, + {file = "tree_sitter-0.23.2-cp313-cp313-win_amd64.whl", hash = "sha256:c58d89348162fbc3aea1fe6511a66ee189fc0e4e4bbe937026f29e4ecef17763"}, + {file = "tree_sitter-0.23.2-cp313-cp313-win_arm64.whl", hash = "sha256:0ff2037be5edab7801de3f6a721b9cf010853f612e2008ee454e0e0badb225a6"}, + {file = "tree_sitter-0.23.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a5db8e585205faef8bf219da77d8993e2ef04d08eda2e3c8ad7e4df8297ee344"}, + {file = "tree_sitter-0.23.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9dbd110a30cf28be5da734ae4cd0e9031768228dbf6a79f2973962aa51de4ec7"}, + {file = "tree_sitter-0.23.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569514b9a996a0fd458b3a891c46ca125298be0c03cf82f2b6f0c13d5d8f25dc"}, + {file = "tree_sitter-0.23.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a357ed98a74e47787b812df99a74a2c35c0fe11e55c2095cc01d1cad144ef552"}, + {file = "tree_sitter-0.23.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c2dfb8e8f760f4cc67888d03ef9e2dbd3353245f67f5efba375c2a14d944ac0e"}, + {file = "tree_sitter-0.23.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3ead958df87a21d706903987e665e9e0e5df7b2c5021ff69ea349826840adc6a"}, + {file = "tree_sitter-0.23.2-cp39-cp39-win_amd64.whl", hash = "sha256:611cae16be332213c0e6ece72c0bfca202e30ff320a8b309b1526c6cb79ee4ba"}, + {file = "tree_sitter-0.23.2-cp39-cp39-win_arm64.whl", hash = "sha256:b848e0fdd522fbb8888cdb4f4d93f8fad97ae10d70c122fb922e51363c7febcd"}, +] + +[package.extras] +docs = ["sphinx (>=7.3,<8.0)", "sphinx-book-theme"] +tests = ["tree-sitter-html (>=0.23.0)", "tree-sitter-javascript (>=0.23.0)", "tree-sitter-json (>=0.23.0)", "tree-sitter-python (>=0.23.0)", "tree-sitter-rust (>=0.23.0)"] + +[[package]] +name = "tree-sitter-languages" +version = "1.10.2" +description = "Binary Python wheels for all tree sitter languages." +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tree_sitter_languages-1.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5580348f0b20233b1d5431fa178ccd3d07423ca4a3275df02a44608fd72344b9"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:103c7466644486b1e9e03850df46fc6aa12f13ca636c74f173270276220ac80b"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d13db84511c6f1a7dc40383b66deafa74dabd8b877e3d65ab253f3719eccafd6"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57adfa32be7e465b54aa72f915f6c78a2b66b227df4f656b5d4fbd1ca7a92b3f"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c6385e033e460ceb8f33f3f940335f422ef2b763700a04f0089391a68b56153"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dfa3f38cc5381c5aba01dd7494f59b8a9050e82ff6e06e1233e3a0cbae297e3c"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9f195155acf47f8bc5de7cee46ecd07b2f5697f007ba89435b51ef4c0b953ea5"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2de330e2ac6d7426ca025a3ec0f10d5640c3682c1d0c7702e812dcfb44b58120"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-win32.whl", hash = "sha256:c9731cf745f135d9770eeba9bb4e2ff4dabc107b5ae9b8211e919f6b9100ea6d"}, + {file = "tree_sitter_languages-1.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:6dd75851c41d0c3c4987a9b7692d90fa8848706c23115669d8224ffd6571e357"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7eb7d7542b2091c875fe52719209631fca36f8c10fa66970d2c576ae6a1b8289"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6b41bcb00974b1c8a1800c7f1bb476a1d15a0463e760ee24872f2d53b08ee424"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f370cd7845c6c81df05680d5bd96db8a99d32b56f4728c5d05978911130a853"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1dc195c88ef4c72607e112a809a69190e096a2e5ebc6201548b3e05fdd169ad"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ae34ac314a7170be24998a0f994c1ac80761d8d4bd126af27ee53a023d3b849"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:01b5742d5f5bd675489486b582bd482215880b26dde042c067f8265a6e925d9c"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ab1cbc46244d34fd16f21edaa20231b2a57f09f092a06ee3d469f3117e6eb954"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b1149e7467a4e92b8a70e6005fe762f880f493cf811fc003554b29f04f5e7c8"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-win32.whl", hash = "sha256:049276343962f4696390ee555acc2c1a65873270c66a6cbe5cb0bca83bcdf3c6"}, + {file = "tree_sitter_languages-1.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:7f3fdd468a577f04db3b63454d939e26e360229b53c80361920aa1ebf2cd7491"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c0f4c8b2734c45859edc7fcaaeaab97a074114111b5ba51ab4ec7ed52104763c"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eecd3c1244ac3425b7a82ba9125b4ddb45d953bbe61de114c0334fd89b7fe782"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15db3c8510bc39a80147ee7421bf4782c15c09581c1dc2237ea89cefbd95b846"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92c6487a6feea683154d3e06e6db68c30e0ae749a7ce4ce90b9e4e46b78c85c7"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2f1cd1d1bdd65332f9c2b67d49dcf148cf1ded752851d159ac3e5ee4f4d260"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:976c8039165b8e12f17a01ddee9f4e23ec6e352b165ad29b44d2bf04e2fbe77e"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:dafbbdf16bf668a580902e1620f4baa1913e79438abcce721a50647564c687b9"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1aeabd3d60d6d276b73cd8f3739d595b1299d123cc079a317f1a5b3c5461e2ca"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-win32.whl", hash = "sha256:fab8ee641914098e8933b87ea3d657bea4dd00723c1ee7038b847b12eeeef4f5"}, + {file = "tree_sitter_languages-1.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:5e606430d736367e5787fa5a7a0c5a1ec9b85eded0b3596bbc0d83532a40810b"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:838d5b48a7ed7a17658721952c77fda4570d2a069f933502653b17e15a9c39c9"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:987b3c71b1d278c2889e018ee77b8ee05c384e2e3334dec798f8b611c4ab2d1e"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:faa00abcb2c819027df58472da055d22fa7dfcb77c77413d8500c32ebe24d38b"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e102fbbf02322d9201a86a814e79a9734ac80679fdb9682144479044f401a73"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8f0b87cf1a7b03174ba18dfd81582be82bfed26803aebfe222bd20e444aba003"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c0f1b9af9cb67f0b942b020da9fdd000aad5e92f2383ae0ba7a330b318d31912"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5a4076c921f7a4d31e643843de7dfe040b65b63a238a5aa8d31d93aabe6572aa"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-win32.whl", hash = "sha256:fa6391a3a5d83d32db80815161237b67d70576f090ce5f38339206e917a6f8bd"}, + {file = "tree_sitter_languages-1.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:55649d3f254585a064121513627cf9788c1cfdadbc5f097f33d5ba750685a4c0"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6f85d1edaa2d22d80d4ea5b6d12b95cf3644017b6c227d0d42854439e02e8893"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d78feed4a764ef3141cb54bf00fe94d514d8b6e26e09423e23b4c616fcb7938c"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da1aca27531f9dd5308637d76643372856f0f65d0d28677d1bcf4211e8ed1ad0"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1031ea440dafb72237437d754eff8940153a3b051e3d18932ac25e75ce060a15"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99d3249beaef2c9fe558ecc9a97853c260433a849dcc68266d9770d196c2e102"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:59a4450f262a55148fb7e68681522f0c2a2f6b7d89666312a2b32708d8f416e1"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ce74eab0e430370d5e15a96b6c6205f93405c177a8b2e71e1526643b2fb9bab1"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9b4dd2b6b3d24c85dffe33d6c343448869eaf4f41c19ddba662eb5d65d8808f4"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-win32.whl", hash = "sha256:92d734fb968fe3927a7596d9f0459f81a8fa7b07e16569476b28e27d0d753348"}, + {file = "tree_sitter_languages-1.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:46a13f7d38f2eeb75f7cf127d1201346093748c270d686131f0cbc50e42870a1"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f8c6a936ae99fdd8857e91f86c11c2f5e507ff30631d141d98132bb7ab2c8638"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c283a61423f49cdfa7b5a5dfbb39221e3bd126fca33479cd80749d4d7a6b7349"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e60be6bdcff923386a54a5edcb6ff33fc38ab0118636a762024fa2bc98de55"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c00069f9575bd831eabcce2cdfab158dde1ed151e7e5614c2d985ff7d78a7de1"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:475ff53203d8a43ccb19bb322fa2fb200d764001cc037793f1fadd714bb343da"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26fe7c9c412e4141dea87ea4b3592fd12e385465b5bdab106b0d5125754d4f60"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8fed27319957458340f24fe14daad467cd45021da034eef583519f83113a8c5e"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3657a491a7f96cc75a3568ddd062d25f3be82b6a942c68801a7b226ff7130181"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-win32.whl", hash = "sha256:33f7d584d01a7a3c893072f34cfc64ec031f3cfe57eebc32da2f8ac046e101a7"}, + {file = "tree_sitter_languages-1.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:1b944af3ee729fa70fc8ae82224a9ff597cdb63addea084e0ea2fa2b0ec39bb7"}, +] + +[package.dependencies] +tree-sitter = "*" + +[[package]] +name = "typer" +version = "0.15.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"}, + {file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "types-cffi" +version = "1.16.0.20241221" +description = "Typing stubs for cffi" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types_cffi-1.16.0.20241221-py3-none-any.whl", hash = "sha256:e5b76b4211d7a9185f6ab8d06a106d56c7eb80af7cdb8bfcb4186ade10fb112f"}, + {file = "types_cffi-1.16.0.20241221.tar.gz", hash = "sha256:1c96649618f4b6145f58231acb976e0b448be6b847f7ab733dabe62dfbff6591"}, +] + +[package.dependencies] +types-setuptools = "*" + +[[package]] +name = "types-deprecated" +version = "1.2.15.20241117" +description = "Typing stubs for Deprecated" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-Deprecated-1.2.15.20241117.tar.gz", hash = "sha256:924002c8b7fddec51ba4949788a702411a2e3636cd9b2a33abd8ee119701d77e"}, + {file = "types_Deprecated-1.2.15.20241117-py3-none-any.whl", hash = "sha256:a0cc5e39f769fc54089fd8e005416b55d74aa03f6964d2ed1a0b0b2e28751884"}, +] + +[[package]] +name = "types-docutils" +version = "0.21.0.20241128" +description = "Typing stubs for docutils" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types_docutils-0.21.0.20241128-py3-none-any.whl", hash = "sha256:e0409204009639e9b0bf4521eeabe58b5e574ce9c0db08421c2ac26c32be0039"}, + {file = "types_docutils-0.21.0.20241128.tar.gz", hash = "sha256:4dd059805b83ac6ec5a223699195c4e9eeb0446a4f7f2aeff1759a4a7cc17473"}, +] + +[[package]] +name = "types-protobuf" +version = "4.25.0.20240417" +description = "Typing stubs for protobuf" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-protobuf-4.25.0.20240417.tar.gz", hash = "sha256:c34eff17b9b3a0adb6830622f0f302484e4c089f533a46e3f147568313544352"}, + {file = "types_protobuf-4.25.0.20240417-py3-none-any.whl", hash = "sha256:e9b613227c2127e3d4881d75d93c93b4d6fd97b5f6a099a0b654a05351c8685d"}, +] + +[[package]] +name = "types-pyopenssl" +version = "24.1.0.20240722" +description = "Typing stubs for pyOpenSSL" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-pyOpenSSL-24.1.0.20240722.tar.gz", hash = "sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39"}, + {file = "types_pyOpenSSL-24.1.0.20240722-py3-none-any.whl", hash = "sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54"}, +] + +[package.dependencies] +cryptography = ">=35.0.0" +types-cffi = "*" + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20241206" +description = "Typing stubs for python-dateutil" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53"}, + {file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"}, +] + +[[package]] +name = "types-pyyaml" +version = "6.0.12.20241230" +description = "Typing stubs for PyYAML" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types_PyYAML-6.0.12.20241230-py3-none-any.whl", hash = "sha256:fa4d32565219b68e6dee5f67534c722e53c00d1cfc09c435ef04d7353e1e96e6"}, + {file = "types_pyyaml-6.0.12.20241230.tar.gz", hash = "sha256:7f07622dbd34bb9c8b264fe860a17e0efcad00d50b5f27e93984909d9363498c"}, +] + +[[package]] +name = "types-redis" +version = "4.5.5.0" +description = "Typing stubs for redis" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-redis-4.5.5.0.tar.gz", hash = "sha256:26547d91f011a4024375d9216cd4d917b4678c984201d46f72c604526c138523"}, + {file = "types_redis-4.5.5.0-py3-none-any.whl", hash = "sha256:c7132e0cedeb52a83d20138c0440721bfae89cd2027c1ef57a294b56dfde4ee8"}, +] + +[package.dependencies] +cryptography = ">=35.0.0" +types-pyOpenSSL = "*" + +[[package]] +name = "types-requests" +version = "2.28.11.8" +description = "Typing stubs for requests" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-requests-2.28.11.8.tar.gz", hash = "sha256:e67424525f84adfbeab7268a159d3c633862dafae15c5b19547ce1b55954f0a3"}, + {file = "types_requests-2.28.11.8-py3-none-any.whl", hash = "sha256:61960554baca0008ae7e2db2bd3b322ca9a144d3e80ce270f5fb640817e40994"}, +] + +[package.dependencies] +types-urllib3 = "<1.27" + +[[package]] +name = "types-setuptools" +version = "67.1.0.0" +description = "Typing stubs for setuptools" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-setuptools-67.1.0.0.tar.gz", hash = "sha256:162a39d22e3a5eb802197c84f16b19e798101bbd33d9437837fbb45627da5627"}, + {file = "types_setuptools-67.1.0.0-py3-none-any.whl", hash = "sha256:5bd7a10d93e468bfcb10d24cb8ea5e12ac4f4ac91267293959001f1448cf0619"}, +] + +[package.dependencies] +types-docutils = "*" + +[[package]] +name = "types-urllib3" +version = "1.26.25.14" +description = "Typing stubs for urllib3" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, + {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "tzdata" +version = "2025.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, +] + +[[package]] +name = "ujson" +version = "5.10.0" +description = "Ultra fast JSON encoder and decoder for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "ujson-5.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2601aa9ecdbee1118a1c2065323bda35e2c5a2cf0797ef4522d485f9d3ef65bd"}, + {file = "ujson-5.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:348898dd702fc1c4f1051bc3aacbf894caa0927fe2c53e68679c073375f732cf"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22cffecf73391e8abd65ef5f4e4dd523162a3399d5e84faa6aebbf9583df86d6"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26b0e2d2366543c1bb4fbd457446f00b0187a2bddf93148ac2da07a53fe51569"}, + {file = "ujson-5.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:caf270c6dba1be7a41125cd1e4fc7ba384bf564650beef0df2dd21a00b7f5770"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a245d59f2ffe750446292b0094244df163c3dc96b3ce152a2c837a44e7cda9d1"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:94a87f6e151c5f483d7d54ceef83b45d3a9cca7a9cb453dbdbb3f5a6f64033f5"}, + {file = "ujson-5.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29b443c4c0a113bcbb792c88bea67b675c7ca3ca80c3474784e08bba01c18d51"}, + {file = "ujson-5.10.0-cp310-cp310-win32.whl", hash = "sha256:c18610b9ccd2874950faf474692deee4223a994251bc0a083c114671b64e6518"}, + {file = "ujson-5.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:924f7318c31874d6bb44d9ee1900167ca32aa9b69389b98ecbde34c1698a250f"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00"}, + {file = "ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b"}, + {file = "ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4"}, + {file = "ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1"}, + {file = "ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f"}, + {file = "ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5"}, + {file = "ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1"}, + {file = "ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2"}, + {file = "ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e"}, + {file = "ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e"}, + {file = "ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287"}, + {file = "ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988"}, + {file = "ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0"}, + {file = "ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f"}, + {file = "ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165"}, + {file = "ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a984a3131da7f07563057db1c3020b1350a3e27a8ec46ccbfbf21e5928a43050"}, + {file = "ujson-5.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73814cd1b9db6fc3270e9d8fe3b19f9f89e78ee9d71e8bd6c9a626aeaeaf16bd"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61e1591ed9376e5eddda202ec229eddc56c612b61ac6ad07f96b91460bb6c2fb"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c75269f8205b2690db4572a4a36fe47cd1338e4368bc73a7a0e48789e2e35a"}, + {file = "ujson-5.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7223f41e5bf1f919cd8d073e35b229295aa8e0f7b5de07ed1c8fddac63a6bc5d"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc2fd6b3067c0782e7002ac3b38cf48608ee6366ff176bbd02cf969c9c20fe"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:232cc85f8ee3c454c115455195a205074a56ff42608fd6b942aa4c378ac14dd7"}, + {file = "ujson-5.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc6139531f13148055d691e442e4bc6601f6dba1e6d521b1585d4788ab0bfad4"}, + {file = "ujson-5.10.0-cp38-cp38-win32.whl", hash = "sha256:e7ce306a42b6b93ca47ac4a3b96683ca554f6d35dd8adc5acfcd55096c8dfcb8"}, + {file = "ujson-5.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:e82d4bb2138ab05e18f089a83b6564fee28048771eb63cdecf4b9b549de8a2cc"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dfef2814c6b3291c3c5f10065f745a1307d86019dbd7ea50e83504950136ed5b"}, + {file = "ujson-5.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4734ee0745d5928d0ba3a213647f1c4a74a2a28edc6d27b2d6d5bd9fa4319e27"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d47ebb01bd865fdea43da56254a3930a413f0c5590372a1241514abae8aa7c76"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dee5e97c2496874acbf1d3e37b521dd1f307349ed955e62d1d2f05382bc36dd5"}, + {file = "ujson-5.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7490655a2272a2d0b072ef16b0b58ee462f4973a8f6bbe64917ce5e0a256f9c0"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba17799fcddaddf5c1f75a4ba3fd6441f6a4f1e9173f8a786b42450851bd74f1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2aff2985cef314f21d0fecc56027505804bc78802c0121343874741650a4d3d1"}, + {file = "ujson-5.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad88ac75c432674d05b61184178635d44901eb749786c8eb08c102330e6e8996"}, + {file = "ujson-5.10.0-cp39-cp39-win32.whl", hash = "sha256:2544912a71da4ff8c4f7ab5606f947d7299971bdd25a45e008e467ca638d13c9"}, + {file = "ujson-5.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:3ff201d62b1b177a46f113bb43ad300b424b7847f9c5d38b1b4ad8f75d4a282a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5b6fee72fa77dc172a28f21693f64d93166534c263adb3f96c413ccc85ef6e64"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:61d0af13a9af01d9f26d2331ce49bb5ac1fb9c814964018ac8df605b5422dcb3"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecb24f0bdd899d368b715c9e6664166cf694d1e57be73f17759573a6986dd95a"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbd8fd427f57a03cff3ad6574b5e299131585d9727c8c366da4624a9069ed746"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beeaf1c48e32f07d8820c705ff8e645f8afa690cca1544adba4ebfa067efdc88"}, + {file = "ujson-5.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:baed37ea46d756aca2955e99525cc02d9181de67f25515c468856c38d52b5f3b"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7663960f08cd5a2bb152f5ee3992e1af7690a64c0e26d31ba7b3ff5b2ee66337"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8640fb4072d36b08e95a3a380ba65779d356b2fee8696afeb7794cf0902d0a1"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78778a3aa7aafb11e7ddca4e29f46bc5139131037ad628cc10936764282d6753"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0111b27f2d5c820e7f2dbad7d48e3338c824e7ac4d2a12da3dc6061cc39c8e6"}, + {file = "ujson-5.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c66962ca7565605b355a9ed478292da628b8f18c0f2793021ca4425abf8b01e5"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ba43cc34cce49cf2d4bc76401a754a81202d8aa926d0e2b79f0ee258cb15d3a4"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac56eb983edce27e7f51d05bc8dd820586c6e6be1c5216a6809b0c668bb312b8"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44bd4b23a0e723bf8b10628288c2c7c335161d6840013d4d5de20e48551773b"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c10f4654e5326ec14a46bcdeb2b685d4ada6911050aa8baaf3501e57024b804"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0de4971a89a762398006e844ae394bd46991f7c385d7a6a3b93ba229e6dac17e"}, + {file = "ujson-5.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e1402f0564a97d2a52310ae10a64d25bcef94f8dd643fcf5d310219d915484f7"}, + {file = "ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1"}, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +description = "RFC 6570 URI Template Processor" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, +] + +[package.extras] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] + +[[package]] +name = "urllib3" +version = "2.3.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"}, + {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uvicorn" +version = "0.27.1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4"}, + {file = "uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.21.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +groups = ["main"] +markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and (python_version <= \"3.11\" or python_version >= \"3.12\")" +files = [ + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ec7e6b09a6fdded42403182ab6b832b71f4edaf7f37a9a0e371a01db5f0cb45f"}, + {file = "uvloop-0.21.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:196274f2adb9689a289ad7d65700d37df0c0930fd8e4e743fa4834e850d7719d"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f38b2e090258d051d68a5b14d1da7203a3c3677321cf32a95a6f4db4dd8b6f26"}, + {file = "uvloop-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c43e0f13022b998eb9b973b5e97200c8b90823454d4bc06ab33829e09fb9bb"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:10d66943def5fcb6e7b37310eb6b5639fd2ccbc38df1177262b0640c3ca68c1f"}, + {file = "uvloop-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:67dd654b8ca23aed0a8e99010b4c34aca62f4b7fce88f39d452ed7622c94845c"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c0f3fa6200b3108919f8bdabb9a7f87f20e7097ea3c543754cabc7d717d95cf8"}, + {file = "uvloop-0.21.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0878c2640cf341b269b7e128b1a5fed890adc4455513ca710d77d5e93aa6d6a0"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9fb766bb57b7388745d8bcc53a359b116b8a04c83a2288069809d2b3466c37e"}, + {file = "uvloop-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a375441696e2eda1c43c44ccb66e04d61ceeffcd76e4929e527b7fa401b90fb"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:baa0e6291d91649c6ba4ed4b2f982f9fa165b5bbd50a9e203c416a2797bab3c6"}, + {file = "uvloop-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4509360fcc4c3bd2c70d87573ad472de40c13387f5fda8cb58350a1d7475e58d"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:359ec2c888397b9e592a889c4d72ba3d6befba8b2bb01743f72fffbde663b59c"}, + {file = "uvloop-0.21.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f7089d2dc73179ce5ac255bdf37c236a9f914b264825fdaacaded6990a7fb4c2"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:baa4dcdbd9ae0a372f2167a207cd98c9f9a1ea1188a8a526431eef2f8116cc8d"}, + {file = "uvloop-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86975dca1c773a2c9864f4c52c5a55631038e387b47eaf56210f873887b6c8dc"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:461d9ae6660fbbafedd07559c6a2e57cd553b34b0065b6550685f6653a98c1cb"}, + {file = "uvloop-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:183aef7c8730e54c9a3ee3227464daed66e37ba13040bb3f350bc2ddc040f22f"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281"}, + {file = "uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6"}, + {file = "uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc"}, + {file = "uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:17df489689befc72c39a08359efac29bbee8eee5209650d4b9f34df73d22e414"}, + {file = "uvloop-0.21.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bc09f0ff191e61c2d592a752423c767b4ebb2986daa9ed62908e2b1b9a9ae206"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0ce1b49560b1d2d8a2977e3ba4afb2414fb46b86a1b64056bc4ab929efdafbe"}, + {file = "uvloop-0.21.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e678ad6fe52af2c58d2ae3c73dc85524ba8abe637f134bf3564ed07f555c5e79"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:460def4412e473896ef179a1671b40c039c7012184b627898eea5072ef6f017a"}, + {file = "uvloop-0.21.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:10da8046cc4a8f12c91a1c39d1dd1585c41162a15caaef165c2174db9ef18bdc"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c097078b8031190c934ed0ebfee8cc5f9ba9642e6eb88322b9958b649750f72b"}, + {file = "uvloop-0.21.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:46923b0b5ee7fc0020bef24afe7836cb068f5050ca04caf6b487c513dc1a20b2"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e420a3afe22cdcf2a0f4846e377d16e718bc70103d7088a4f7623567ba5fb0"}, + {file = "uvloop-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88cb67cdbc0e483da00af0b2c3cdad4b7c61ceb1ee0f33fe00e09c81e3a6cb75"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:221f4f2a1f46032b403bf3be628011caf75428ee3cc204a22addf96f586b19fd"}, + {file = "uvloop-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2d1f581393673ce119355d56da84fe1dd9d2bb8b3d13ce792524e1607139feff"}, + {file = "uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3"}, +] + +[package.extras] +dev = ["Cython (>=3.0,<4.0)", "setuptools (>=60)"] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "virtualenv" +version = "20.29.1" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, + {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] + +[[package]] +name = "watchfiles" +version = "1.0.4" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +description = "A library for working with the color formats defined by HTML and CSS." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9"}, + {file = "webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +description = "WebSocket client for Python with low level API options" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526"}, + {file = "websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da"}, +] + +[package.extras] +docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "websockets" +version = "14.2" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"}, + {file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"}, + {file = "websockets-14.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:714a9b682deb4339d39ffa674f7b674230227d981a37d5d174a4a83e3978a610"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2e53c72052f2596fb792a7acd9704cbc549bf70fcde8a99e899311455974ca3"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e3fbd68850c837e57373d95c8fe352203a512b6e49eaae4c2f4088ef8cf21980"}, + {file = "websockets-14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b27ece32f63150c268593d5fdb82819584831a83a3f5809b7521df0685cd5d8"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4daa0faea5424d8713142b33825fff03c736f781690d90652d2c8b053345b0e7"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:bc63cee8596a6ec84d9753fd0fcfa0452ee12f317afe4beae6b157f0070c6c7f"}, + {file = "websockets-14.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a570862c325af2111343cc9b0257b7119b904823c675b22d4ac547163088d0d"}, + {file = "websockets-14.2-cp310-cp310-win32.whl", hash = "sha256:75862126b3d2d505e895893e3deac0a9339ce750bd27b4ba515f008b5acf832d"}, + {file = "websockets-14.2-cp310-cp310-win_amd64.whl", hash = "sha256:cc45afb9c9b2dc0852d5c8b5321759cf825f82a31bfaf506b65bf4668c96f8b2"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3bdc8c692c866ce5fefcaf07d2b55c91d6922ac397e031ef9b774e5b9ea42166"}, + {file = "websockets-14.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c93215fac5dadc63e51bcc6dceca72e72267c11def401d6668622b47675b097f"}, + {file = "websockets-14.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c9b6535c0e2cf8a6bf938064fb754aaceb1e6a4a51a80d884cd5db569886910"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a52a6d7cf6938e04e9dceb949d35fbdf58ac14deea26e685ab6368e73744e4c"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f05702e93203a6ff5226e21d9b40c037761b2cfb637187c9802c10f58e40473"}, + {file = "websockets-14.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22441c81a6748a53bfcb98951d58d1af0661ab47a536af08920d129b4d1c3473"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd9b868d78b194790e6236d9cbc46d68aba4b75b22497eb4ab64fa640c3af56"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1a5a20d5843886d34ff8c57424cc65a1deda4375729cbca4cb6b3353f3ce4142"}, + {file = "websockets-14.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:34277a29f5303d54ec6468fb525d99c99938607bc96b8d72d675dee2b9f5bf1d"}, + {file = "websockets-14.2-cp311-cp311-win32.whl", hash = "sha256:02687db35dbc7d25fd541a602b5f8e451a238ffa033030b172ff86a93cb5dc2a"}, + {file = "websockets-14.2-cp311-cp311-win_amd64.whl", hash = "sha256:862e9967b46c07d4dcd2532e9e8e3c2825e004ffbf91a5ef9dde519ee2effb0b"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c"}, + {file = "websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967"}, + {file = "websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95"}, + {file = "websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267"}, + {file = "websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe"}, + {file = "websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205"}, + {file = "websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f1372e511c7409a542291bce92d6c83320e02c9cf392223272287ce55bc224e"}, + {file = "websockets-14.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4da98b72009836179bb596a92297b1a61bb5a830c0e483a7d0766d45070a08ad"}, + {file = "websockets-14.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8a86a269759026d2bde227652b87be79f8a734e582debf64c9d302faa1e9f03"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86cf1aaeca909bf6815ea714d5c5736c8d6dd3a13770e885aafe062ecbd04f1f"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9b0f6c3ba3b1240f602ebb3971d45b02cc12bd1845466dd783496b3b05783a5"}, + {file = "websockets-14.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:669c3e101c246aa85bc8534e495952e2ca208bd87994650b90a23d745902db9a"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eabdb28b972f3729348e632ab08f2a7b616c7e53d5414c12108c29972e655b20"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2066dc4cbcc19f32c12a5a0e8cc1b7ac734e5b64ac0a325ff8353451c4b15ef2"}, + {file = "websockets-14.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ab95d357cd471df61873dadf66dd05dd4709cae001dd6342edafc8dc6382f307"}, + {file = "websockets-14.2-cp313-cp313-win32.whl", hash = "sha256:a9e72fb63e5f3feacdcf5b4ff53199ec8c18d66e325c34ee4c551ca748623bbc"}, + {file = "websockets-14.2-cp313-cp313-win_amd64.whl", hash = "sha256:b439ea828c4ba99bb3176dc8d9b933392a2413c0f6b149fdcba48393f573377f"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7cd5706caec1686c5d233bc76243ff64b1c0dc445339bd538f30547e787c11fe"}, + {file = "websockets-14.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ec607328ce95a2f12b595f7ae4c5d71bf502212bddcea528290b35c286932b12"}, + {file = "websockets-14.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da85651270c6bfb630136423037dd4975199e5d4114cae6d3066641adcc9d1c7"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3ecadc7ce90accf39903815697917643f5b7cfb73c96702318a096c00aa71f5"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1979bee04af6a78608024bad6dfcc0cc930ce819f9e10342a29a05b5320355d0"}, + {file = "websockets-14.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dddacad58e2614a24938a50b85969d56f88e620e3f897b7d80ac0d8a5800258"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:89a71173caaf75fa71a09a5f614f450ba3ec84ad9fca47cb2422a860676716f0"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6af6a4b26eea4fc06c6818a6b962a952441e0e39548b44773502761ded8cc1d4"}, + {file = "websockets-14.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:80c8efa38957f20bba0117b48737993643204645e9ec45512579132508477cfc"}, + {file = "websockets-14.2-cp39-cp39-win32.whl", hash = "sha256:2e20c5f517e2163d76e2729104abc42639c41cf91f7b1839295be43302713661"}, + {file = "websockets-14.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4c8cef610e8d7c70dea92e62b6814a8cd24fbd01d7103cc89308d2bfe1659ef"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:d7d9cafbccba46e768be8a8ad4635fa3eae1ffac4c6e7cb4eb276ba41297ed29"}, + {file = "websockets-14.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c76193c1c044bd1e9b3316dcc34b174bbf9664598791e6fb606d8d29000e070c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd475a974d5352390baf865309fe37dec6831aafc3014ffac1eea99e84e83fc2"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6c0097a41968b2e2b54ed3424739aab0b762ca92af2379f152c1aef0187e1c"}, + {file = "websockets-14.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7ff794c8b36bc402f2e07c0b2ceb4a2424147ed4785ff03e2a7af03711d60a"}, + {file = "websockets-14.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dec254fcabc7bd488dab64846f588fc5b6fe0d78f641180030f8ea27b76d72c3"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:bbe03eb853e17fd5b15448328b4ec7fb2407d45fb0245036d06a3af251f8e48f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3c4aa3428b904d5404a0ed85f3644d37e2cb25996b7f096d77caeb0e96a3b42"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:577a4cebf1ceaf0b65ffc42c54856214165fb8ceeba3935852fc33f6b0c55e7f"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1c1d02357b7665e700eca43a31d52814ad9ad9b89b58118bdabc365454b574"}, + {file = "websockets-14.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f390024a47d904613577df83ba700bd189eedc09c57af0a904e5c39624621270"}, + {file = "websockets-14.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3c1426c021c38cf92b453cdf371228d3430acd775edee6bac5a4d577efc72365"}, + {file = "websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b"}, + {file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"}, +] + +[[package]] +name = "widgetsnbextension" +version = "4.0.13" +description = "Jupyter interactive widgets for Jupyter Notebook" +optional = false +python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "widgetsnbextension-4.0.13-py3-none-any.whl", hash = "sha256:74b2692e8500525cc38c2b877236ba51d34541e6385eeed5aec15a70f88a6c71"}, + {file = "widgetsnbextension-4.0.13.tar.gz", hash = "sha256:ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6"}, +] + +[[package]] +name = "wrapt" +version = "1.17.2" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"}, + {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"}, + {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"}, + {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"}, + {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"}, + {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"}, + {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"}, + {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"}, + {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"}, + {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"}, + {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"}, + {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"}, + {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"}, + {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"}, + {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"}, + {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"}, + {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"}, + {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"}, + {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"}, + {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"}, + {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"}, + {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"}, + {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"}, + {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"}, + {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"}, + {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"}, + {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"}, + {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"}, + {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"}, + {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"}, + {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"}, + {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"}, + {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"}, + {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"}, + {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"}, + {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"}, + {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"}, + {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"}, +] + +[[package]] +name = "yarl" +version = "1.18.3" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main", "dev"] +markers = "python_version <= \"3.11\" or python_version >= \"3.12\"" +files = [ + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"}, + {file = "yarl-1.18.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:602d98f2c2d929f8e697ed274fbadc09902c4025c5a9963bf4e9edfc3ab6f7ed"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c654d5207c78e0bd6d749f6dae1dcbbfde3403ad3a4b11f3c5544d9906969dde"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5094d9206c64181d0f6e76ebd8fb2f8fe274950a63890ee9e0ebfd58bf9d787b"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35098b24e0327fc4ebdc8ffe336cee0a87a700c24ffed13161af80124b7dc8e5"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3236da9272872443f81fedc389bace88408f64f89f75d1bdb2256069a8730ccc"}, + {file = "yarl-1.18.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2c08cc9b16f4f4bc522771d96734c7901e7ebef70c6c5c35dd0f10845270bcd"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80316a8bd5109320d38eef8833ccf5f89608c9107d02d2a7f985f98ed6876990"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c1e1cc06da1491e6734f0ea1e6294ce00792193c463350626571c287c9a704db"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:fea09ca13323376a2fdfb353a5fa2e59f90cd18d7ca4eaa1fd31f0a8b4f91e62"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e3b9fd71836999aad54084906f8663dffcd2a7fb5cdafd6c37713b2e72be1760"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:757e81cae69244257d125ff31663249b3013b5dc0a8520d73694aed497fb195b"}, + {file = "yarl-1.18.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b1771de9944d875f1b98a745bc547e684b863abf8f8287da8466cf470ef52690"}, + {file = "yarl-1.18.3-cp310-cp310-win32.whl", hash = "sha256:8874027a53e3aea659a6d62751800cf6e63314c160fd607489ba5c2edd753cf6"}, + {file = "yarl-1.18.3-cp310-cp310-win_amd64.whl", hash = "sha256:93b2e109287f93db79210f86deb6b9bbb81ac32fc97236b16f7433db7fc437d8"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193"}, + {file = "yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae"}, + {file = "yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e"}, + {file = "yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a"}, + {file = "yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1"}, + {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576"}, + {file = "yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba"}, + {file = "yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393"}, + {file = "yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285"}, + {file = "yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2"}, + {file = "yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa"}, + {file = "yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58"}, + {file = "yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10"}, + {file = "yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8"}, + {file = "yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d"}, + {file = "yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61e5e68cb65ac8f547f6b5ef933f510134a6bf31bb178be428994b0cb46c2a04"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe57328fbc1bfd0bd0514470ac692630f3901c0ee39052ae47acd1d90a436719"}, + {file = "yarl-1.18.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a440a2a624683108a1b454705ecd7afc1c3438a08e890a1513d468671d90a04e"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c7907c8548bcd6ab860e5f513e727c53b4a714f459b084f6580b49fa1b9cee"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4f6450109834af88cb4cc5ecddfc5380ebb9c228695afc11915a0bf82116789"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9ca04806f3be0ac6d558fffc2fdf8fcef767e0489d2684a21912cc4ed0cd1b8"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77a6e85b90a7641d2e07184df5557132a337f136250caafc9ccaa4a2a998ca2c"}, + {file = "yarl-1.18.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6333c5a377c8e2f5fae35e7b8f145c617b02c939d04110c76f29ee3676b5f9a5"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b3c92fa08759dbf12b3a59579a4096ba9af8dd344d9a813fc7f5070d86bbab1"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4ac515b860c36becb81bb84b667466885096b5fc85596948548b667da3bf9f24"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:045b8482ce9483ada4f3f23b3774f4e1bf4f23a2d5c912ed5170f68efb053318"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a4bb030cf46a434ec0225bddbebd4b89e6471814ca851abb8696170adb163985"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:54d6921f07555713b9300bee9c50fb46e57e2e639027089b1d795ecd9f7fa910"}, + {file = "yarl-1.18.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1d407181cfa6e70077df3377938c08012d18893f9f20e92f7d2f314a437c30b1"}, + {file = "yarl-1.18.3-cp39-cp39-win32.whl", hash = "sha256:ac36703a585e0929b032fbaab0707b75dc12703766d0b53486eabd5139ebadd5"}, + {file = "yarl-1.18.3-cp39-cp39-win_amd64.whl", hash = "sha256:ba87babd629f8af77f557b61e49e7c7cac36f22f871156b91e10a6e9d4f829e9"}, + {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"}, + {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.0" + +[[package]] +name = "zipp" +version = "3.21.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version < \"3.10\"" +files = [ + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + +[metadata] +lock-version = "2.1" +python-versions = ">=3.9,<4.0" +content-hash = "8e5ea4ccdf1780414221e8eea3be918135889d80fa8d8250fe674a13daec1047" diff --git a/llama-index-packs/llama-index-packs-vectara-rag/README.md b/llama-index-packs/llama-index-packs-vectara-rag/README.md index c7a44fe6156fa..dab3a6a4bfd1b 100644 --- a/llama-index-packs/llama-index-packs-vectara-rag/README.md +++ b/llama-index-packs/llama-index-packs-vectara-rag/README.md @@ -1,6 +1,7 @@ # Vectara RAG Pack This LlamaPack provides an end-to-end Retrieval Augmented Generation flow using Vectara. +Please note that this guide is only relevant for versions >= 0.4.0 To use the Vectara RAG Pack, you will need a Vectara account. If you don't have one already, you can [sign up](https://vectara.com/integrations/llamaindex) and follow our [Quick Start](https://docs.vectara.com/docs/quickstart) guide to create a corpus and an API key (make sure it has both indexing and query permissions). @@ -8,8 +9,7 @@ and follow our [Quick Start](https://docs.vectara.com/docs/quickstart) guide to You can then configure your environment or provide the following arguments directly when initializing your VectaraIndex: ``` -VECTARA_CUSTOMER_ID=your_customer_id -VECTARA_CORPUS_ID=your_corpus_id +VECTARA_CORPUS_KEY=your_corpus_key VECTARA_API_KEY=your-vectara-api-key ``` @@ -55,7 +55,7 @@ Additional optional arguments to VectaraRAG: determines the balance between pure neural search (0) and keyword matching (1). - `n_sentences_before` and `n_sentences_after`: determine the number of sentences before/after the matching fact to use with the summarization LLM. defaults to 2. -- `reranker`: 'none', 'mmr', 'multilingual_reranker_v1', 'udf', or 'chain' +- `reranker`: 'none', 'mmr', 'multilingual_reranker_v1', 'userfn', or 'chain' The reranker name 'slingshot' is the same as 'multilingual_reranker_v1' (backwards compatible) - `rerank_k`: the number of results to use for reranking, defaults to 50. - `mmr_diversity_bias`: when using the mmr reranker, determines the degree @@ -69,8 +69,7 @@ Additional optional arguments to VectaraRAG: - `summary_response_lang`: language to use (ISO 639-2 code) for summary generation. defaults to "eng". - `summary_num_results`: number of results to use for summary generation. Defaults to 7. - `summary_prompt_name`: name of the prompt to use for summary generation. - Defaults to 'vectara-summary-ext-v1.2.0'. - Scale customers can use 'vectara-summary-ext-v1.3.0 + Defaults to 'vectara-summary-ext-24-05-sml'. For example to use maximal diversity with MMR: diff --git a/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml b/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml index 330a68bb55d7c..26d7fc39b09da 100644 --- a/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml +++ b/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml @@ -29,11 +29,11 @@ license = "MIT" maintainers = ["ofermend"] name = "llama-index-packs-vectara-rag" readme = "README.md" -version = "0.3.0" +version = "0.4.0" [tool.poetry.dependencies] python = ">=3.9,<4.0" -llama-index-indices-managed-vectara = "^0.3.0" +llama-index-indices-managed-vectara = "^0.4.0" llama-index-core = "^0.12.0" [tool.poetry.group.dev.dependencies] diff --git a/poetry.lock b/poetry.lock index 8315f8677165f..bc9cf74764e04 100644 --- a/poetry.lock +++ b/poetry.lock @@ -214,13 +214,13 @@ files = [ [[package]] name = "attrs" -version = "24.3.0" +version = "25.1.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.8" files = [ - {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"}, - {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"}, + {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, + {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, ] [package.extras] @@ -550,13 +550,13 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "codespell" -version = "2.3.0" -description = "Codespell" +version = "2.4.0" +description = "Fix common misspellings in text files" optional = false python-versions = ">=3.8" files = [ - {file = "codespell-2.3.0-py3-none-any.whl", hash = "sha256:a9c7cef2501c9cfede2110fd6d4e5e62296920efe9abfb84648df866e47f58d1"}, - {file = "codespell-2.3.0.tar.gz", hash = "sha256:360c7d10f75e65f67bad720af7007e1060a5d395670ec11a7ed1fed9dd17471f"}, + {file = "codespell-2.4.0-py3-none-any.whl", hash = "sha256:b4c5b779f747dd481587aeecb5773301183f52b94b96ed51a28126d0482eec1d"}, + {file = "codespell-2.4.0.tar.gz", hash = "sha256:587d45b14707fb8ce51339ba4cce50ae0e98ce228ef61f3c5e160e34f681be58"}, ] [package.dependencies] @@ -662,37 +662,37 @@ typing-inspect = ">=0.4.0,<1" [[package]] name = "debugpy" -version = "1.8.11" +version = "1.8.12" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.11-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:2b26fefc4e31ff85593d68b9022e35e8925714a10ab4858fb1b577a8a48cb8cd"}, - {file = "debugpy-1.8.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61bc8b3b265e6949855300e84dc93d02d7a3a637f2aec6d382afd4ceb9120c9f"}, - {file = "debugpy-1.8.11-cp310-cp310-win32.whl", hash = "sha256:c928bbf47f65288574b78518449edaa46c82572d340e2750889bbf8cd92f3737"}, - {file = "debugpy-1.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:8da1db4ca4f22583e834dcabdc7832e56fe16275253ee53ba66627b86e304da1"}, - {file = "debugpy-1.8.11-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:85de8474ad53ad546ff1c7c7c89230db215b9b8a02754d41cb5a76f70d0be296"}, - {file = "debugpy-1.8.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ffc382e4afa4aee367bf413f55ed17bd91b191dcaf979890af239dda435f2a1"}, - {file = "debugpy-1.8.11-cp311-cp311-win32.whl", hash = "sha256:40499a9979c55f72f4eb2fc38695419546b62594f8af194b879d2a18439c97a9"}, - {file = "debugpy-1.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:987bce16e86efa86f747d5151c54e91b3c1e36acc03ce1ddb50f9d09d16ded0e"}, - {file = "debugpy-1.8.11-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:84e511a7545d11683d32cdb8f809ef63fc17ea2a00455cc62d0a4dbb4ed1c308"}, - {file = "debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce291a5aca4985d82875d6779f61375e959208cdf09fcec40001e65fb0a54768"}, - {file = "debugpy-1.8.11-cp312-cp312-win32.whl", hash = "sha256:28e45b3f827d3bf2592f3cf7ae63282e859f3259db44ed2b129093ca0ac7940b"}, - {file = "debugpy-1.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:44b1b8e6253bceada11f714acf4309ffb98bfa9ac55e4fce14f9e5d4484287a1"}, - {file = "debugpy-1.8.11-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:8988f7163e4381b0da7696f37eec7aca19deb02e500245df68a7159739bbd0d3"}, - {file = "debugpy-1.8.11-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c1f6a173d1140e557347419767d2b14ac1c9cd847e0b4c5444c7f3144697e4e"}, - {file = "debugpy-1.8.11-cp313-cp313-win32.whl", hash = "sha256:bb3b15e25891f38da3ca0740271e63ab9db61f41d4d8541745cfc1824252cb28"}, - {file = "debugpy-1.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:d8768edcbeb34da9e11bcb8b5c2e0958d25218df7a6e56adf415ef262cd7b6d1"}, - {file = "debugpy-1.8.11-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:ad7efe588c8f5cf940f40c3de0cd683cc5b76819446abaa50dc0829a30c094db"}, - {file = "debugpy-1.8.11-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:189058d03a40103a57144752652b3ab08ff02b7595d0ce1f651b9acc3a3a35a0"}, - {file = "debugpy-1.8.11-cp38-cp38-win32.whl", hash = "sha256:32db46ba45849daed7ccf3f2e26f7a386867b077f39b2a974bb5c4c2c3b0a280"}, - {file = "debugpy-1.8.11-cp38-cp38-win_amd64.whl", hash = "sha256:116bf8342062246ca749013df4f6ea106f23bc159305843491f64672a55af2e5"}, - {file = "debugpy-1.8.11-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:654130ca6ad5de73d978057eaf9e582244ff72d4574b3e106fb8d3d2a0d32458"}, - {file = "debugpy-1.8.11-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23dc34c5e03b0212fa3c49a874df2b8b1b8fda95160bd79c01eb3ab51ea8d851"}, - {file = "debugpy-1.8.11-cp39-cp39-win32.whl", hash = "sha256:52d8a3166c9f2815bfae05f386114b0b2d274456980d41f320299a8d9a5615a7"}, - {file = "debugpy-1.8.11-cp39-cp39-win_amd64.whl", hash = "sha256:52c3cf9ecda273a19cc092961ee34eb9ba8687d67ba34cc7b79a521c1c64c4c0"}, - {file = "debugpy-1.8.11-py2.py3-none-any.whl", hash = "sha256:0e22f846f4211383e6a416d04b4c13ed174d24cc5d43f5fd52e7821d0ebc8920"}, - {file = "debugpy-1.8.11.tar.gz", hash = "sha256:6ad2688b69235c43b020e04fecccdf6a96c8943ca9c2fb340b8adc103c655e57"}, + {file = "debugpy-1.8.12-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:a2ba7ffe58efeae5b8fad1165357edfe01464f9aef25e814e891ec690e7dd82a"}, + {file = "debugpy-1.8.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbbd4149c4fc5e7d508ece083e78c17442ee13b0e69bfa6bd63003e486770f45"}, + {file = "debugpy-1.8.12-cp310-cp310-win32.whl", hash = "sha256:b202f591204023b3ce62ff9a47baa555dc00bb092219abf5caf0e3718ac20e7c"}, + {file = "debugpy-1.8.12-cp310-cp310-win_amd64.whl", hash = "sha256:9649eced17a98ce816756ce50433b2dd85dfa7bc92ceb60579d68c053f98dff9"}, + {file = "debugpy-1.8.12-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:36f4829839ef0afdfdd208bb54f4c3d0eea86106d719811681a8627ae2e53dd5"}, + {file = "debugpy-1.8.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a28ed481d530e3138553be60991d2d61103ce6da254e51547b79549675f539b7"}, + {file = "debugpy-1.8.12-cp311-cp311-win32.whl", hash = "sha256:4ad9a94d8f5c9b954e0e3b137cc64ef3f579d0df3c3698fe9c3734ee397e4abb"}, + {file = "debugpy-1.8.12-cp311-cp311-win_amd64.whl", hash = "sha256:4703575b78dd697b294f8c65588dc86874ed787b7348c65da70cfc885efdf1e1"}, + {file = "debugpy-1.8.12-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:7e94b643b19e8feb5215fa508aee531387494bf668b2eca27fa769ea11d9f498"}, + {file = "debugpy-1.8.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:086b32e233e89a2740c1615c2f775c34ae951508b28b308681dbbb87bba97d06"}, + {file = "debugpy-1.8.12-cp312-cp312-win32.whl", hash = "sha256:2ae5df899732a6051b49ea2632a9ea67f929604fd2b036613a9f12bc3163b92d"}, + {file = "debugpy-1.8.12-cp312-cp312-win_amd64.whl", hash = "sha256:39dfbb6fa09f12fae32639e3286112fc35ae976114f1f3d37375f3130a820969"}, + {file = "debugpy-1.8.12-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:696d8ae4dff4cbd06bf6b10d671e088b66669f110c7c4e18a44c43cf75ce966f"}, + {file = "debugpy-1.8.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:898fba72b81a654e74412a67c7e0a81e89723cfe2a3ea6fcd3feaa3395138ca9"}, + {file = "debugpy-1.8.12-cp313-cp313-win32.whl", hash = "sha256:22a11c493c70413a01ed03f01c3c3a2fc4478fc6ee186e340487b2edcd6f4180"}, + {file = "debugpy-1.8.12-cp313-cp313-win_amd64.whl", hash = "sha256:fdb3c6d342825ea10b90e43d7f20f01535a72b3a1997850c0c3cefa5c27a4a2c"}, + {file = "debugpy-1.8.12-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:b0232cd42506d0c94f9328aaf0d1d0785f90f87ae72d9759df7e5051be039738"}, + {file = "debugpy-1.8.12-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9af40506a59450f1315168d47a970db1a65aaab5df3833ac389d2899a5d63b3f"}, + {file = "debugpy-1.8.12-cp38-cp38-win32.whl", hash = "sha256:5cc45235fefac57f52680902b7d197fb2f3650112379a6fa9aa1b1c1d3ed3f02"}, + {file = "debugpy-1.8.12-cp38-cp38-win_amd64.whl", hash = "sha256:557cc55b51ab2f3371e238804ffc8510b6ef087673303890f57a24195d096e61"}, + {file = "debugpy-1.8.12-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:b5c6c967d02fee30e157ab5227706f965d5c37679c687b1e7bbc5d9e7128bd41"}, + {file = "debugpy-1.8.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88a77f422f31f170c4b7e9ca58eae2a6c8e04da54121900651dfa8e66c29901a"}, + {file = "debugpy-1.8.12-cp39-cp39-win32.whl", hash = "sha256:a4042edef80364239f5b7b5764e55fd3ffd40c32cf6753da9bda4ff0ac466018"}, + {file = "debugpy-1.8.12-cp39-cp39-win_amd64.whl", hash = "sha256:f30b03b0f27608a0b26c75f0bb8a880c752c0e0b01090551b9d87c7d783e2069"}, + {file = "debugpy-1.8.12-py2.py3-none-any.whl", hash = "sha256:274b6a2040349b5c9864e475284bce5bb062e63dce368a394b8cc865ae3b00c6"}, + {file = "debugpy-1.8.12.tar.gz", hash = "sha256:646530b04f45c830ceae8e491ca1c9320a2d2f0efea3141487c82130aba70dce"}, ] [[package]] @@ -719,20 +719,20 @@ files = [ [[package]] name = "deprecated" -version = "1.2.15" +version = "1.2.17" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ - {file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"}, - {file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"}, + {file = "Deprecated-1.2.17-py2.py3-none-any.whl", hash = "sha256:69cdc0a751671183f569495e2efb14baee4344b0236342eec29f1fde25d61818"}, + {file = "deprecated-1.2.17.tar.gz", hash = "sha256:0114a10f0bbb750b90b2c2296c90cf7e9eaeb0abb5cf06c80de2c60138de0a82"}, ] [package.dependencies] wrapt = ">=1.10,<2" [package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "jinja2 (>=3.0.3,<3.1.0)", "setuptools", "sphinx (<2)", "tox"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"] [[package]] name = "dill" @@ -812,13 +812,13 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "2.1.0" +version = "2.2.0" description = "Get the currently executing AST node of a frame, and other information" optional = false python-versions = ">=3.8" files = [ - {file = "executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf"}, - {file = "executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"}, + {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"}, + {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}, ] [package.extras] @@ -840,18 +840,18 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.16.1" +version = "3.17.0" description = "A platform independent file lock." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, - {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, + {file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"}, + {file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"}, ] [package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] +docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] typing = ["typing-extensions (>=4.12.2)"] [[package]] @@ -1110,13 +1110,13 @@ test = ["objgraph", "psutil"] [[package]] name = "griffe" -version = "1.5.4" +version = "1.5.5" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false python-versions = ">=3.9" files = [ - {file = "griffe-1.5.4-py3-none-any.whl", hash = "sha256:ed33af890586a5bebc842fcb919fc694b3dc1bc55b7d9e0228de41ce566b4a1d"}, - {file = "griffe-1.5.4.tar.gz", hash = "sha256:073e78ad3e10c8378c2f798bd4ef87b92d8411e9916e157fd366a17cc4fd4e52"}, + {file = "griffe-1.5.5-py3-none-any.whl", hash = "sha256:2761b1e8876c6f1f9ab1af274df93ea6bbadd65090de5f38f4cb5cc84897c7dd"}, + {file = "griffe-1.5.5.tar.gz", hash = "sha256:35ee5b38b93d6a839098aad0f92207e6ad6b70c3e8866c08ca669275b8cba585"}, ] [package.dependencies] @@ -1180,13 +1180,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "identify" -version = "2.6.5" +version = "2.6.6" description = "File identification library for Python" optional = false python-versions = ">=3.9" files = [ - {file = "identify-2.6.5-py2.py3-none-any.whl", hash = "sha256:14181a47091eb75b337af4c23078c9d09225cd4c48929f521f3bf16b09d02566"}, - {file = "identify-2.6.5.tar.gz", hash = "sha256:c10b33f250e5bba374fae86fb57f3adcebf1161bce7cdf92031915fd480c13bc"}, + {file = "identify-2.6.6-py2.py3-none-any.whl", hash = "sha256:cbd1810bce79f8b671ecb20f53ee0ae8e86ae84b557de31d89709dc2a48ba881"}, + {file = "identify-2.6.6.tar.gz", hash = "sha256:7bec12768ed44ea4761efb47806f0a41f86e7c0a5fdf5950d4648c90eca7e251"}, ] [package.extras] @@ -1208,13 +1208,13 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2 [[package]] name = "importlib-metadata" -version = "8.5.0" +version = "8.6.1" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"}, - {file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"}, + {file = "importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e"}, + {file = "importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580"}, ] [package.dependencies] @@ -1226,7 +1226,7 @@ cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] enabler = ["pytest-enabler (>=2.2)"] perf = ["ipython"] -test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +test = ["flufl.flake8", "importlib_resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] type = ["pytest-mypy"] [[package]] @@ -1622,13 +1622,13 @@ files = [ [[package]] name = "llama-cloud" -version = "0.1.8" +version = "0.1.10" description = "" optional = false python-versions = "<4,>=3.8" files = [ - {file = "llama_cloud-0.1.8-py3-none-any.whl", hash = "sha256:1a0c4cf212a04f2375f1d0791ca4e5f196e0fb0567c4ec96cd9dbcad773de60a"}, - {file = "llama_cloud-0.1.8.tar.gz", hash = "sha256:7199bab2240a9cc330740003fa77648f43f6e533da411a8250a4a70584f91153"}, + {file = "llama_cloud-0.1.10-py3-none-any.whl", hash = "sha256:d91198ad92ea6c3a25757e5d6cb565b4bd6db385dc4fa596a725c0fb81a68f4e"}, + {file = "llama_cloud-0.1.10.tar.gz", hash = "sha256:56ffe8f2910c2047dd4eb1b13da31ee5f67321a000794eee559e0b56954d2f76"}, ] [package.dependencies] @@ -1638,17 +1638,17 @@ pydantic = ">=1.10" [[package]] name = "llama-index-agent-openai" -version = "0.4.1" +version = "0.4.2" description = "llama-index agent openai integration" optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "llama_index_agent_openai-0.4.1-py3-none-any.whl", hash = "sha256:162507543082f739a8c806911344c8d7f2434d0ee91124cfdd7b0ba5f76d0e57"}, - {file = "llama_index_agent_openai-0.4.1.tar.gz", hash = "sha256:3a89137b228a6e9c2b3f46e367a27b75fb31b458e21777bba819de654707d59e"}, + {file = "llama_index_agent_openai-0.4.2-py3-none-any.whl", hash = "sha256:e100b8a743b11fef373b5be31be590b929950a4d7fd9d158b5f014dd8fd7976e"}, + {file = "llama_index_agent_openai-0.4.2.tar.gz", hash = "sha256:0f8aeb091fc834b2667a46ad2417fc8601bf1c08ccfd1a3d15ede90a30eb1a29"}, ] [package.dependencies] -llama-index-core = ">=0.12.0,<0.13.0" +llama-index-core = ">=0.12.11,<0.13.0" llama-index-llms-openai = ">=0.3.0,<0.4.0" openai = ">=1.14.0" @@ -1670,13 +1670,13 @@ llama-index-llms-openai = ">=0.3.0,<0.4.0" [[package]] name = "llama-index-core" -version = "0.12.11" +version = "0.12.14" description = "Interface between LLMs and your data" optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "llama_index_core-0.12.11-py3-none-any.whl", hash = "sha256:3b1e019c899e9e011dfa01c96b7e3f666e0c161035fbca6cb787b4c61e0c94db"}, - {file = "llama_index_core-0.12.11.tar.gz", hash = "sha256:9a41ca91167ea5eec9ebaac7f5e958b7feddbd8af3bfbf7c393a5edfb994d566"}, + {file = "llama_index_core-0.12.14-py3-none-any.whl", hash = "sha256:6fdb30e3fadf98e7df75f9db5d06f6a7f8503ca545a71e048d786ff88012bd50"}, + {file = "llama_index_core-0.12.14.tar.gz", hash = "sha256:378bbf5bf4d1a8c692d3a980c1a6ed3be7a9afb676a4960429dea15f62d06cd3"}, ] [package.dependencies] @@ -1721,28 +1721,28 @@ openai = ">=1.1.0" [[package]] name = "llama-index-indices-managed-llama-cloud" -version = "0.6.3" +version = "0.6.4" description = "llama-index indices llama-cloud integration" optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "llama_index_indices_managed_llama_cloud-0.6.3-py3-none-any.whl", hash = "sha256:7f125602f624a2d321b6a4130cd98df35eb8c15818a159390755b2c13068f4ce"}, - {file = "llama_index_indices_managed_llama_cloud-0.6.3.tar.gz", hash = "sha256:f09e4182cbc2a2bd75ae85cebb1681075247f0d91b931b094cac4315386ce87a"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4-py3-none-any.whl", hash = "sha256:d7e85844a2e343dacebdef424decab3f5fd6361e25b3ff2bdcfb18607c1a49c5"}, + {file = "llama_index_indices_managed_llama_cloud-0.6.4.tar.gz", hash = "sha256:0b45973cb2dc9702122006019bfb556dcabba31b0bdf79afc7b376ca8143df03"}, ] [package.dependencies] -llama-cloud = ">=0.1.5" +llama-cloud = ">=0.1.8,<0.2.0" llama-index-core = ">=0.12.0,<0.13.0" [[package]] name = "llama-index-llms-openai" -version = "0.3.13" +version = "0.3.14" description = "llama-index llms openai integration" optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "llama_index_llms_openai-0.3.13-py3-none-any.whl", hash = "sha256:caea1d6cb5bdd34518fcefe28b784698c92120ed133e6cd4591f777cd15180b0"}, - {file = "llama_index_llms_openai-0.3.13.tar.gz", hash = "sha256:51dda240dae7671c37e84bb50fe77fe6bb58a9b2a7e33dccd84473c9998afcea"}, + {file = "llama_index_llms_openai-0.3.14-py3-none-any.whl", hash = "sha256:9071cc28941ecf89f1b270668d80a2d8677cf0f573a983405e3f4b8198209216"}, + {file = "llama_index_llms_openai-0.3.14.tar.gz", hash = "sha256:a87a5db42046fb5ff92fa8fda6d51c55a07f9d5fa42da187accf66e5293fd3d0"}, ] [package.dependencies] @@ -1798,13 +1798,13 @@ llama-index-program-openai = ">=0.3.0,<0.4.0" [[package]] name = "llama-index-readers-file" -version = "0.4.3" +version = "0.4.4" description = "llama-index readers file integration" optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "llama_index_readers_file-0.4.3-py3-none-any.whl", hash = "sha256:c669da967ea534e3af3660f9fd730c71c725288f5c57906bcce338414ebeee5c"}, - {file = "llama_index_readers_file-0.4.3.tar.gz", hash = "sha256:07514bebed7ce431c1b3ef9279d09aa3d1bba8e342d661860a033355b98fb33a"}, + {file = "llama_index_readers_file-0.4.4-py3-none-any.whl", hash = "sha256:01589a4895e2d4abad30294c9b0d2813520ee1f5164922ad92f11e64a1d65d6c"}, + {file = "llama_index_readers_file-0.4.4.tar.gz", hash = "sha256:e076b3fa1e68eea1594d47cec1f64b384fb6067f2697ca8aae22b4a21ad27ca7"}, ] [package.dependencies] @@ -1834,13 +1834,13 @@ llama-parse = ">=0.5.0" [[package]] name = "llama-parse" -version = "0.5.19" +version = "0.5.20" description = "Parse files into RAG-Optimized formats." optional = false python-versions = "<4.0,>=3.9" files = [ - {file = "llama_parse-0.5.19-py3-none-any.whl", hash = "sha256:715cc895d183531b4299359d4f4004089b2e522f5f137f316084e7aa04035b62"}, - {file = "llama_parse-0.5.19.tar.gz", hash = "sha256:db69da70e199a2664705eb983a70fa92b7cee19dd6cff175af7692a0b8a4dd53"}, + {file = "llama_parse-0.5.20-py3-none-any.whl", hash = "sha256:9617edb3428d3218ea01f1708f0b6105f3ffef142fedbeb8c98d50082c37e226"}, + {file = "llama_parse-0.5.20.tar.gz", hash = "sha256:649e256431d3753025b9a320bb03b76849ce4b5a1121394c803df543e6c1006f"}, ] [package.dependencies] @@ -1962,13 +1962,13 @@ files = [ [[package]] name = "marshmallow" -version = "3.25.1" +version = "3.26.0" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." optional = false python-versions = ">=3.9" files = [ - {file = "marshmallow-3.25.1-py3-none-any.whl", hash = "sha256:ec5d00d873ce473b7f2ffcb7104286a376c354cab0c2fa12f5573dab03e87210"}, - {file = "marshmallow-3.25.1.tar.gz", hash = "sha256:f4debda3bb11153d81ac34b0d582bf23053055ee11e791b54b4b35493468040a"}, + {file = "marshmallow-3.26.0-py3-none-any.whl", hash = "sha256:1287bca04e6a5f4094822ac153c03da5e214a0a60bcd557b140f3e66991b8ca1"}, + {file = "marshmallow-3.26.0.tar.gz", hash = "sha256:eb36762a1cc76d7abf831e18a3a1b26d3d481bbc74581b8e532a3d3a8115e1cb"}, ] [package.dependencies] @@ -2158,13 +2158,13 @@ pygments = ">2.12.0" [[package]] name = "mkdocs-material" -version = "9.5.49" +version = "9.5.50" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.49-py3-none-any.whl", hash = "sha256:c3c2d8176b18198435d3a3e119011922f3e11424074645c24019c2dcf08a360e"}, - {file = "mkdocs_material-9.5.49.tar.gz", hash = "sha256:3671bb282b4f53a1c72e08adbe04d2481a98f85fed392530051f80ff94a9621d"}, + {file = "mkdocs_material-9.5.50-py3-none-any.whl", hash = "sha256:f24100f234741f4d423a9d672a909d859668a4f404796be3cf035f10d6050385"}, + {file = "mkdocs_material-9.5.50.tar.gz", hash = "sha256:ae5fe16f3d7c9ccd05bb6916a7da7420cf99a9ce5e33debd9d40403a090d5825"}, ] [package.dependencies] @@ -2181,7 +2181,7 @@ regex = ">=2022.4" requests = ">=2.26,<3.0" [package.extras] -git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"] +git = ["mkdocs-git-committers-plugin-2 (>=1.1,<3)", "mkdocs-git-revision-date-localized-plugin (>=1.2.4,<2.0)"] imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=10.2,<11.0)"] recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] @@ -2618,13 +2618,13 @@ files = [ [[package]] name = "openai" -version = "1.59.7" +version = "1.60.1" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" files = [ - {file = "openai-1.59.7-py3-none-any.whl", hash = "sha256:cfa806556226fa96df7380ab2e29814181d56fea44738c2b0e581b462c268692"}, - {file = "openai-1.59.7.tar.gz", hash = "sha256:043603def78c00befb857df9f0a16ee76a3af5984ba40cb7ee5e2f40db4646bf"}, + {file = "openai-1.60.1-py3-none-any.whl", hash = "sha256:714181ec1c452353d456f143c22db892de7b373e3165063d02a2b798ed575ba1"}, + {file = "openai-1.60.1.tar.gz", hash = "sha256:beb1541dfc38b002bd629ab68b0d6fe35b870c5f4311d9bc4404d85af3214d5e"}, ] [package.dependencies] @@ -2943,13 +2943,13 @@ virtualenv = ">=20.10.0" [[package]] name = "prompt-toolkit" -version = "3.0.48" +version = "3.0.50" description = "Library for building powerful interactive command lines in Python" optional = false -python-versions = ">=3.7.0" +python-versions = ">=3.8.0" files = [ - {file = "prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e"}, - {file = "prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90"}, + {file = "prompt_toolkit-3.0.50-py3-none-any.whl", hash = "sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198"}, + {file = "prompt_toolkit-3.0.50.tar.gz", hash = "sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab"}, ] [package.dependencies] @@ -3114,13 +3114,13 @@ files = [ [[package]] name = "pydantic" -version = "2.10.5" +version = "2.10.6" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"}, - {file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"}, + {file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"}, + {file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"}, ] [package.dependencies] @@ -3289,13 +3289,13 @@ testutils = ["gitpython (>3)"] [[package]] name = "pymdown-extensions" -version = "10.14" +version = "10.14.1" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "pymdown_extensions-10.14-py3-none-any.whl", hash = "sha256:202481f716cc8250e4be8fce997781ebf7917701b59652458ee47f2401f818b5"}, - {file = "pymdown_extensions-10.14.tar.gz", hash = "sha256:741bd7c4ff961ba40b7528d32284c53bc436b8b1645e8e37c3e57770b8700a34"}, + {file = "pymdown_extensions-10.14.1-py3-none-any.whl", hash = "sha256:637951cbfbe9874ba28134fb3ce4b8bcadd6aca89ac4998ec29dcbafd554ae08"}, + {file = "pymdown_extensions-10.14.1.tar.gz", hash = "sha256:b65801996a0cd4f42a3110810c306c45b7313c09b0610a6f773730f2a9e3c96b"}, ] [package.dependencies] @@ -3635,18 +3635,19 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "referencing" -version = "0.35.1" +version = "0.36.2" description = "JSON Referencing + Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, - {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, ] [package.dependencies] attrs = ">=22.2.0" rpds-py = ">=0.7.0" +typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} [[package]] name = "regex" @@ -4512,13 +4513,13 @@ typing-extensions = ">=3.7.4" [[package]] name = "tzdata" -version = "2024.2" +version = "2025.1" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"}, - {file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"}, + {file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"}, + {file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"}, ] [[package]] @@ -4540,13 +4541,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.28.1" +version = "20.29.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.28.1-py3-none-any.whl", hash = "sha256:412773c85d4dab0409b83ec36f7a6499e72eaf08c80e81e9576bca61831c71cb"}, - {file = "virtualenv-20.28.1.tar.gz", hash = "sha256:5d34ab240fdb5d21549b76f9e8ff3af28252f5499fb6d6f031adac4e5a8c5329"}, + {file = "virtualenv-20.29.1-py3-none-any.whl", hash = "sha256:4e4cb403c0b0da39e13b46b1b2476e505cb0046b25f242bee80f62bf990b2779"}, + {file = "virtualenv-20.29.1.tar.gz", hash = "sha256:b8b8970138d32fb606192cb97f6cd4bb644fa486be9308fb9b63f81091b5dc35"}, ] [package.dependencies] @@ -4828,4 +4829,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<4.0" -content-hash = "25aa51065132f5da564dcd27d4a23ea5b45f74f8ccd7ca80dc73a602780111b8" +content-hash = "d82cf9d1677793fe33acc84a9b911c23a084a9dd42c282f1d635b444620674cd" diff --git a/pyproject.toml b/pyproject.toml index 77e085e93925d..876ca78441efe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ name = "llama-index" packages = [{from = "_llama-index", include = "llama_index"}] readme = "README.md" repository = "https://github.com/run-llama/llama_index" -version = "0.12.11" +version = "0.12.14" [tool.poetry.dependencies] python = ">=3.9,<4.0" @@ -57,7 +57,7 @@ llama-index-agent-openai = "^0.4.0" llama-index-readers-file = "^0.4.0" llama-index-readers-llama-parse = ">=0.4.0" llama-index-indices-managed-llama-cloud = ">=0.4.0" -llama-index-core = "^0.12.11" +llama-index-core = "^0.12.14" llama-index-multi-modal-llms-openai = "^0.4.0" llama-index-cli = "^0.4.0" nltk = ">3.8.1" # avoids a CVE, temp until next release, should be in llama-index-core